1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package pinpointemail
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/pinpoint-email-2018-07-26/CreateConfigurationSet
42func (c *PinpointEmail) CreateConfigurationSetRequest(input *CreateConfigurationSetInput) (req *request.Request, output *CreateConfigurationSetOutput) {
43	op := &request.Operation{
44		Name:       opCreateConfigurationSet,
45		HTTPMethod: "POST",
46		HTTPPath:   "/v1/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 Pinpoint Email Service.
60//
61// Create a configuration set. Configuration sets are groups of rules that you
62// can apply to the emails you send using Amazon Pinpoint. You apply a configuration
63// set to an email by including a reference to the configuration set in the
64// headers of the email. When you apply a configuration set to an email, all
65// of the rules 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 Pinpoint 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/pinpoint-email-2018-07-26/CreateConfigurationSet
94func (c *PinpointEmail) 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 *PinpointEmail) 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/pinpoint-email-2018-07-26/CreateConfigurationSetEventDestination
141func (c *PinpointEmail) CreateConfigurationSetEventDestinationRequest(input *CreateConfigurationSetEventDestinationInput) (req *request.Request, output *CreateConfigurationSetEventDestinationOutput) {
142	op := &request.Operation{
143		Name:       opCreateConfigurationSetEventDestination,
144		HTTPMethod: "POST",
145		HTTPPath:   "/v1/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 Pinpoint Email Service.
159//
160// Create an event destination. In Amazon Pinpoint, events include message sends,
161// deliveries, opens, clicks, bounces, and complaints. Event destinations are
162// places that you can send information about these events to. For example,
163// you can send event data to Amazon SNS to receive notifications when you receive
164// bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream
165// data to Amazon S3 for 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 Pinpoint 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/pinpoint-email-2018-07-26/CreateConfigurationSetEventDestination
193func (c *PinpointEmail) 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 *PinpointEmail) 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/pinpoint-email-2018-07-26/CreateDedicatedIpPool
240func (c *PinpointEmail) CreateDedicatedIpPoolRequest(input *CreateDedicatedIpPoolInput) (req *request.Request, output *CreateDedicatedIpPoolOutput) {
241	op := &request.Operation{
242		Name:       opCreateDedicatedIpPool,
243		HTTPMethod: "POST",
244		HTTPPath:   "/v1/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 Pinpoint 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 Amazon Pinpoint account.
261// You can associate a pool with a configuration set. When you send an email
262// that uses that configuration set, Amazon Pinpoint sends it using only the
263// IP addresses in 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 Pinpoint 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/pinpoint-email-2018-07-26/CreateDedicatedIpPool
289func (c *PinpointEmail) 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 *PinpointEmail) 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/pinpoint-email-2018-07-26/CreateDeliverabilityTestReport
336func (c *PinpointEmail) CreateDeliverabilityTestReportRequest(input *CreateDeliverabilityTestReportInput) (req *request.Request, output *CreateDeliverabilityTestReportOutput) {
337	op := &request.Operation{
338		Name:       opCreateDeliverabilityTestReport,
339		HTTPMethod: "POST",
340		HTTPPath:   "/v1/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 Pinpoint 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 Pinpoint 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 Pinpoint 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/pinpoint-email-2018-07-26/CreateDeliverabilityTestReport
401func (c *PinpointEmail) 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 *PinpointEmail) 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/pinpoint-email-2018-07-26/CreateEmailIdentity
448func (c *PinpointEmail) CreateEmailIdentityRequest(input *CreateEmailIdentityInput) (req *request.Request, output *CreateEmailIdentityOutput) {
449	op := &request.Operation{
450		Name:       opCreateEmailIdentity,
451		HTTPMethod: "POST",
452		HTTPPath:   "/v1/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 Pinpoint Email Service.
465//
466// Verifies an email identity for use with Amazon Pinpoint. In Amazon Pinpoint,
467// an identity is an email address or domain that you use when you send email.
468// Before you can use an identity to send email with Amazon Pinpoint, you first
469// have to verify it. By verifying an address, you demonstrate that you're the
470// owner of the address, and that you've given Amazon Pinpoint permission to
471// send email from the address.
472//
473// When you verify an email address, Amazon Pinpoint sends an email to the address.
474// Your email address is verified as soon as you follow the link in the verification
475// email.
476//
477// When you verify a domain, this operation provides a set of DKIM tokens, which
478// you can convert into CNAME tokens. You add these CNAME tokens to the DNS
479// configuration for your domain. Your domain is verified when Amazon Pinpoint
480// detects these records in the DNS configuration for your domain. It usually
481// takes around 72 hours to complete the domain verification process.
482//
483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
484// with awserr.Error's Code and Message methods to get detailed information about
485// the error.
486//
487// See the AWS API reference guide for Amazon Pinpoint Email Service's
488// API operation CreateEmailIdentity for usage and error information.
489//
490// Returned Error Types:
491//   * LimitExceededException
492//   There are too many instances of the specified resource type.
493//
494//   * TooManyRequestsException
495//   Too many requests have been made to the operation.
496//
497//   * BadRequestException
498//   The input you provided is invalid.
499//
500//   * ConcurrentModificationException
501//   The resource is being modified by another operation or thread.
502//
503// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateEmailIdentity
504func (c *PinpointEmail) CreateEmailIdentity(input *CreateEmailIdentityInput) (*CreateEmailIdentityOutput, error) {
505	req, out := c.CreateEmailIdentityRequest(input)
506	return out, req.Send()
507}
508
509// CreateEmailIdentityWithContext is the same as CreateEmailIdentity with the addition of
510// the ability to pass a context and additional request options.
511//
512// See CreateEmailIdentity for details on how to use this API operation.
513//
514// The context must be non-nil and will be used for request cancellation. If
515// the context is nil a panic will occur. In the future the SDK may create
516// sub-contexts for http.Requests. See https://golang.org/pkg/context/
517// for more information on using Contexts.
518func (c *PinpointEmail) CreateEmailIdentityWithContext(ctx aws.Context, input *CreateEmailIdentityInput, opts ...request.Option) (*CreateEmailIdentityOutput, error) {
519	req, out := c.CreateEmailIdentityRequest(input)
520	req.SetContext(ctx)
521	req.ApplyOptions(opts...)
522	return out, req.Send()
523}
524
525const opDeleteConfigurationSet = "DeleteConfigurationSet"
526
527// DeleteConfigurationSetRequest generates a "aws/request.Request" representing the
528// client's request for the DeleteConfigurationSet operation. The "output" return
529// value will be populated with the request's response once the request completes
530// successfully.
531//
532// Use "Send" method on the returned Request to send the API call to the service.
533// the "output" return value is not valid until after Send returns without error.
534//
535// See DeleteConfigurationSet for more information on using the DeleteConfigurationSet
536// API call, and error handling.
537//
538// This method is useful when you want to inject custom logic or configuration
539// into the SDK's request lifecycle. Such as custom headers, or retry logic.
540//
541//
542//    // Example sending a request using the DeleteConfigurationSetRequest method.
543//    req, resp := client.DeleteConfigurationSetRequest(params)
544//
545//    err := req.Send()
546//    if err == nil { // resp is now filled
547//        fmt.Println(resp)
548//    }
549//
550// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSet
551func (c *PinpointEmail) DeleteConfigurationSetRequest(input *DeleteConfigurationSetInput) (req *request.Request, output *DeleteConfigurationSetOutput) {
552	op := &request.Operation{
553		Name:       opDeleteConfigurationSet,
554		HTTPMethod: "DELETE",
555		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}",
556	}
557
558	if input == nil {
559		input = &DeleteConfigurationSetInput{}
560	}
561
562	output = &DeleteConfigurationSetOutput{}
563	req = c.newRequest(op, input, output)
564	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
565	return
566}
567
568// DeleteConfigurationSet API operation for Amazon Pinpoint Email Service.
569//
570// Delete an existing configuration set.
571//
572// In Amazon Pinpoint, configuration sets are groups of rules that you can apply
573// to the emails you send. You apply a configuration set to an email by including
574// a reference to the configuration set in the headers of the email. When you
575// apply a configuration set to an email, all of the rules in that configuration
576// set are applied to the email.
577//
578// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
579// with awserr.Error's Code and Message methods to get detailed information about
580// the error.
581//
582// See the AWS API reference guide for Amazon Pinpoint Email Service's
583// API operation DeleteConfigurationSet for usage and error information.
584//
585// Returned Error Types:
586//   * NotFoundException
587//   The resource you attempted to access doesn't exist.
588//
589//   * TooManyRequestsException
590//   Too many requests have been made to the operation.
591//
592//   * BadRequestException
593//   The input you provided is invalid.
594//
595//   * ConcurrentModificationException
596//   The resource is being modified by another operation or thread.
597//
598// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSet
599func (c *PinpointEmail) DeleteConfigurationSet(input *DeleteConfigurationSetInput) (*DeleteConfigurationSetOutput, error) {
600	req, out := c.DeleteConfigurationSetRequest(input)
601	return out, req.Send()
602}
603
604// DeleteConfigurationSetWithContext is the same as DeleteConfigurationSet with the addition of
605// the ability to pass a context and additional request options.
606//
607// See DeleteConfigurationSet for details on how to use this API operation.
608//
609// The context must be non-nil and will be used for request cancellation. If
610// the context is nil a panic will occur. In the future the SDK may create
611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
612// for more information on using Contexts.
613func (c *PinpointEmail) DeleteConfigurationSetWithContext(ctx aws.Context, input *DeleteConfigurationSetInput, opts ...request.Option) (*DeleteConfigurationSetOutput, error) {
614	req, out := c.DeleteConfigurationSetRequest(input)
615	req.SetContext(ctx)
616	req.ApplyOptions(opts...)
617	return out, req.Send()
618}
619
620const opDeleteConfigurationSetEventDestination = "DeleteConfigurationSetEventDestination"
621
622// DeleteConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
623// client's request for the DeleteConfigurationSetEventDestination operation. The "output" return
624// value will be populated with the request's response once the request completes
625// successfully.
626//
627// Use "Send" method on the returned Request to send the API call to the service.
628// the "output" return value is not valid until after Send returns without error.
629//
630// See DeleteConfigurationSetEventDestination for more information on using the DeleteConfigurationSetEventDestination
631// API call, and error handling.
632//
633// This method is useful when you want to inject custom logic or configuration
634// into the SDK's request lifecycle. Such as custom headers, or retry logic.
635//
636//
637//    // Example sending a request using the DeleteConfigurationSetEventDestinationRequest method.
638//    req, resp := client.DeleteConfigurationSetEventDestinationRequest(params)
639//
640//    err := req.Send()
641//    if err == nil { // resp is now filled
642//        fmt.Println(resp)
643//    }
644//
645// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSetEventDestination
646func (c *PinpointEmail) DeleteConfigurationSetEventDestinationRequest(input *DeleteConfigurationSetEventDestinationInput) (req *request.Request, output *DeleteConfigurationSetEventDestinationOutput) {
647	op := &request.Operation{
648		Name:       opDeleteConfigurationSetEventDestination,
649		HTTPMethod: "DELETE",
650		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}",
651	}
652
653	if input == nil {
654		input = &DeleteConfigurationSetEventDestinationInput{}
655	}
656
657	output = &DeleteConfigurationSetEventDestinationOutput{}
658	req = c.newRequest(op, input, output)
659	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
660	return
661}
662
663// DeleteConfigurationSetEventDestination API operation for Amazon Pinpoint Email Service.
664//
665// Delete an event destination.
666//
667// In Amazon Pinpoint, events include message sends, deliveries, opens, clicks,
668// bounces, and complaints. Event destinations are places that you can send
669// information about these events to. For example, you can send event data to
670// Amazon SNS to receive notifications when you receive bounces or complaints,
671// or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
672// long-term storage.
673//
674// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
675// with awserr.Error's Code and Message methods to get detailed information about
676// the error.
677//
678// See the AWS API reference guide for Amazon Pinpoint Email Service's
679// API operation DeleteConfigurationSetEventDestination for usage and error information.
680//
681// Returned Error Types:
682//   * NotFoundException
683//   The resource you attempted to access doesn't exist.
684//
685//   * TooManyRequestsException
686//   Too many requests have been made to the operation.
687//
688//   * BadRequestException
689//   The input you provided is invalid.
690//
691// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSetEventDestination
692func (c *PinpointEmail) DeleteConfigurationSetEventDestination(input *DeleteConfigurationSetEventDestinationInput) (*DeleteConfigurationSetEventDestinationOutput, error) {
693	req, out := c.DeleteConfigurationSetEventDestinationRequest(input)
694	return out, req.Send()
695}
696
697// DeleteConfigurationSetEventDestinationWithContext is the same as DeleteConfigurationSetEventDestination with the addition of
698// the ability to pass a context and additional request options.
699//
700// See DeleteConfigurationSetEventDestination for details on how to use this API operation.
701//
702// The context must be non-nil and will be used for request cancellation. If
703// the context is nil a panic will occur. In the future the SDK may create
704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
705// for more information on using Contexts.
706func (c *PinpointEmail) DeleteConfigurationSetEventDestinationWithContext(ctx aws.Context, input *DeleteConfigurationSetEventDestinationInput, opts ...request.Option) (*DeleteConfigurationSetEventDestinationOutput, error) {
707	req, out := c.DeleteConfigurationSetEventDestinationRequest(input)
708	req.SetContext(ctx)
709	req.ApplyOptions(opts...)
710	return out, req.Send()
711}
712
713const opDeleteDedicatedIpPool = "DeleteDedicatedIpPool"
714
715// DeleteDedicatedIpPoolRequest generates a "aws/request.Request" representing the
716// client's request for the DeleteDedicatedIpPool operation. The "output" return
717// value will be populated with the request's response once the request completes
718// successfully.
719//
720// Use "Send" method on the returned Request to send the API call to the service.
721// the "output" return value is not valid until after Send returns without error.
722//
723// See DeleteDedicatedIpPool for more information on using the DeleteDedicatedIpPool
724// API call, and error handling.
725//
726// This method is useful when you want to inject custom logic or configuration
727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
728//
729//
730//    // Example sending a request using the DeleteDedicatedIpPoolRequest method.
731//    req, resp := client.DeleteDedicatedIpPoolRequest(params)
732//
733//    err := req.Send()
734//    if err == nil { // resp is now filled
735//        fmt.Println(resp)
736//    }
737//
738// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteDedicatedIpPool
739func (c *PinpointEmail) DeleteDedicatedIpPoolRequest(input *DeleteDedicatedIpPoolInput) (req *request.Request, output *DeleteDedicatedIpPoolOutput) {
740	op := &request.Operation{
741		Name:       opDeleteDedicatedIpPool,
742		HTTPMethod: "DELETE",
743		HTTPPath:   "/v1/email/dedicated-ip-pools/{PoolName}",
744	}
745
746	if input == nil {
747		input = &DeleteDedicatedIpPoolInput{}
748	}
749
750	output = &DeleteDedicatedIpPoolOutput{}
751	req = c.newRequest(op, input, output)
752	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
753	return
754}
755
756// DeleteDedicatedIpPool API operation for Amazon Pinpoint Email Service.
757//
758// Delete a dedicated IP pool.
759//
760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
761// with awserr.Error's Code and Message methods to get detailed information about
762// the error.
763//
764// See the AWS API reference guide for Amazon Pinpoint Email Service's
765// API operation DeleteDedicatedIpPool for usage and error information.
766//
767// Returned Error Types:
768//   * NotFoundException
769//   The resource you attempted to access doesn't exist.
770//
771//   * TooManyRequestsException
772//   Too many requests have been made to the operation.
773//
774//   * BadRequestException
775//   The input you provided is invalid.
776//
777//   * ConcurrentModificationException
778//   The resource is being modified by another operation or thread.
779//
780// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteDedicatedIpPool
781func (c *PinpointEmail) DeleteDedicatedIpPool(input *DeleteDedicatedIpPoolInput) (*DeleteDedicatedIpPoolOutput, error) {
782	req, out := c.DeleteDedicatedIpPoolRequest(input)
783	return out, req.Send()
784}
785
786// DeleteDedicatedIpPoolWithContext is the same as DeleteDedicatedIpPool with the addition of
787// the ability to pass a context and additional request options.
788//
789// See DeleteDedicatedIpPool for details on how to use this API operation.
790//
791// The context must be non-nil and will be used for request cancellation. If
792// the context is nil a panic will occur. In the future the SDK may create
793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
794// for more information on using Contexts.
795func (c *PinpointEmail) DeleteDedicatedIpPoolWithContext(ctx aws.Context, input *DeleteDedicatedIpPoolInput, opts ...request.Option) (*DeleteDedicatedIpPoolOutput, error) {
796	req, out := c.DeleteDedicatedIpPoolRequest(input)
797	req.SetContext(ctx)
798	req.ApplyOptions(opts...)
799	return out, req.Send()
800}
801
802const opDeleteEmailIdentity = "DeleteEmailIdentity"
803
804// DeleteEmailIdentityRequest generates a "aws/request.Request" representing the
805// client's request for the DeleteEmailIdentity operation. The "output" return
806// value will be populated with the request's response once the request completes
807// successfully.
808//
809// Use "Send" method on the returned Request to send the API call to the service.
810// the "output" return value is not valid until after Send returns without error.
811//
812// See DeleteEmailIdentity for more information on using the DeleteEmailIdentity
813// API call, and error handling.
814//
815// This method is useful when you want to inject custom logic or configuration
816// into the SDK's request lifecycle. Such as custom headers, or retry logic.
817//
818//
819//    // Example sending a request using the DeleteEmailIdentityRequest method.
820//    req, resp := client.DeleteEmailIdentityRequest(params)
821//
822//    err := req.Send()
823//    if err == nil { // resp is now filled
824//        fmt.Println(resp)
825//    }
826//
827// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteEmailIdentity
828func (c *PinpointEmail) DeleteEmailIdentityRequest(input *DeleteEmailIdentityInput) (req *request.Request, output *DeleteEmailIdentityOutput) {
829	op := &request.Operation{
830		Name:       opDeleteEmailIdentity,
831		HTTPMethod: "DELETE",
832		HTTPPath:   "/v1/email/identities/{EmailIdentity}",
833	}
834
835	if input == nil {
836		input = &DeleteEmailIdentityInput{}
837	}
838
839	output = &DeleteEmailIdentityOutput{}
840	req = c.newRequest(op, input, output)
841	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
842	return
843}
844
845// DeleteEmailIdentity API operation for Amazon Pinpoint Email Service.
846//
847// Deletes an email identity that you previously verified for use with Amazon
848// Pinpoint. An identity can be either an email address or a domain name.
849//
850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
851// with awserr.Error's Code and Message methods to get detailed information about
852// the error.
853//
854// See the AWS API reference guide for Amazon Pinpoint Email Service's
855// API operation DeleteEmailIdentity for usage and error information.
856//
857// Returned Error Types:
858//   * NotFoundException
859//   The resource you attempted to access doesn't exist.
860//
861//   * TooManyRequestsException
862//   Too many requests have been made to the operation.
863//
864//   * BadRequestException
865//   The input you provided is invalid.
866//
867//   * ConcurrentModificationException
868//   The resource is being modified by another operation or thread.
869//
870// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteEmailIdentity
871func (c *PinpointEmail) DeleteEmailIdentity(input *DeleteEmailIdentityInput) (*DeleteEmailIdentityOutput, error) {
872	req, out := c.DeleteEmailIdentityRequest(input)
873	return out, req.Send()
874}
875
876// DeleteEmailIdentityWithContext is the same as DeleteEmailIdentity with the addition of
877// the ability to pass a context and additional request options.
878//
879// See DeleteEmailIdentity for details on how to use this API operation.
880//
881// The context must be non-nil and will be used for request cancellation. If
882// the context is nil a panic will occur. In the future the SDK may create
883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
884// for more information on using Contexts.
885func (c *PinpointEmail) DeleteEmailIdentityWithContext(ctx aws.Context, input *DeleteEmailIdentityInput, opts ...request.Option) (*DeleteEmailIdentityOutput, error) {
886	req, out := c.DeleteEmailIdentityRequest(input)
887	req.SetContext(ctx)
888	req.ApplyOptions(opts...)
889	return out, req.Send()
890}
891
892const opGetAccount = "GetAccount"
893
894// GetAccountRequest generates a "aws/request.Request" representing the
895// client's request for the GetAccount operation. The "output" return
896// value will be populated with the request's response once the request completes
897// successfully.
898//
899// Use "Send" method on the returned Request to send the API call to the service.
900// the "output" return value is not valid until after Send returns without error.
901//
902// See GetAccount for more information on using the GetAccount
903// API call, and error handling.
904//
905// This method is useful when you want to inject custom logic or configuration
906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
907//
908//
909//    // Example sending a request using the GetAccountRequest method.
910//    req, resp := client.GetAccountRequest(params)
911//
912//    err := req.Send()
913//    if err == nil { // resp is now filled
914//        fmt.Println(resp)
915//    }
916//
917// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetAccount
918func (c *PinpointEmail) GetAccountRequest(input *GetAccountInput) (req *request.Request, output *GetAccountOutput) {
919	op := &request.Operation{
920		Name:       opGetAccount,
921		HTTPMethod: "GET",
922		HTTPPath:   "/v1/email/account",
923	}
924
925	if input == nil {
926		input = &GetAccountInput{}
927	}
928
929	output = &GetAccountOutput{}
930	req = c.newRequest(op, input, output)
931	return
932}
933
934// GetAccount API operation for Amazon Pinpoint Email Service.
935//
936// Obtain information about the email-sending status and capabilities of your
937// Amazon Pinpoint account in the current AWS Region.
938//
939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
940// with awserr.Error's Code and Message methods to get detailed information about
941// the error.
942//
943// See the AWS API reference guide for Amazon Pinpoint Email Service's
944// API operation GetAccount for usage and error information.
945//
946// Returned Error Types:
947//   * TooManyRequestsException
948//   Too many requests have been made to the operation.
949//
950//   * BadRequestException
951//   The input you provided is invalid.
952//
953// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetAccount
954func (c *PinpointEmail) GetAccount(input *GetAccountInput) (*GetAccountOutput, error) {
955	req, out := c.GetAccountRequest(input)
956	return out, req.Send()
957}
958
959// GetAccountWithContext is the same as GetAccount with the addition of
960// the ability to pass a context and additional request options.
961//
962// See GetAccount for details on how to use this API operation.
963//
964// The context must be non-nil and will be used for request cancellation. If
965// the context is nil a panic will occur. In the future the SDK may create
966// sub-contexts for http.Requests. See https://golang.org/pkg/context/
967// for more information on using Contexts.
968func (c *PinpointEmail) GetAccountWithContext(ctx aws.Context, input *GetAccountInput, opts ...request.Option) (*GetAccountOutput, error) {
969	req, out := c.GetAccountRequest(input)
970	req.SetContext(ctx)
971	req.ApplyOptions(opts...)
972	return out, req.Send()
973}
974
975const opGetBlacklistReports = "GetBlacklistReports"
976
977// GetBlacklistReportsRequest generates a "aws/request.Request" representing the
978// client's request for the GetBlacklistReports operation. The "output" return
979// value will be populated with the request's response once the request completes
980// successfully.
981//
982// Use "Send" method on the returned Request to send the API call to the service.
983// the "output" return value is not valid until after Send returns without error.
984//
985// See GetBlacklistReports for more information on using the GetBlacklistReports
986// API call, and error handling.
987//
988// This method is useful when you want to inject custom logic or configuration
989// into the SDK's request lifecycle. Such as custom headers, or retry logic.
990//
991//
992//    // Example sending a request using the GetBlacklistReportsRequest method.
993//    req, resp := client.GetBlacklistReportsRequest(params)
994//
995//    err := req.Send()
996//    if err == nil { // resp is now filled
997//        fmt.Println(resp)
998//    }
999//
1000// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetBlacklistReports
1001func (c *PinpointEmail) GetBlacklistReportsRequest(input *GetBlacklistReportsInput) (req *request.Request, output *GetBlacklistReportsOutput) {
1002	op := &request.Operation{
1003		Name:       opGetBlacklistReports,
1004		HTTPMethod: "GET",
1005		HTTPPath:   "/v1/email/deliverability-dashboard/blacklist-report",
1006	}
1007
1008	if input == nil {
1009		input = &GetBlacklistReportsInput{}
1010	}
1011
1012	output = &GetBlacklistReportsOutput{}
1013	req = c.newRequest(op, input, output)
1014	return
1015}
1016
1017// GetBlacklistReports API operation for Amazon Pinpoint Email Service.
1018//
1019// Retrieve a list of the blacklists that your dedicated IP addresses appear
1020// on.
1021//
1022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1023// with awserr.Error's Code and Message methods to get detailed information about
1024// the error.
1025//
1026// See the AWS API reference guide for Amazon Pinpoint Email Service's
1027// API operation GetBlacklistReports for usage and error information.
1028//
1029// Returned Error Types:
1030//   * TooManyRequestsException
1031//   Too many requests have been made to the operation.
1032//
1033//   * NotFoundException
1034//   The resource you attempted to access doesn't exist.
1035//
1036//   * BadRequestException
1037//   The input you provided is invalid.
1038//
1039// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetBlacklistReports
1040func (c *PinpointEmail) GetBlacklistReports(input *GetBlacklistReportsInput) (*GetBlacklistReportsOutput, error) {
1041	req, out := c.GetBlacklistReportsRequest(input)
1042	return out, req.Send()
1043}
1044
1045// GetBlacklistReportsWithContext is the same as GetBlacklistReports with the addition of
1046// the ability to pass a context and additional request options.
1047//
1048// See GetBlacklistReports for details on how to use this API operation.
1049//
1050// The context must be non-nil and will be used for request cancellation. If
1051// the context is nil a panic will occur. In the future the SDK may create
1052// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1053// for more information on using Contexts.
1054func (c *PinpointEmail) GetBlacklistReportsWithContext(ctx aws.Context, input *GetBlacklistReportsInput, opts ...request.Option) (*GetBlacklistReportsOutput, error) {
1055	req, out := c.GetBlacklistReportsRequest(input)
1056	req.SetContext(ctx)
1057	req.ApplyOptions(opts...)
1058	return out, req.Send()
1059}
1060
1061const opGetConfigurationSet = "GetConfigurationSet"
1062
1063// GetConfigurationSetRequest generates a "aws/request.Request" representing the
1064// client's request for the GetConfigurationSet operation. The "output" return
1065// value will be populated with the request's response once the request completes
1066// successfully.
1067//
1068// Use "Send" method on the returned Request to send the API call to the service.
1069// the "output" return value is not valid until after Send returns without error.
1070//
1071// See GetConfigurationSet for more information on using the GetConfigurationSet
1072// API call, and error handling.
1073//
1074// This method is useful when you want to inject custom logic or configuration
1075// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1076//
1077//
1078//    // Example sending a request using the GetConfigurationSetRequest method.
1079//    req, resp := client.GetConfigurationSetRequest(params)
1080//
1081//    err := req.Send()
1082//    if err == nil { // resp is now filled
1083//        fmt.Println(resp)
1084//    }
1085//
1086// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSet
1087func (c *PinpointEmail) GetConfigurationSetRequest(input *GetConfigurationSetInput) (req *request.Request, output *GetConfigurationSetOutput) {
1088	op := &request.Operation{
1089		Name:       opGetConfigurationSet,
1090		HTTPMethod: "GET",
1091		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}",
1092	}
1093
1094	if input == nil {
1095		input = &GetConfigurationSetInput{}
1096	}
1097
1098	output = &GetConfigurationSetOutput{}
1099	req = c.newRequest(op, input, output)
1100	return
1101}
1102
1103// GetConfigurationSet API operation for Amazon Pinpoint Email Service.
1104//
1105// Get information about an existing configuration set, including the dedicated
1106// IP pool that it's associated with, whether or not it's enabled for sending
1107// email, and more.
1108//
1109// In Amazon Pinpoint, configuration sets are groups of rules that you can apply
1110// to the emails you send. You apply a configuration set to an email by including
1111// a reference to the configuration set in the headers of the email. When you
1112// apply a configuration set to an email, all of the rules in that configuration
1113// set are applied to the email.
1114//
1115// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1116// with awserr.Error's Code and Message methods to get detailed information about
1117// the error.
1118//
1119// See the AWS API reference guide for Amazon Pinpoint Email Service's
1120// API operation GetConfigurationSet for usage and error information.
1121//
1122// Returned Error Types:
1123//   * NotFoundException
1124//   The resource you attempted to access doesn't exist.
1125//
1126//   * TooManyRequestsException
1127//   Too many requests have been made to the operation.
1128//
1129//   * BadRequestException
1130//   The input you provided is invalid.
1131//
1132// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSet
1133func (c *PinpointEmail) GetConfigurationSet(input *GetConfigurationSetInput) (*GetConfigurationSetOutput, error) {
1134	req, out := c.GetConfigurationSetRequest(input)
1135	return out, req.Send()
1136}
1137
1138// GetConfigurationSetWithContext is the same as GetConfigurationSet with the addition of
1139// the ability to pass a context and additional request options.
1140//
1141// See GetConfigurationSet for details on how to use this API operation.
1142//
1143// The context must be non-nil and will be used for request cancellation. If
1144// the context is nil a panic will occur. In the future the SDK may create
1145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1146// for more information on using Contexts.
1147func (c *PinpointEmail) GetConfigurationSetWithContext(ctx aws.Context, input *GetConfigurationSetInput, opts ...request.Option) (*GetConfigurationSetOutput, error) {
1148	req, out := c.GetConfigurationSetRequest(input)
1149	req.SetContext(ctx)
1150	req.ApplyOptions(opts...)
1151	return out, req.Send()
1152}
1153
1154const opGetConfigurationSetEventDestinations = "GetConfigurationSetEventDestinations"
1155
1156// GetConfigurationSetEventDestinationsRequest generates a "aws/request.Request" representing the
1157// client's request for the GetConfigurationSetEventDestinations operation. The "output" return
1158// value will be populated with the request's response once the request completes
1159// successfully.
1160//
1161// Use "Send" method on the returned Request to send the API call to the service.
1162// the "output" return value is not valid until after Send returns without error.
1163//
1164// See GetConfigurationSetEventDestinations for more information on using the GetConfigurationSetEventDestinations
1165// API call, and error handling.
1166//
1167// This method is useful when you want to inject custom logic or configuration
1168// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1169//
1170//
1171//    // Example sending a request using the GetConfigurationSetEventDestinationsRequest method.
1172//    req, resp := client.GetConfigurationSetEventDestinationsRequest(params)
1173//
1174//    err := req.Send()
1175//    if err == nil { // resp is now filled
1176//        fmt.Println(resp)
1177//    }
1178//
1179// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSetEventDestinations
1180func (c *PinpointEmail) GetConfigurationSetEventDestinationsRequest(input *GetConfigurationSetEventDestinationsInput) (req *request.Request, output *GetConfigurationSetEventDestinationsOutput) {
1181	op := &request.Operation{
1182		Name:       opGetConfigurationSetEventDestinations,
1183		HTTPMethod: "GET",
1184		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}/event-destinations",
1185	}
1186
1187	if input == nil {
1188		input = &GetConfigurationSetEventDestinationsInput{}
1189	}
1190
1191	output = &GetConfigurationSetEventDestinationsOutput{}
1192	req = c.newRequest(op, input, output)
1193	return
1194}
1195
1196// GetConfigurationSetEventDestinations API operation for Amazon Pinpoint Email Service.
1197//
1198// Retrieve a list of event destinations that are associated with a configuration
1199// set.
1200//
1201// In Amazon Pinpoint, events include message sends, deliveries, opens, clicks,
1202// bounces, and complaints. Event destinations are places that you can send
1203// information about these events to. For example, you can send event data to
1204// Amazon SNS to receive notifications when you receive bounces or complaints,
1205// or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
1206// long-term storage.
1207//
1208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1209// with awserr.Error's Code and Message methods to get detailed information about
1210// the error.
1211//
1212// See the AWS API reference guide for Amazon Pinpoint Email Service's
1213// API operation GetConfigurationSetEventDestinations for usage and error information.
1214//
1215// Returned Error Types:
1216//   * NotFoundException
1217//   The resource you attempted to access doesn't exist.
1218//
1219//   * TooManyRequestsException
1220//   Too many requests have been made to the operation.
1221//
1222//   * BadRequestException
1223//   The input you provided is invalid.
1224//
1225// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSetEventDestinations
1226func (c *PinpointEmail) GetConfigurationSetEventDestinations(input *GetConfigurationSetEventDestinationsInput) (*GetConfigurationSetEventDestinationsOutput, error) {
1227	req, out := c.GetConfigurationSetEventDestinationsRequest(input)
1228	return out, req.Send()
1229}
1230
1231// GetConfigurationSetEventDestinationsWithContext is the same as GetConfigurationSetEventDestinations with the addition of
1232// the ability to pass a context and additional request options.
1233//
1234// See GetConfigurationSetEventDestinations for details on how to use this API operation.
1235//
1236// The context must be non-nil and will be used for request cancellation. If
1237// the context is nil a panic will occur. In the future the SDK may create
1238// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1239// for more information on using Contexts.
1240func (c *PinpointEmail) GetConfigurationSetEventDestinationsWithContext(ctx aws.Context, input *GetConfigurationSetEventDestinationsInput, opts ...request.Option) (*GetConfigurationSetEventDestinationsOutput, error) {
1241	req, out := c.GetConfigurationSetEventDestinationsRequest(input)
1242	req.SetContext(ctx)
1243	req.ApplyOptions(opts...)
1244	return out, req.Send()
1245}
1246
1247const opGetDedicatedIp = "GetDedicatedIp"
1248
1249// GetDedicatedIpRequest generates a "aws/request.Request" representing the
1250// client's request for the GetDedicatedIp operation. The "output" return
1251// value will be populated with the request's response once the request completes
1252// successfully.
1253//
1254// Use "Send" method on the returned Request to send the API call to the service.
1255// the "output" return value is not valid until after Send returns without error.
1256//
1257// See GetDedicatedIp for more information on using the GetDedicatedIp
1258// API call, and error handling.
1259//
1260// This method is useful when you want to inject custom logic or configuration
1261// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1262//
1263//
1264//    // Example sending a request using the GetDedicatedIpRequest method.
1265//    req, resp := client.GetDedicatedIpRequest(params)
1266//
1267//    err := req.Send()
1268//    if err == nil { // resp is now filled
1269//        fmt.Println(resp)
1270//    }
1271//
1272// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIp
1273func (c *PinpointEmail) GetDedicatedIpRequest(input *GetDedicatedIpInput) (req *request.Request, output *GetDedicatedIpOutput) {
1274	op := &request.Operation{
1275		Name:       opGetDedicatedIp,
1276		HTTPMethod: "GET",
1277		HTTPPath:   "/v1/email/dedicated-ips/{IP}",
1278	}
1279
1280	if input == nil {
1281		input = &GetDedicatedIpInput{}
1282	}
1283
1284	output = &GetDedicatedIpOutput{}
1285	req = c.newRequest(op, input, output)
1286	return
1287}
1288
1289// GetDedicatedIp API operation for Amazon Pinpoint Email Service.
1290//
1291// Get information about a dedicated IP address, including the name of the dedicated
1292// IP pool that it's associated with, as well information about the automatic
1293// warm-up process for the address.
1294//
1295// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1296// with awserr.Error's Code and Message methods to get detailed information about
1297// the error.
1298//
1299// See the AWS API reference guide for Amazon Pinpoint Email Service's
1300// API operation GetDedicatedIp for usage and error information.
1301//
1302// Returned Error Types:
1303//   * TooManyRequestsException
1304//   Too many requests have been made to the operation.
1305//
1306//   * NotFoundException
1307//   The resource you attempted to access doesn't exist.
1308//
1309//   * BadRequestException
1310//   The input you provided is invalid.
1311//
1312// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIp
1313func (c *PinpointEmail) GetDedicatedIp(input *GetDedicatedIpInput) (*GetDedicatedIpOutput, error) {
1314	req, out := c.GetDedicatedIpRequest(input)
1315	return out, req.Send()
1316}
1317
1318// GetDedicatedIpWithContext is the same as GetDedicatedIp with the addition of
1319// the ability to pass a context and additional request options.
1320//
1321// See GetDedicatedIp for details on how to use this API operation.
1322//
1323// The context must be non-nil and will be used for request cancellation. If
1324// the context is nil a panic will occur. In the future the SDK may create
1325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1326// for more information on using Contexts.
1327func (c *PinpointEmail) GetDedicatedIpWithContext(ctx aws.Context, input *GetDedicatedIpInput, opts ...request.Option) (*GetDedicatedIpOutput, error) {
1328	req, out := c.GetDedicatedIpRequest(input)
1329	req.SetContext(ctx)
1330	req.ApplyOptions(opts...)
1331	return out, req.Send()
1332}
1333
1334const opGetDedicatedIps = "GetDedicatedIps"
1335
1336// GetDedicatedIpsRequest generates a "aws/request.Request" representing the
1337// client's request for the GetDedicatedIps operation. The "output" return
1338// value will be populated with the request's response once the request completes
1339// successfully.
1340//
1341// Use "Send" method on the returned Request to send the API call to the service.
1342// the "output" return value is not valid until after Send returns without error.
1343//
1344// See GetDedicatedIps for more information on using the GetDedicatedIps
1345// API call, and error handling.
1346//
1347// This method is useful when you want to inject custom logic or configuration
1348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1349//
1350//
1351//    // Example sending a request using the GetDedicatedIpsRequest method.
1352//    req, resp := client.GetDedicatedIpsRequest(params)
1353//
1354//    err := req.Send()
1355//    if err == nil { // resp is now filled
1356//        fmt.Println(resp)
1357//    }
1358//
1359// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIps
1360func (c *PinpointEmail) GetDedicatedIpsRequest(input *GetDedicatedIpsInput) (req *request.Request, output *GetDedicatedIpsOutput) {
1361	op := &request.Operation{
1362		Name:       opGetDedicatedIps,
1363		HTTPMethod: "GET",
1364		HTTPPath:   "/v1/email/dedicated-ips",
1365		Paginator: &request.Paginator{
1366			InputTokens:     []string{"NextToken"},
1367			OutputTokens:    []string{"NextToken"},
1368			LimitToken:      "PageSize",
1369			TruncationToken: "",
1370		},
1371	}
1372
1373	if input == nil {
1374		input = &GetDedicatedIpsInput{}
1375	}
1376
1377	output = &GetDedicatedIpsOutput{}
1378	req = c.newRequest(op, input, output)
1379	return
1380}
1381
1382// GetDedicatedIps API operation for Amazon Pinpoint Email Service.
1383//
1384// List the dedicated IP addresses that are associated with your Amazon Pinpoint
1385// account.
1386//
1387// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1388// with awserr.Error's Code and Message methods to get detailed information about
1389// the error.
1390//
1391// See the AWS API reference guide for Amazon Pinpoint Email Service's
1392// API operation GetDedicatedIps for usage and error information.
1393//
1394// Returned Error Types:
1395//   * TooManyRequestsException
1396//   Too many requests have been made to the operation.
1397//
1398//   * NotFoundException
1399//   The resource you attempted to access doesn't exist.
1400//
1401//   * BadRequestException
1402//   The input you provided is invalid.
1403//
1404// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIps
1405func (c *PinpointEmail) GetDedicatedIps(input *GetDedicatedIpsInput) (*GetDedicatedIpsOutput, error) {
1406	req, out := c.GetDedicatedIpsRequest(input)
1407	return out, req.Send()
1408}
1409
1410// GetDedicatedIpsWithContext is the same as GetDedicatedIps with the addition of
1411// the ability to pass a context and additional request options.
1412//
1413// See GetDedicatedIps for details on how to use this API operation.
1414//
1415// The context must be non-nil and will be used for request cancellation. If
1416// the context is nil a panic will occur. In the future the SDK may create
1417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1418// for more information on using Contexts.
1419func (c *PinpointEmail) GetDedicatedIpsWithContext(ctx aws.Context, input *GetDedicatedIpsInput, opts ...request.Option) (*GetDedicatedIpsOutput, error) {
1420	req, out := c.GetDedicatedIpsRequest(input)
1421	req.SetContext(ctx)
1422	req.ApplyOptions(opts...)
1423	return out, req.Send()
1424}
1425
1426// GetDedicatedIpsPages iterates over the pages of a GetDedicatedIps operation,
1427// calling the "fn" function with the response data for each page. To stop
1428// iterating, return false from the fn function.
1429//
1430// See GetDedicatedIps method for more information on how to use this operation.
1431//
1432// Note: This operation can generate multiple requests to a service.
1433//
1434//    // Example iterating over at most 3 pages of a GetDedicatedIps operation.
1435//    pageNum := 0
1436//    err := client.GetDedicatedIpsPages(params,
1437//        func(page *pinpointemail.GetDedicatedIpsOutput, lastPage bool) bool {
1438//            pageNum++
1439//            fmt.Println(page)
1440//            return pageNum <= 3
1441//        })
1442//
1443func (c *PinpointEmail) GetDedicatedIpsPages(input *GetDedicatedIpsInput, fn func(*GetDedicatedIpsOutput, bool) bool) error {
1444	return c.GetDedicatedIpsPagesWithContext(aws.BackgroundContext(), input, fn)
1445}
1446
1447// GetDedicatedIpsPagesWithContext same as GetDedicatedIpsPages except
1448// it takes a Context and allows setting request options on the pages.
1449//
1450// The context must be non-nil and will be used for request cancellation. If
1451// the context is nil a panic will occur. In the future the SDK may create
1452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1453// for more information on using Contexts.
1454func (c *PinpointEmail) GetDedicatedIpsPagesWithContext(ctx aws.Context, input *GetDedicatedIpsInput, fn func(*GetDedicatedIpsOutput, bool) bool, opts ...request.Option) error {
1455	p := request.Pagination{
1456		NewRequest: func() (*request.Request, error) {
1457			var inCpy *GetDedicatedIpsInput
1458			if input != nil {
1459				tmp := *input
1460				inCpy = &tmp
1461			}
1462			req, _ := c.GetDedicatedIpsRequest(inCpy)
1463			req.SetContext(ctx)
1464			req.ApplyOptions(opts...)
1465			return req, nil
1466		},
1467	}
1468
1469	for p.Next() {
1470		if !fn(p.Page().(*GetDedicatedIpsOutput), !p.HasNextPage()) {
1471			break
1472		}
1473	}
1474
1475	return p.Err()
1476}
1477
1478const opGetDeliverabilityDashboardOptions = "GetDeliverabilityDashboardOptions"
1479
1480// GetDeliverabilityDashboardOptionsRequest generates a "aws/request.Request" representing the
1481// client's request for the GetDeliverabilityDashboardOptions operation. The "output" return
1482// value will be populated with the request's response once the request completes
1483// successfully.
1484//
1485// Use "Send" method on the returned Request to send the API call to the service.
1486// the "output" return value is not valid until after Send returns without error.
1487//
1488// See GetDeliverabilityDashboardOptions for more information on using the GetDeliverabilityDashboardOptions
1489// API call, and error handling.
1490//
1491// This method is useful when you want to inject custom logic or configuration
1492// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1493//
1494//
1495//    // Example sending a request using the GetDeliverabilityDashboardOptionsRequest method.
1496//    req, resp := client.GetDeliverabilityDashboardOptionsRequest(params)
1497//
1498//    err := req.Send()
1499//    if err == nil { // resp is now filled
1500//        fmt.Println(resp)
1501//    }
1502//
1503// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityDashboardOptions
1504func (c *PinpointEmail) GetDeliverabilityDashboardOptionsRequest(input *GetDeliverabilityDashboardOptionsInput) (req *request.Request, output *GetDeliverabilityDashboardOptionsOutput) {
1505	op := &request.Operation{
1506		Name:       opGetDeliverabilityDashboardOptions,
1507		HTTPMethod: "GET",
1508		HTTPPath:   "/v1/email/deliverability-dashboard",
1509	}
1510
1511	if input == nil {
1512		input = &GetDeliverabilityDashboardOptionsInput{}
1513	}
1514
1515	output = &GetDeliverabilityDashboardOptionsOutput{}
1516	req = c.newRequest(op, input, output)
1517	return
1518}
1519
1520// GetDeliverabilityDashboardOptions API operation for Amazon Pinpoint Email Service.
1521//
1522// Retrieve information about the status of the Deliverability dashboard for
1523// your Amazon Pinpoint account. When the Deliverability dashboard is enabled,
1524// you gain access to reputation, deliverability, and other metrics for the
1525// domains that you use to send email using Amazon Pinpoint. You also gain the
1526// ability to perform predictive inbox placement tests.
1527//
1528// When you use the Deliverability dashboard, you pay a monthly subscription
1529// charge, in addition to any other fees that you accrue by using Amazon Pinpoint.
1530// For more information about the features and cost of a Deliverability dashboard
1531// subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
1532//
1533// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1534// with awserr.Error's Code and Message methods to get detailed information about
1535// the error.
1536//
1537// See the AWS API reference guide for Amazon Pinpoint Email Service's
1538// API operation GetDeliverabilityDashboardOptions for usage and error information.
1539//
1540// Returned Error Types:
1541//   * TooManyRequestsException
1542//   Too many requests have been made to the operation.
1543//
1544//   * LimitExceededException
1545//   There are too many instances of the specified resource type.
1546//
1547//   * BadRequestException
1548//   The input you provided is invalid.
1549//
1550// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityDashboardOptions
1551func (c *PinpointEmail) GetDeliverabilityDashboardOptions(input *GetDeliverabilityDashboardOptionsInput) (*GetDeliverabilityDashboardOptionsOutput, error) {
1552	req, out := c.GetDeliverabilityDashboardOptionsRequest(input)
1553	return out, req.Send()
1554}
1555
1556// GetDeliverabilityDashboardOptionsWithContext is the same as GetDeliverabilityDashboardOptions with the addition of
1557// the ability to pass a context and additional request options.
1558//
1559// See GetDeliverabilityDashboardOptions for details on how to use this API operation.
1560//
1561// The context must be non-nil and will be used for request cancellation. If
1562// the context is nil a panic will occur. In the future the SDK may create
1563// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1564// for more information on using Contexts.
1565func (c *PinpointEmail) GetDeliverabilityDashboardOptionsWithContext(ctx aws.Context, input *GetDeliverabilityDashboardOptionsInput, opts ...request.Option) (*GetDeliverabilityDashboardOptionsOutput, error) {
1566	req, out := c.GetDeliverabilityDashboardOptionsRequest(input)
1567	req.SetContext(ctx)
1568	req.ApplyOptions(opts...)
1569	return out, req.Send()
1570}
1571
1572const opGetDeliverabilityTestReport = "GetDeliverabilityTestReport"
1573
1574// GetDeliverabilityTestReportRequest generates a "aws/request.Request" representing the
1575// client's request for the GetDeliverabilityTestReport 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 GetDeliverabilityTestReport for more information on using the GetDeliverabilityTestReport
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 GetDeliverabilityTestReportRequest method.
1590//    req, resp := client.GetDeliverabilityTestReportRequest(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/pinpoint-email-2018-07-26/GetDeliverabilityTestReport
1598func (c *PinpointEmail) GetDeliverabilityTestReportRequest(input *GetDeliverabilityTestReportInput) (req *request.Request, output *GetDeliverabilityTestReportOutput) {
1599	op := &request.Operation{
1600		Name:       opGetDeliverabilityTestReport,
1601		HTTPMethod: "GET",
1602		HTTPPath:   "/v1/email/deliverability-dashboard/test-reports/{ReportId}",
1603	}
1604
1605	if input == nil {
1606		input = &GetDeliverabilityTestReportInput{}
1607	}
1608
1609	output = &GetDeliverabilityTestReportOutput{}
1610	req = c.newRequest(op, input, output)
1611	return
1612}
1613
1614// GetDeliverabilityTestReport API operation for Amazon Pinpoint Email Service.
1615//
1616// Retrieve the results of a predictive inbox placement test.
1617//
1618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1619// with awserr.Error's Code and Message methods to get detailed information about
1620// the error.
1621//
1622// See the AWS API reference guide for Amazon Pinpoint Email Service's
1623// API operation GetDeliverabilityTestReport for usage and error information.
1624//
1625// Returned Error Types:
1626//   * TooManyRequestsException
1627//   Too many requests have been made to the operation.
1628//
1629//   * NotFoundException
1630//   The resource you attempted to access doesn't exist.
1631//
1632//   * BadRequestException
1633//   The input you provided is invalid.
1634//
1635// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityTestReport
1636func (c *PinpointEmail) GetDeliverabilityTestReport(input *GetDeliverabilityTestReportInput) (*GetDeliverabilityTestReportOutput, error) {
1637	req, out := c.GetDeliverabilityTestReportRequest(input)
1638	return out, req.Send()
1639}
1640
1641// GetDeliverabilityTestReportWithContext is the same as GetDeliverabilityTestReport with the addition of
1642// the ability to pass a context and additional request options.
1643//
1644// See GetDeliverabilityTestReport for details on how to use this API operation.
1645//
1646// The context must be non-nil and will be used for request cancellation. If
1647// the context is nil a panic will occur. In the future the SDK may create
1648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1649// for more information on using Contexts.
1650func (c *PinpointEmail) GetDeliverabilityTestReportWithContext(ctx aws.Context, input *GetDeliverabilityTestReportInput, opts ...request.Option) (*GetDeliverabilityTestReportOutput, error) {
1651	req, out := c.GetDeliverabilityTestReportRequest(input)
1652	req.SetContext(ctx)
1653	req.ApplyOptions(opts...)
1654	return out, req.Send()
1655}
1656
1657const opGetDomainDeliverabilityCampaign = "GetDomainDeliverabilityCampaign"
1658
1659// GetDomainDeliverabilityCampaignRequest generates a "aws/request.Request" representing the
1660// client's request for the GetDomainDeliverabilityCampaign operation. The "output" return
1661// value will be populated with the request's response once the request completes
1662// successfully.
1663//
1664// Use "Send" method on the returned Request to send the API call to the service.
1665// the "output" return value is not valid until after Send returns without error.
1666//
1667// See GetDomainDeliverabilityCampaign for more information on using the GetDomainDeliverabilityCampaign
1668// API call, and error handling.
1669//
1670// This method is useful when you want to inject custom logic or configuration
1671// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1672//
1673//
1674//    // Example sending a request using the GetDomainDeliverabilityCampaignRequest method.
1675//    req, resp := client.GetDomainDeliverabilityCampaignRequest(params)
1676//
1677//    err := req.Send()
1678//    if err == nil { // resp is now filled
1679//        fmt.Println(resp)
1680//    }
1681//
1682// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainDeliverabilityCampaign
1683func (c *PinpointEmail) GetDomainDeliverabilityCampaignRequest(input *GetDomainDeliverabilityCampaignInput) (req *request.Request, output *GetDomainDeliverabilityCampaignOutput) {
1684	op := &request.Operation{
1685		Name:       opGetDomainDeliverabilityCampaign,
1686		HTTPMethod: "GET",
1687		HTTPPath:   "/v1/email/deliverability-dashboard/campaigns/{CampaignId}",
1688	}
1689
1690	if input == nil {
1691		input = &GetDomainDeliverabilityCampaignInput{}
1692	}
1693
1694	output = &GetDomainDeliverabilityCampaignOutput{}
1695	req = c.newRequest(op, input, output)
1696	return
1697}
1698
1699// GetDomainDeliverabilityCampaign API operation for Amazon Pinpoint Email Service.
1700//
1701// Retrieve all the deliverability data for a specific campaign. This data is
1702// available for a campaign only if the campaign sent email by using a domain
1703// that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
1704// operation).
1705//
1706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1707// with awserr.Error's Code and Message methods to get detailed information about
1708// the error.
1709//
1710// See the AWS API reference guide for Amazon Pinpoint Email Service's
1711// API operation GetDomainDeliverabilityCampaign for usage and error information.
1712//
1713// Returned Error Types:
1714//   * TooManyRequestsException
1715//   Too many requests have been made to the operation.
1716//
1717//   * BadRequestException
1718//   The input you provided is invalid.
1719//
1720//   * NotFoundException
1721//   The resource you attempted to access doesn't exist.
1722//
1723// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainDeliverabilityCampaign
1724func (c *PinpointEmail) GetDomainDeliverabilityCampaign(input *GetDomainDeliverabilityCampaignInput) (*GetDomainDeliverabilityCampaignOutput, error) {
1725	req, out := c.GetDomainDeliverabilityCampaignRequest(input)
1726	return out, req.Send()
1727}
1728
1729// GetDomainDeliverabilityCampaignWithContext is the same as GetDomainDeliverabilityCampaign with the addition of
1730// the ability to pass a context and additional request options.
1731//
1732// See GetDomainDeliverabilityCampaign for details on how to use this API operation.
1733//
1734// The context must be non-nil and will be used for request cancellation. If
1735// the context is nil a panic will occur. In the future the SDK may create
1736// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1737// for more information on using Contexts.
1738func (c *PinpointEmail) GetDomainDeliverabilityCampaignWithContext(ctx aws.Context, input *GetDomainDeliverabilityCampaignInput, opts ...request.Option) (*GetDomainDeliverabilityCampaignOutput, error) {
1739	req, out := c.GetDomainDeliverabilityCampaignRequest(input)
1740	req.SetContext(ctx)
1741	req.ApplyOptions(opts...)
1742	return out, req.Send()
1743}
1744
1745const opGetDomainStatisticsReport = "GetDomainStatisticsReport"
1746
1747// GetDomainStatisticsReportRequest generates a "aws/request.Request" representing the
1748// client's request for the GetDomainStatisticsReport operation. The "output" return
1749// value will be populated with the request's response once the request completes
1750// successfully.
1751//
1752// Use "Send" method on the returned Request to send the API call to the service.
1753// the "output" return value is not valid until after Send returns without error.
1754//
1755// See GetDomainStatisticsReport for more information on using the GetDomainStatisticsReport
1756// API call, and error handling.
1757//
1758// This method is useful when you want to inject custom logic or configuration
1759// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1760//
1761//
1762//    // Example sending a request using the GetDomainStatisticsReportRequest method.
1763//    req, resp := client.GetDomainStatisticsReportRequest(params)
1764//
1765//    err := req.Send()
1766//    if err == nil { // resp is now filled
1767//        fmt.Println(resp)
1768//    }
1769//
1770// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainStatisticsReport
1771func (c *PinpointEmail) GetDomainStatisticsReportRequest(input *GetDomainStatisticsReportInput) (req *request.Request, output *GetDomainStatisticsReportOutput) {
1772	op := &request.Operation{
1773		Name:       opGetDomainStatisticsReport,
1774		HTTPMethod: "GET",
1775		HTTPPath:   "/v1/email/deliverability-dashboard/statistics-report/{Domain}",
1776	}
1777
1778	if input == nil {
1779		input = &GetDomainStatisticsReportInput{}
1780	}
1781
1782	output = &GetDomainStatisticsReportOutput{}
1783	req = c.newRequest(op, input, output)
1784	return
1785}
1786
1787// GetDomainStatisticsReport API operation for Amazon Pinpoint Email Service.
1788//
1789// Retrieve inbox placement and engagement rates for the domains that you use
1790// to send email.
1791//
1792// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1793// with awserr.Error's Code and Message methods to get detailed information about
1794// the error.
1795//
1796// See the AWS API reference guide for Amazon Pinpoint Email Service's
1797// API operation GetDomainStatisticsReport for usage and error information.
1798//
1799// Returned Error Types:
1800//   * TooManyRequestsException
1801//   Too many requests have been made to the operation.
1802//
1803//   * NotFoundException
1804//   The resource you attempted to access doesn't exist.
1805//
1806//   * BadRequestException
1807//   The input you provided is invalid.
1808//
1809// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainStatisticsReport
1810func (c *PinpointEmail) GetDomainStatisticsReport(input *GetDomainStatisticsReportInput) (*GetDomainStatisticsReportOutput, error) {
1811	req, out := c.GetDomainStatisticsReportRequest(input)
1812	return out, req.Send()
1813}
1814
1815// GetDomainStatisticsReportWithContext is the same as GetDomainStatisticsReport with the addition of
1816// the ability to pass a context and additional request options.
1817//
1818// See GetDomainStatisticsReport for details on how to use this API operation.
1819//
1820// The context must be non-nil and will be used for request cancellation. If
1821// the context is nil a panic will occur. In the future the SDK may create
1822// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1823// for more information on using Contexts.
1824func (c *PinpointEmail) GetDomainStatisticsReportWithContext(ctx aws.Context, input *GetDomainStatisticsReportInput, opts ...request.Option) (*GetDomainStatisticsReportOutput, error) {
1825	req, out := c.GetDomainStatisticsReportRequest(input)
1826	req.SetContext(ctx)
1827	req.ApplyOptions(opts...)
1828	return out, req.Send()
1829}
1830
1831const opGetEmailIdentity = "GetEmailIdentity"
1832
1833// GetEmailIdentityRequest generates a "aws/request.Request" representing the
1834// client's request for the GetEmailIdentity operation. The "output" return
1835// value will be populated with the request's response once the request completes
1836// successfully.
1837//
1838// Use "Send" method on the returned Request to send the API call to the service.
1839// the "output" return value is not valid until after Send returns without error.
1840//
1841// See GetEmailIdentity for more information on using the GetEmailIdentity
1842// API call, and error handling.
1843//
1844// This method is useful when you want to inject custom logic or configuration
1845// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1846//
1847//
1848//    // Example sending a request using the GetEmailIdentityRequest method.
1849//    req, resp := client.GetEmailIdentityRequest(params)
1850//
1851//    err := req.Send()
1852//    if err == nil { // resp is now filled
1853//        fmt.Println(resp)
1854//    }
1855//
1856// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetEmailIdentity
1857func (c *PinpointEmail) GetEmailIdentityRequest(input *GetEmailIdentityInput) (req *request.Request, output *GetEmailIdentityOutput) {
1858	op := &request.Operation{
1859		Name:       opGetEmailIdentity,
1860		HTTPMethod: "GET",
1861		HTTPPath:   "/v1/email/identities/{EmailIdentity}",
1862	}
1863
1864	if input == nil {
1865		input = &GetEmailIdentityInput{}
1866	}
1867
1868	output = &GetEmailIdentityOutput{}
1869	req = c.newRequest(op, input, output)
1870	return
1871}
1872
1873// GetEmailIdentity API operation for Amazon Pinpoint Email Service.
1874//
1875// Provides information about a specific identity associated with your Amazon
1876// Pinpoint account, including the identity's verification status, its DKIM
1877// authentication status, and its custom Mail-From settings.
1878//
1879// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1880// with awserr.Error's Code and Message methods to get detailed information about
1881// the error.
1882//
1883// See the AWS API reference guide for Amazon Pinpoint Email Service's
1884// API operation GetEmailIdentity for usage and error information.
1885//
1886// Returned Error Types:
1887//   * NotFoundException
1888//   The resource you attempted to access doesn't exist.
1889//
1890//   * TooManyRequestsException
1891//   Too many requests have been made to the operation.
1892//
1893//   * BadRequestException
1894//   The input you provided is invalid.
1895//
1896// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetEmailIdentity
1897func (c *PinpointEmail) GetEmailIdentity(input *GetEmailIdentityInput) (*GetEmailIdentityOutput, error) {
1898	req, out := c.GetEmailIdentityRequest(input)
1899	return out, req.Send()
1900}
1901
1902// GetEmailIdentityWithContext is the same as GetEmailIdentity with the addition of
1903// the ability to pass a context and additional request options.
1904//
1905// See GetEmailIdentity for details on how to use this API operation.
1906//
1907// The context must be non-nil and will be used for request cancellation. If
1908// the context is nil a panic will occur. In the future the SDK may create
1909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1910// for more information on using Contexts.
1911func (c *PinpointEmail) GetEmailIdentityWithContext(ctx aws.Context, input *GetEmailIdentityInput, opts ...request.Option) (*GetEmailIdentityOutput, error) {
1912	req, out := c.GetEmailIdentityRequest(input)
1913	req.SetContext(ctx)
1914	req.ApplyOptions(opts...)
1915	return out, req.Send()
1916}
1917
1918const opListConfigurationSets = "ListConfigurationSets"
1919
1920// ListConfigurationSetsRequest generates a "aws/request.Request" representing the
1921// client's request for the ListConfigurationSets operation. The "output" return
1922// value will be populated with the request's response once the request completes
1923// successfully.
1924//
1925// Use "Send" method on the returned Request to send the API call to the service.
1926// the "output" return value is not valid until after Send returns without error.
1927//
1928// See ListConfigurationSets for more information on using the ListConfigurationSets
1929// API call, and error handling.
1930//
1931// This method is useful when you want to inject custom logic or configuration
1932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1933//
1934//
1935//    // Example sending a request using the ListConfigurationSetsRequest method.
1936//    req, resp := client.ListConfigurationSetsRequest(params)
1937//
1938//    err := req.Send()
1939//    if err == nil { // resp is now filled
1940//        fmt.Println(resp)
1941//    }
1942//
1943// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListConfigurationSets
1944func (c *PinpointEmail) ListConfigurationSetsRequest(input *ListConfigurationSetsInput) (req *request.Request, output *ListConfigurationSetsOutput) {
1945	op := &request.Operation{
1946		Name:       opListConfigurationSets,
1947		HTTPMethod: "GET",
1948		HTTPPath:   "/v1/email/configuration-sets",
1949		Paginator: &request.Paginator{
1950			InputTokens:     []string{"NextToken"},
1951			OutputTokens:    []string{"NextToken"},
1952			LimitToken:      "PageSize",
1953			TruncationToken: "",
1954		},
1955	}
1956
1957	if input == nil {
1958		input = &ListConfigurationSetsInput{}
1959	}
1960
1961	output = &ListConfigurationSetsOutput{}
1962	req = c.newRequest(op, input, output)
1963	return
1964}
1965
1966// ListConfigurationSets API operation for Amazon Pinpoint Email Service.
1967//
1968// List all of the configuration sets associated with your Amazon Pinpoint account
1969// in the current region.
1970//
1971// In Amazon Pinpoint, configuration sets are groups of rules that you can apply
1972// to the emails you send. You apply a configuration set to an email by including
1973// a reference to the configuration set in the headers of the email. When you
1974// apply a configuration set to an email, all of the rules in that configuration
1975// set are applied to the email.
1976//
1977// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1978// with awserr.Error's Code and Message methods to get detailed information about
1979// the error.
1980//
1981// See the AWS API reference guide for Amazon Pinpoint Email Service's
1982// API operation ListConfigurationSets for usage and error information.
1983//
1984// Returned Error Types:
1985//   * TooManyRequestsException
1986//   Too many requests have been made to the operation.
1987//
1988//   * BadRequestException
1989//   The input you provided is invalid.
1990//
1991// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListConfigurationSets
1992func (c *PinpointEmail) ListConfigurationSets(input *ListConfigurationSetsInput) (*ListConfigurationSetsOutput, error) {
1993	req, out := c.ListConfigurationSetsRequest(input)
1994	return out, req.Send()
1995}
1996
1997// ListConfigurationSetsWithContext is the same as ListConfigurationSets with the addition of
1998// the ability to pass a context and additional request options.
1999//
2000// See ListConfigurationSets for details on how to use this API operation.
2001//
2002// The context must be non-nil and will be used for request cancellation. If
2003// the context is nil a panic will occur. In the future the SDK may create
2004// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2005// for more information on using Contexts.
2006func (c *PinpointEmail) ListConfigurationSetsWithContext(ctx aws.Context, input *ListConfigurationSetsInput, opts ...request.Option) (*ListConfigurationSetsOutput, error) {
2007	req, out := c.ListConfigurationSetsRequest(input)
2008	req.SetContext(ctx)
2009	req.ApplyOptions(opts...)
2010	return out, req.Send()
2011}
2012
2013// ListConfigurationSetsPages iterates over the pages of a ListConfigurationSets operation,
2014// calling the "fn" function with the response data for each page. To stop
2015// iterating, return false from the fn function.
2016//
2017// See ListConfigurationSets method for more information on how to use this operation.
2018//
2019// Note: This operation can generate multiple requests to a service.
2020//
2021//    // Example iterating over at most 3 pages of a ListConfigurationSets operation.
2022//    pageNum := 0
2023//    err := client.ListConfigurationSetsPages(params,
2024//        func(page *pinpointemail.ListConfigurationSetsOutput, lastPage bool) bool {
2025//            pageNum++
2026//            fmt.Println(page)
2027//            return pageNum <= 3
2028//        })
2029//
2030func (c *PinpointEmail) ListConfigurationSetsPages(input *ListConfigurationSetsInput, fn func(*ListConfigurationSetsOutput, bool) bool) error {
2031	return c.ListConfigurationSetsPagesWithContext(aws.BackgroundContext(), input, fn)
2032}
2033
2034// ListConfigurationSetsPagesWithContext same as ListConfigurationSetsPages except
2035// it takes a Context and allows setting request options on the pages.
2036//
2037// The context must be non-nil and will be used for request cancellation. If
2038// the context is nil a panic will occur. In the future the SDK may create
2039// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2040// for more information on using Contexts.
2041func (c *PinpointEmail) ListConfigurationSetsPagesWithContext(ctx aws.Context, input *ListConfigurationSetsInput, fn func(*ListConfigurationSetsOutput, bool) bool, opts ...request.Option) error {
2042	p := request.Pagination{
2043		NewRequest: func() (*request.Request, error) {
2044			var inCpy *ListConfigurationSetsInput
2045			if input != nil {
2046				tmp := *input
2047				inCpy = &tmp
2048			}
2049			req, _ := c.ListConfigurationSetsRequest(inCpy)
2050			req.SetContext(ctx)
2051			req.ApplyOptions(opts...)
2052			return req, nil
2053		},
2054	}
2055
2056	for p.Next() {
2057		if !fn(p.Page().(*ListConfigurationSetsOutput), !p.HasNextPage()) {
2058			break
2059		}
2060	}
2061
2062	return p.Err()
2063}
2064
2065const opListDedicatedIpPools = "ListDedicatedIpPools"
2066
2067// ListDedicatedIpPoolsRequest generates a "aws/request.Request" representing the
2068// client's request for the ListDedicatedIpPools operation. The "output" return
2069// value will be populated with the request's response once the request completes
2070// successfully.
2071//
2072// Use "Send" method on the returned Request to send the API call to the service.
2073// the "output" return value is not valid until after Send returns without error.
2074//
2075// See ListDedicatedIpPools for more information on using the ListDedicatedIpPools
2076// API call, and error handling.
2077//
2078// This method is useful when you want to inject custom logic or configuration
2079// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2080//
2081//
2082//    // Example sending a request using the ListDedicatedIpPoolsRequest method.
2083//    req, resp := client.ListDedicatedIpPoolsRequest(params)
2084//
2085//    err := req.Send()
2086//    if err == nil { // resp is now filled
2087//        fmt.Println(resp)
2088//    }
2089//
2090// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDedicatedIpPools
2091func (c *PinpointEmail) ListDedicatedIpPoolsRequest(input *ListDedicatedIpPoolsInput) (req *request.Request, output *ListDedicatedIpPoolsOutput) {
2092	op := &request.Operation{
2093		Name:       opListDedicatedIpPools,
2094		HTTPMethod: "GET",
2095		HTTPPath:   "/v1/email/dedicated-ip-pools",
2096		Paginator: &request.Paginator{
2097			InputTokens:     []string{"NextToken"},
2098			OutputTokens:    []string{"NextToken"},
2099			LimitToken:      "PageSize",
2100			TruncationToken: "",
2101		},
2102	}
2103
2104	if input == nil {
2105		input = &ListDedicatedIpPoolsInput{}
2106	}
2107
2108	output = &ListDedicatedIpPoolsOutput{}
2109	req = c.newRequest(op, input, output)
2110	return
2111}
2112
2113// ListDedicatedIpPools API operation for Amazon Pinpoint Email Service.
2114//
2115// List all of the dedicated IP pools that exist in your Amazon Pinpoint account
2116// in the current AWS Region.
2117//
2118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2119// with awserr.Error's Code and Message methods to get detailed information about
2120// the error.
2121//
2122// See the AWS API reference guide for Amazon Pinpoint Email Service's
2123// API operation ListDedicatedIpPools for usage and error information.
2124//
2125// Returned Error Types:
2126//   * TooManyRequestsException
2127//   Too many requests have been made to the operation.
2128//
2129//   * BadRequestException
2130//   The input you provided is invalid.
2131//
2132// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDedicatedIpPools
2133func (c *PinpointEmail) ListDedicatedIpPools(input *ListDedicatedIpPoolsInput) (*ListDedicatedIpPoolsOutput, error) {
2134	req, out := c.ListDedicatedIpPoolsRequest(input)
2135	return out, req.Send()
2136}
2137
2138// ListDedicatedIpPoolsWithContext is the same as ListDedicatedIpPools with the addition of
2139// the ability to pass a context and additional request options.
2140//
2141// See ListDedicatedIpPools for details on how to use this API operation.
2142//
2143// The context must be non-nil and will be used for request cancellation. If
2144// the context is nil a panic will occur. In the future the SDK may create
2145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2146// for more information on using Contexts.
2147func (c *PinpointEmail) ListDedicatedIpPoolsWithContext(ctx aws.Context, input *ListDedicatedIpPoolsInput, opts ...request.Option) (*ListDedicatedIpPoolsOutput, error) {
2148	req, out := c.ListDedicatedIpPoolsRequest(input)
2149	req.SetContext(ctx)
2150	req.ApplyOptions(opts...)
2151	return out, req.Send()
2152}
2153
2154// ListDedicatedIpPoolsPages iterates over the pages of a ListDedicatedIpPools operation,
2155// calling the "fn" function with the response data for each page. To stop
2156// iterating, return false from the fn function.
2157//
2158// See ListDedicatedIpPools method for more information on how to use this operation.
2159//
2160// Note: This operation can generate multiple requests to a service.
2161//
2162//    // Example iterating over at most 3 pages of a ListDedicatedIpPools operation.
2163//    pageNum := 0
2164//    err := client.ListDedicatedIpPoolsPages(params,
2165//        func(page *pinpointemail.ListDedicatedIpPoolsOutput, lastPage bool) bool {
2166//            pageNum++
2167//            fmt.Println(page)
2168//            return pageNum <= 3
2169//        })
2170//
2171func (c *PinpointEmail) ListDedicatedIpPoolsPages(input *ListDedicatedIpPoolsInput, fn func(*ListDedicatedIpPoolsOutput, bool) bool) error {
2172	return c.ListDedicatedIpPoolsPagesWithContext(aws.BackgroundContext(), input, fn)
2173}
2174
2175// ListDedicatedIpPoolsPagesWithContext same as ListDedicatedIpPoolsPages except
2176// it takes a Context and allows setting request options on the pages.
2177//
2178// The context must be non-nil and will be used for request cancellation. If
2179// the context is nil a panic will occur. In the future the SDK may create
2180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2181// for more information on using Contexts.
2182func (c *PinpointEmail) ListDedicatedIpPoolsPagesWithContext(ctx aws.Context, input *ListDedicatedIpPoolsInput, fn func(*ListDedicatedIpPoolsOutput, bool) bool, opts ...request.Option) error {
2183	p := request.Pagination{
2184		NewRequest: func() (*request.Request, error) {
2185			var inCpy *ListDedicatedIpPoolsInput
2186			if input != nil {
2187				tmp := *input
2188				inCpy = &tmp
2189			}
2190			req, _ := c.ListDedicatedIpPoolsRequest(inCpy)
2191			req.SetContext(ctx)
2192			req.ApplyOptions(opts...)
2193			return req, nil
2194		},
2195	}
2196
2197	for p.Next() {
2198		if !fn(p.Page().(*ListDedicatedIpPoolsOutput), !p.HasNextPage()) {
2199			break
2200		}
2201	}
2202
2203	return p.Err()
2204}
2205
2206const opListDeliverabilityTestReports = "ListDeliverabilityTestReports"
2207
2208// ListDeliverabilityTestReportsRequest generates a "aws/request.Request" representing the
2209// client's request for the ListDeliverabilityTestReports operation. The "output" return
2210// value will be populated with the request's response once the request completes
2211// successfully.
2212//
2213// Use "Send" method on the returned Request to send the API call to the service.
2214// the "output" return value is not valid until after Send returns without error.
2215//
2216// See ListDeliverabilityTestReports for more information on using the ListDeliverabilityTestReports
2217// API call, and error handling.
2218//
2219// This method is useful when you want to inject custom logic or configuration
2220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2221//
2222//
2223//    // Example sending a request using the ListDeliverabilityTestReportsRequest method.
2224//    req, resp := client.ListDeliverabilityTestReportsRequest(params)
2225//
2226//    err := req.Send()
2227//    if err == nil { // resp is now filled
2228//        fmt.Println(resp)
2229//    }
2230//
2231// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDeliverabilityTestReports
2232func (c *PinpointEmail) ListDeliverabilityTestReportsRequest(input *ListDeliverabilityTestReportsInput) (req *request.Request, output *ListDeliverabilityTestReportsOutput) {
2233	op := &request.Operation{
2234		Name:       opListDeliverabilityTestReports,
2235		HTTPMethod: "GET",
2236		HTTPPath:   "/v1/email/deliverability-dashboard/test-reports",
2237		Paginator: &request.Paginator{
2238			InputTokens:     []string{"NextToken"},
2239			OutputTokens:    []string{"NextToken"},
2240			LimitToken:      "PageSize",
2241			TruncationToken: "",
2242		},
2243	}
2244
2245	if input == nil {
2246		input = &ListDeliverabilityTestReportsInput{}
2247	}
2248
2249	output = &ListDeliverabilityTestReportsOutput{}
2250	req = c.newRequest(op, input, output)
2251	return
2252}
2253
2254// ListDeliverabilityTestReports API operation for Amazon Pinpoint Email Service.
2255//
2256// Show a list of the predictive inbox placement tests that you've performed,
2257// regardless of their statuses. For predictive inbox placement tests that are
2258// complete, you can use the GetDeliverabilityTestReport operation to view the
2259// results.
2260//
2261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2262// with awserr.Error's Code and Message methods to get detailed information about
2263// the error.
2264//
2265// See the AWS API reference guide for Amazon Pinpoint Email Service's
2266// API operation ListDeliverabilityTestReports for usage and error information.
2267//
2268// Returned Error Types:
2269//   * TooManyRequestsException
2270//   Too many requests have been made to the operation.
2271//
2272//   * NotFoundException
2273//   The resource you attempted to access doesn't exist.
2274//
2275//   * BadRequestException
2276//   The input you provided is invalid.
2277//
2278// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDeliverabilityTestReports
2279func (c *PinpointEmail) ListDeliverabilityTestReports(input *ListDeliverabilityTestReportsInput) (*ListDeliverabilityTestReportsOutput, error) {
2280	req, out := c.ListDeliverabilityTestReportsRequest(input)
2281	return out, req.Send()
2282}
2283
2284// ListDeliverabilityTestReportsWithContext is the same as ListDeliverabilityTestReports with the addition of
2285// the ability to pass a context and additional request options.
2286//
2287// See ListDeliverabilityTestReports for details on how to use this API operation.
2288//
2289// The context must be non-nil and will be used for request cancellation. If
2290// the context is nil a panic will occur. In the future the SDK may create
2291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2292// for more information on using Contexts.
2293func (c *PinpointEmail) ListDeliverabilityTestReportsWithContext(ctx aws.Context, input *ListDeliverabilityTestReportsInput, opts ...request.Option) (*ListDeliverabilityTestReportsOutput, error) {
2294	req, out := c.ListDeliverabilityTestReportsRequest(input)
2295	req.SetContext(ctx)
2296	req.ApplyOptions(opts...)
2297	return out, req.Send()
2298}
2299
2300// ListDeliverabilityTestReportsPages iterates over the pages of a ListDeliverabilityTestReports operation,
2301// calling the "fn" function with the response data for each page. To stop
2302// iterating, return false from the fn function.
2303//
2304// See ListDeliverabilityTestReports method for more information on how to use this operation.
2305//
2306// Note: This operation can generate multiple requests to a service.
2307//
2308//    // Example iterating over at most 3 pages of a ListDeliverabilityTestReports operation.
2309//    pageNum := 0
2310//    err := client.ListDeliverabilityTestReportsPages(params,
2311//        func(page *pinpointemail.ListDeliverabilityTestReportsOutput, lastPage bool) bool {
2312//            pageNum++
2313//            fmt.Println(page)
2314//            return pageNum <= 3
2315//        })
2316//
2317func (c *PinpointEmail) ListDeliverabilityTestReportsPages(input *ListDeliverabilityTestReportsInput, fn func(*ListDeliverabilityTestReportsOutput, bool) bool) error {
2318	return c.ListDeliverabilityTestReportsPagesWithContext(aws.BackgroundContext(), input, fn)
2319}
2320
2321// ListDeliverabilityTestReportsPagesWithContext same as ListDeliverabilityTestReportsPages except
2322// it takes a Context and allows setting request options on the pages.
2323//
2324// The context must be non-nil and will be used for request cancellation. If
2325// the context is nil a panic will occur. In the future the SDK may create
2326// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2327// for more information on using Contexts.
2328func (c *PinpointEmail) ListDeliverabilityTestReportsPagesWithContext(ctx aws.Context, input *ListDeliverabilityTestReportsInput, fn func(*ListDeliverabilityTestReportsOutput, bool) bool, opts ...request.Option) error {
2329	p := request.Pagination{
2330		NewRequest: func() (*request.Request, error) {
2331			var inCpy *ListDeliverabilityTestReportsInput
2332			if input != nil {
2333				tmp := *input
2334				inCpy = &tmp
2335			}
2336			req, _ := c.ListDeliverabilityTestReportsRequest(inCpy)
2337			req.SetContext(ctx)
2338			req.ApplyOptions(opts...)
2339			return req, nil
2340		},
2341	}
2342
2343	for p.Next() {
2344		if !fn(p.Page().(*ListDeliverabilityTestReportsOutput), !p.HasNextPage()) {
2345			break
2346		}
2347	}
2348
2349	return p.Err()
2350}
2351
2352const opListDomainDeliverabilityCampaigns = "ListDomainDeliverabilityCampaigns"
2353
2354// ListDomainDeliverabilityCampaignsRequest generates a "aws/request.Request" representing the
2355// client's request for the ListDomainDeliverabilityCampaigns operation. The "output" return
2356// value will be populated with the request's response once the request completes
2357// successfully.
2358//
2359// Use "Send" method on the returned Request to send the API call to the service.
2360// the "output" return value is not valid until after Send returns without error.
2361//
2362// See ListDomainDeliverabilityCampaigns for more information on using the ListDomainDeliverabilityCampaigns
2363// API call, and error handling.
2364//
2365// This method is useful when you want to inject custom logic or configuration
2366// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2367//
2368//
2369//    // Example sending a request using the ListDomainDeliverabilityCampaignsRequest method.
2370//    req, resp := client.ListDomainDeliverabilityCampaignsRequest(params)
2371//
2372//    err := req.Send()
2373//    if err == nil { // resp is now filled
2374//        fmt.Println(resp)
2375//    }
2376//
2377// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDomainDeliverabilityCampaigns
2378func (c *PinpointEmail) ListDomainDeliverabilityCampaignsRequest(input *ListDomainDeliverabilityCampaignsInput) (req *request.Request, output *ListDomainDeliverabilityCampaignsOutput) {
2379	op := &request.Operation{
2380		Name:       opListDomainDeliverabilityCampaigns,
2381		HTTPMethod: "GET",
2382		HTTPPath:   "/v1/email/deliverability-dashboard/domains/{SubscribedDomain}/campaigns",
2383		Paginator: &request.Paginator{
2384			InputTokens:     []string{"NextToken"},
2385			OutputTokens:    []string{"NextToken"},
2386			LimitToken:      "PageSize",
2387			TruncationToken: "",
2388		},
2389	}
2390
2391	if input == nil {
2392		input = &ListDomainDeliverabilityCampaignsInput{}
2393	}
2394
2395	output = &ListDomainDeliverabilityCampaignsOutput{}
2396	req = c.newRequest(op, input, output)
2397	return
2398}
2399
2400// ListDomainDeliverabilityCampaigns API operation for Amazon Pinpoint Email Service.
2401//
2402// Retrieve deliverability data for all the campaigns that used a specific domain
2403// to send email during a specified time range. This data is available for a
2404// domain only if you enabled the Deliverability dashboard (PutDeliverabilityDashboardOption
2405// operation) for the domain.
2406//
2407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2408// with awserr.Error's Code and Message methods to get detailed information about
2409// the error.
2410//
2411// See the AWS API reference guide for Amazon Pinpoint Email Service's
2412// API operation ListDomainDeliverabilityCampaigns for usage and error information.
2413//
2414// Returned Error Types:
2415//   * TooManyRequestsException
2416//   Too many requests have been made to the operation.
2417//
2418//   * BadRequestException
2419//   The input you provided is invalid.
2420//
2421//   * NotFoundException
2422//   The resource you attempted to access doesn't exist.
2423//
2424// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDomainDeliverabilityCampaigns
2425func (c *PinpointEmail) ListDomainDeliverabilityCampaigns(input *ListDomainDeliverabilityCampaignsInput) (*ListDomainDeliverabilityCampaignsOutput, error) {
2426	req, out := c.ListDomainDeliverabilityCampaignsRequest(input)
2427	return out, req.Send()
2428}
2429
2430// ListDomainDeliverabilityCampaignsWithContext is the same as ListDomainDeliverabilityCampaigns with the addition of
2431// the ability to pass a context and additional request options.
2432//
2433// See ListDomainDeliverabilityCampaigns for details on how to use this API operation.
2434//
2435// The context must be non-nil and will be used for request cancellation. If
2436// the context is nil a panic will occur. In the future the SDK may create
2437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2438// for more information on using Contexts.
2439func (c *PinpointEmail) ListDomainDeliverabilityCampaignsWithContext(ctx aws.Context, input *ListDomainDeliverabilityCampaignsInput, opts ...request.Option) (*ListDomainDeliverabilityCampaignsOutput, error) {
2440	req, out := c.ListDomainDeliverabilityCampaignsRequest(input)
2441	req.SetContext(ctx)
2442	req.ApplyOptions(opts...)
2443	return out, req.Send()
2444}
2445
2446// ListDomainDeliverabilityCampaignsPages iterates over the pages of a ListDomainDeliverabilityCampaigns operation,
2447// calling the "fn" function with the response data for each page. To stop
2448// iterating, return false from the fn function.
2449//
2450// See ListDomainDeliverabilityCampaigns method for more information on how to use this operation.
2451//
2452// Note: This operation can generate multiple requests to a service.
2453//
2454//    // Example iterating over at most 3 pages of a ListDomainDeliverabilityCampaigns operation.
2455//    pageNum := 0
2456//    err := client.ListDomainDeliverabilityCampaignsPages(params,
2457//        func(page *pinpointemail.ListDomainDeliverabilityCampaignsOutput, lastPage bool) bool {
2458//            pageNum++
2459//            fmt.Println(page)
2460//            return pageNum <= 3
2461//        })
2462//
2463func (c *PinpointEmail) ListDomainDeliverabilityCampaignsPages(input *ListDomainDeliverabilityCampaignsInput, fn func(*ListDomainDeliverabilityCampaignsOutput, bool) bool) error {
2464	return c.ListDomainDeliverabilityCampaignsPagesWithContext(aws.BackgroundContext(), input, fn)
2465}
2466
2467// ListDomainDeliverabilityCampaignsPagesWithContext same as ListDomainDeliverabilityCampaignsPages except
2468// it takes a Context and allows setting request options on the pages.
2469//
2470// The context must be non-nil and will be used for request cancellation. If
2471// the context is nil a panic will occur. In the future the SDK may create
2472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2473// for more information on using Contexts.
2474func (c *PinpointEmail) ListDomainDeliverabilityCampaignsPagesWithContext(ctx aws.Context, input *ListDomainDeliverabilityCampaignsInput, fn func(*ListDomainDeliverabilityCampaignsOutput, bool) bool, opts ...request.Option) error {
2475	p := request.Pagination{
2476		NewRequest: func() (*request.Request, error) {
2477			var inCpy *ListDomainDeliverabilityCampaignsInput
2478			if input != nil {
2479				tmp := *input
2480				inCpy = &tmp
2481			}
2482			req, _ := c.ListDomainDeliverabilityCampaignsRequest(inCpy)
2483			req.SetContext(ctx)
2484			req.ApplyOptions(opts...)
2485			return req, nil
2486		},
2487	}
2488
2489	for p.Next() {
2490		if !fn(p.Page().(*ListDomainDeliverabilityCampaignsOutput), !p.HasNextPage()) {
2491			break
2492		}
2493	}
2494
2495	return p.Err()
2496}
2497
2498const opListEmailIdentities = "ListEmailIdentities"
2499
2500// ListEmailIdentitiesRequest generates a "aws/request.Request" representing the
2501// client's request for the ListEmailIdentities operation. The "output" return
2502// value will be populated with the request's response once the request completes
2503// successfully.
2504//
2505// Use "Send" method on the returned Request to send the API call to the service.
2506// the "output" return value is not valid until after Send returns without error.
2507//
2508// See ListEmailIdentities for more information on using the ListEmailIdentities
2509// API call, and error handling.
2510//
2511// This method is useful when you want to inject custom logic or configuration
2512// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2513//
2514//
2515//    // Example sending a request using the ListEmailIdentitiesRequest method.
2516//    req, resp := client.ListEmailIdentitiesRequest(params)
2517//
2518//    err := req.Send()
2519//    if err == nil { // resp is now filled
2520//        fmt.Println(resp)
2521//    }
2522//
2523// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListEmailIdentities
2524func (c *PinpointEmail) ListEmailIdentitiesRequest(input *ListEmailIdentitiesInput) (req *request.Request, output *ListEmailIdentitiesOutput) {
2525	op := &request.Operation{
2526		Name:       opListEmailIdentities,
2527		HTTPMethod: "GET",
2528		HTTPPath:   "/v1/email/identities",
2529		Paginator: &request.Paginator{
2530			InputTokens:     []string{"NextToken"},
2531			OutputTokens:    []string{"NextToken"},
2532			LimitToken:      "PageSize",
2533			TruncationToken: "",
2534		},
2535	}
2536
2537	if input == nil {
2538		input = &ListEmailIdentitiesInput{}
2539	}
2540
2541	output = &ListEmailIdentitiesOutput{}
2542	req = c.newRequest(op, input, output)
2543	return
2544}
2545
2546// ListEmailIdentities API operation for Amazon Pinpoint Email Service.
2547//
2548// Returns a list of all of the email identities that are associated with your
2549// Amazon Pinpoint account. An identity can be either an email address or a
2550// domain. This operation returns identities that are verified as well as those
2551// that aren't.
2552//
2553// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2554// with awserr.Error's Code and Message methods to get detailed information about
2555// the error.
2556//
2557// See the AWS API reference guide for Amazon Pinpoint Email Service's
2558// API operation ListEmailIdentities for usage and error information.
2559//
2560// Returned Error Types:
2561//   * TooManyRequestsException
2562//   Too many requests have been made to the operation.
2563//
2564//   * BadRequestException
2565//   The input you provided is invalid.
2566//
2567// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListEmailIdentities
2568func (c *PinpointEmail) ListEmailIdentities(input *ListEmailIdentitiesInput) (*ListEmailIdentitiesOutput, error) {
2569	req, out := c.ListEmailIdentitiesRequest(input)
2570	return out, req.Send()
2571}
2572
2573// ListEmailIdentitiesWithContext is the same as ListEmailIdentities with the addition of
2574// the ability to pass a context and additional request options.
2575//
2576// See ListEmailIdentities for details on how to use this API operation.
2577//
2578// The context must be non-nil and will be used for request cancellation. If
2579// the context is nil a panic will occur. In the future the SDK may create
2580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2581// for more information on using Contexts.
2582func (c *PinpointEmail) ListEmailIdentitiesWithContext(ctx aws.Context, input *ListEmailIdentitiesInput, opts ...request.Option) (*ListEmailIdentitiesOutput, error) {
2583	req, out := c.ListEmailIdentitiesRequest(input)
2584	req.SetContext(ctx)
2585	req.ApplyOptions(opts...)
2586	return out, req.Send()
2587}
2588
2589// ListEmailIdentitiesPages iterates over the pages of a ListEmailIdentities operation,
2590// calling the "fn" function with the response data for each page. To stop
2591// iterating, return false from the fn function.
2592//
2593// See ListEmailIdentities method for more information on how to use this operation.
2594//
2595// Note: This operation can generate multiple requests to a service.
2596//
2597//    // Example iterating over at most 3 pages of a ListEmailIdentities operation.
2598//    pageNum := 0
2599//    err := client.ListEmailIdentitiesPages(params,
2600//        func(page *pinpointemail.ListEmailIdentitiesOutput, lastPage bool) bool {
2601//            pageNum++
2602//            fmt.Println(page)
2603//            return pageNum <= 3
2604//        })
2605//
2606func (c *PinpointEmail) ListEmailIdentitiesPages(input *ListEmailIdentitiesInput, fn func(*ListEmailIdentitiesOutput, bool) bool) error {
2607	return c.ListEmailIdentitiesPagesWithContext(aws.BackgroundContext(), input, fn)
2608}
2609
2610// ListEmailIdentitiesPagesWithContext same as ListEmailIdentitiesPages except
2611// it takes a Context and allows setting request options on the pages.
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 *PinpointEmail) ListEmailIdentitiesPagesWithContext(ctx aws.Context, input *ListEmailIdentitiesInput, fn func(*ListEmailIdentitiesOutput, bool) bool, opts ...request.Option) error {
2618	p := request.Pagination{
2619		NewRequest: func() (*request.Request, error) {
2620			var inCpy *ListEmailIdentitiesInput
2621			if input != nil {
2622				tmp := *input
2623				inCpy = &tmp
2624			}
2625			req, _ := c.ListEmailIdentitiesRequest(inCpy)
2626			req.SetContext(ctx)
2627			req.ApplyOptions(opts...)
2628			return req, nil
2629		},
2630	}
2631
2632	for p.Next() {
2633		if !fn(p.Page().(*ListEmailIdentitiesOutput), !p.HasNextPage()) {
2634			break
2635		}
2636	}
2637
2638	return p.Err()
2639}
2640
2641const opListTagsForResource = "ListTagsForResource"
2642
2643// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2644// client's request for the ListTagsForResource operation. The "output" return
2645// value will be populated with the request's response once the request completes
2646// successfully.
2647//
2648// Use "Send" method on the returned Request to send the API call to the service.
2649// the "output" return value is not valid until after Send returns without error.
2650//
2651// See ListTagsForResource for more information on using the ListTagsForResource
2652// API call, and error handling.
2653//
2654// This method is useful when you want to inject custom logic or configuration
2655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2656//
2657//
2658//    // Example sending a request using the ListTagsForResourceRequest method.
2659//    req, resp := client.ListTagsForResourceRequest(params)
2660//
2661//    err := req.Send()
2662//    if err == nil { // resp is now filled
2663//        fmt.Println(resp)
2664//    }
2665//
2666// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListTagsForResource
2667func (c *PinpointEmail) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2668	op := &request.Operation{
2669		Name:       opListTagsForResource,
2670		HTTPMethod: "GET",
2671		HTTPPath:   "/v1/email/tags",
2672	}
2673
2674	if input == nil {
2675		input = &ListTagsForResourceInput{}
2676	}
2677
2678	output = &ListTagsForResourceOutput{}
2679	req = c.newRequest(op, input, output)
2680	return
2681}
2682
2683// ListTagsForResource API operation for Amazon Pinpoint Email Service.
2684//
2685// Retrieve a list of the tags (keys and values) that are associated with a
2686// specified resource. A tag is a label that you optionally define and associate
2687// with a resource in Amazon Pinpoint. Each tag consists of a required tag key
2688// and an optional associated tag value. A tag key is a general label that acts
2689// as a category for more specific tag values. A tag value acts as a descriptor
2690// within a tag key.
2691//
2692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2693// with awserr.Error's Code and Message methods to get detailed information about
2694// the error.
2695//
2696// See the AWS API reference guide for Amazon Pinpoint Email Service's
2697// API operation ListTagsForResource for usage and error information.
2698//
2699// Returned Error Types:
2700//   * BadRequestException
2701//   The input you provided is invalid.
2702//
2703//   * NotFoundException
2704//   The resource you attempted to access doesn't exist.
2705//
2706//   * TooManyRequestsException
2707//   Too many requests have been made to the operation.
2708//
2709// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListTagsForResource
2710func (c *PinpointEmail) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2711	req, out := c.ListTagsForResourceRequest(input)
2712	return out, req.Send()
2713}
2714
2715// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2716// the ability to pass a context and additional request options.
2717//
2718// See ListTagsForResource for details on how to use this API operation.
2719//
2720// The context must be non-nil and will be used for request cancellation. If
2721// the context is nil a panic will occur. In the future the SDK may create
2722// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2723// for more information on using Contexts.
2724func (c *PinpointEmail) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2725	req, out := c.ListTagsForResourceRequest(input)
2726	req.SetContext(ctx)
2727	req.ApplyOptions(opts...)
2728	return out, req.Send()
2729}
2730
2731const opPutAccountDedicatedIpWarmupAttributes = "PutAccountDedicatedIpWarmupAttributes"
2732
2733// PutAccountDedicatedIpWarmupAttributesRequest generates a "aws/request.Request" representing the
2734// client's request for the PutAccountDedicatedIpWarmupAttributes operation. The "output" return
2735// value will be populated with the request's response once the request completes
2736// successfully.
2737//
2738// Use "Send" method on the returned Request to send the API call to the service.
2739// the "output" return value is not valid until after Send returns without error.
2740//
2741// See PutAccountDedicatedIpWarmupAttributes for more information on using the PutAccountDedicatedIpWarmupAttributes
2742// API call, and error handling.
2743//
2744// This method is useful when you want to inject custom logic or configuration
2745// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2746//
2747//
2748//    // Example sending a request using the PutAccountDedicatedIpWarmupAttributesRequest method.
2749//    req, resp := client.PutAccountDedicatedIpWarmupAttributesRequest(params)
2750//
2751//    err := req.Send()
2752//    if err == nil { // resp is now filled
2753//        fmt.Println(resp)
2754//    }
2755//
2756// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountDedicatedIpWarmupAttributes
2757func (c *PinpointEmail) PutAccountDedicatedIpWarmupAttributesRequest(input *PutAccountDedicatedIpWarmupAttributesInput) (req *request.Request, output *PutAccountDedicatedIpWarmupAttributesOutput) {
2758	op := &request.Operation{
2759		Name:       opPutAccountDedicatedIpWarmupAttributes,
2760		HTTPMethod: "PUT",
2761		HTTPPath:   "/v1/email/account/dedicated-ips/warmup",
2762	}
2763
2764	if input == nil {
2765		input = &PutAccountDedicatedIpWarmupAttributesInput{}
2766	}
2767
2768	output = &PutAccountDedicatedIpWarmupAttributesOutput{}
2769	req = c.newRequest(op, input, output)
2770	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2771	return
2772}
2773
2774// PutAccountDedicatedIpWarmupAttributes API operation for Amazon Pinpoint Email Service.
2775//
2776// Enable or disable the automatic warm-up feature for dedicated IP addresses.
2777//
2778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2779// with awserr.Error's Code and Message methods to get detailed information about
2780// the error.
2781//
2782// See the AWS API reference guide for Amazon Pinpoint Email Service's
2783// API operation PutAccountDedicatedIpWarmupAttributes for usage and error information.
2784//
2785// Returned Error Types:
2786//   * TooManyRequestsException
2787//   Too many requests have been made to the operation.
2788//
2789//   * BadRequestException
2790//   The input you provided is invalid.
2791//
2792// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountDedicatedIpWarmupAttributes
2793func (c *PinpointEmail) PutAccountDedicatedIpWarmupAttributes(input *PutAccountDedicatedIpWarmupAttributesInput) (*PutAccountDedicatedIpWarmupAttributesOutput, error) {
2794	req, out := c.PutAccountDedicatedIpWarmupAttributesRequest(input)
2795	return out, req.Send()
2796}
2797
2798// PutAccountDedicatedIpWarmupAttributesWithContext is the same as PutAccountDedicatedIpWarmupAttributes with the addition of
2799// the ability to pass a context and additional request options.
2800//
2801// See PutAccountDedicatedIpWarmupAttributes for details on how to use this API operation.
2802//
2803// The context must be non-nil and will be used for request cancellation. If
2804// the context is nil a panic will occur. In the future the SDK may create
2805// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2806// for more information on using Contexts.
2807func (c *PinpointEmail) PutAccountDedicatedIpWarmupAttributesWithContext(ctx aws.Context, input *PutAccountDedicatedIpWarmupAttributesInput, opts ...request.Option) (*PutAccountDedicatedIpWarmupAttributesOutput, error) {
2808	req, out := c.PutAccountDedicatedIpWarmupAttributesRequest(input)
2809	req.SetContext(ctx)
2810	req.ApplyOptions(opts...)
2811	return out, req.Send()
2812}
2813
2814const opPutAccountSendingAttributes = "PutAccountSendingAttributes"
2815
2816// PutAccountSendingAttributesRequest generates a "aws/request.Request" representing the
2817// client's request for the PutAccountSendingAttributes operation. The "output" return
2818// value will be populated with the request's response once the request completes
2819// successfully.
2820//
2821// Use "Send" method on the returned Request to send the API call to the service.
2822// the "output" return value is not valid until after Send returns without error.
2823//
2824// See PutAccountSendingAttributes for more information on using the PutAccountSendingAttributes
2825// API call, and error handling.
2826//
2827// This method is useful when you want to inject custom logic or configuration
2828// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2829//
2830//
2831//    // Example sending a request using the PutAccountSendingAttributesRequest method.
2832//    req, resp := client.PutAccountSendingAttributesRequest(params)
2833//
2834//    err := req.Send()
2835//    if err == nil { // resp is now filled
2836//        fmt.Println(resp)
2837//    }
2838//
2839// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountSendingAttributes
2840func (c *PinpointEmail) PutAccountSendingAttributesRequest(input *PutAccountSendingAttributesInput) (req *request.Request, output *PutAccountSendingAttributesOutput) {
2841	op := &request.Operation{
2842		Name:       opPutAccountSendingAttributes,
2843		HTTPMethod: "PUT",
2844		HTTPPath:   "/v1/email/account/sending",
2845	}
2846
2847	if input == nil {
2848		input = &PutAccountSendingAttributesInput{}
2849	}
2850
2851	output = &PutAccountSendingAttributesOutput{}
2852	req = c.newRequest(op, input, output)
2853	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2854	return
2855}
2856
2857// PutAccountSendingAttributes API operation for Amazon Pinpoint Email Service.
2858//
2859// Enable or disable the ability of your account to send email.
2860//
2861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2862// with awserr.Error's Code and Message methods to get detailed information about
2863// the error.
2864//
2865// See the AWS API reference guide for Amazon Pinpoint Email Service's
2866// API operation PutAccountSendingAttributes for usage and error information.
2867//
2868// Returned Error Types:
2869//   * TooManyRequestsException
2870//   Too many requests have been made to the operation.
2871//
2872//   * BadRequestException
2873//   The input you provided is invalid.
2874//
2875// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountSendingAttributes
2876func (c *PinpointEmail) PutAccountSendingAttributes(input *PutAccountSendingAttributesInput) (*PutAccountSendingAttributesOutput, error) {
2877	req, out := c.PutAccountSendingAttributesRequest(input)
2878	return out, req.Send()
2879}
2880
2881// PutAccountSendingAttributesWithContext is the same as PutAccountSendingAttributes with the addition of
2882// the ability to pass a context and additional request options.
2883//
2884// See PutAccountSendingAttributes for details on how to use this API operation.
2885//
2886// The context must be non-nil and will be used for request cancellation. If
2887// the context is nil a panic will occur. In the future the SDK may create
2888// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2889// for more information on using Contexts.
2890func (c *PinpointEmail) PutAccountSendingAttributesWithContext(ctx aws.Context, input *PutAccountSendingAttributesInput, opts ...request.Option) (*PutAccountSendingAttributesOutput, error) {
2891	req, out := c.PutAccountSendingAttributesRequest(input)
2892	req.SetContext(ctx)
2893	req.ApplyOptions(opts...)
2894	return out, req.Send()
2895}
2896
2897const opPutConfigurationSetDeliveryOptions = "PutConfigurationSetDeliveryOptions"
2898
2899// PutConfigurationSetDeliveryOptionsRequest generates a "aws/request.Request" representing the
2900// client's request for the PutConfigurationSetDeliveryOptions operation. The "output" return
2901// value will be populated with the request's response once the request completes
2902// successfully.
2903//
2904// Use "Send" method on the returned Request to send the API call to the service.
2905// the "output" return value is not valid until after Send returns without error.
2906//
2907// See PutConfigurationSetDeliveryOptions for more information on using the PutConfigurationSetDeliveryOptions
2908// API call, and error handling.
2909//
2910// This method is useful when you want to inject custom logic or configuration
2911// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2912//
2913//
2914//    // Example sending a request using the PutConfigurationSetDeliveryOptionsRequest method.
2915//    req, resp := client.PutConfigurationSetDeliveryOptionsRequest(params)
2916//
2917//    err := req.Send()
2918//    if err == nil { // resp is now filled
2919//        fmt.Println(resp)
2920//    }
2921//
2922// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetDeliveryOptions
2923func (c *PinpointEmail) PutConfigurationSetDeliveryOptionsRequest(input *PutConfigurationSetDeliveryOptionsInput) (req *request.Request, output *PutConfigurationSetDeliveryOptionsOutput) {
2924	op := &request.Operation{
2925		Name:       opPutConfigurationSetDeliveryOptions,
2926		HTTPMethod: "PUT",
2927		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}/delivery-options",
2928	}
2929
2930	if input == nil {
2931		input = &PutConfigurationSetDeliveryOptionsInput{}
2932	}
2933
2934	output = &PutConfigurationSetDeliveryOptionsOutput{}
2935	req = c.newRequest(op, input, output)
2936	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2937	return
2938}
2939
2940// PutConfigurationSetDeliveryOptions API operation for Amazon Pinpoint Email Service.
2941//
2942// Associate a configuration set with a dedicated IP pool. You can use dedicated
2943// IP pools to create groups of dedicated IP addresses for sending specific
2944// types of email.
2945//
2946// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2947// with awserr.Error's Code and Message methods to get detailed information about
2948// the error.
2949//
2950// See the AWS API reference guide for Amazon Pinpoint Email Service's
2951// API operation PutConfigurationSetDeliveryOptions for usage and error information.
2952//
2953// Returned Error Types:
2954//   * NotFoundException
2955//   The resource you attempted to access doesn't exist.
2956//
2957//   * TooManyRequestsException
2958//   Too many requests have been made to the operation.
2959//
2960//   * BadRequestException
2961//   The input you provided is invalid.
2962//
2963// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetDeliveryOptions
2964func (c *PinpointEmail) PutConfigurationSetDeliveryOptions(input *PutConfigurationSetDeliveryOptionsInput) (*PutConfigurationSetDeliveryOptionsOutput, error) {
2965	req, out := c.PutConfigurationSetDeliveryOptionsRequest(input)
2966	return out, req.Send()
2967}
2968
2969// PutConfigurationSetDeliveryOptionsWithContext is the same as PutConfigurationSetDeliveryOptions with the addition of
2970// the ability to pass a context and additional request options.
2971//
2972// See PutConfigurationSetDeliveryOptions for details on how to use this API operation.
2973//
2974// The context must be non-nil and will be used for request cancellation. If
2975// the context is nil a panic will occur. In the future the SDK may create
2976// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2977// for more information on using Contexts.
2978func (c *PinpointEmail) PutConfigurationSetDeliveryOptionsWithContext(ctx aws.Context, input *PutConfigurationSetDeliveryOptionsInput, opts ...request.Option) (*PutConfigurationSetDeliveryOptionsOutput, error) {
2979	req, out := c.PutConfigurationSetDeliveryOptionsRequest(input)
2980	req.SetContext(ctx)
2981	req.ApplyOptions(opts...)
2982	return out, req.Send()
2983}
2984
2985const opPutConfigurationSetReputationOptions = "PutConfigurationSetReputationOptions"
2986
2987// PutConfigurationSetReputationOptionsRequest generates a "aws/request.Request" representing the
2988// client's request for the PutConfigurationSetReputationOptions operation. The "output" return
2989// value will be populated with the request's response once the request completes
2990// successfully.
2991//
2992// Use "Send" method on the returned Request to send the API call to the service.
2993// the "output" return value is not valid until after Send returns without error.
2994//
2995// See PutConfigurationSetReputationOptions for more information on using the PutConfigurationSetReputationOptions
2996// API call, and error handling.
2997//
2998// This method is useful when you want to inject custom logic or configuration
2999// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3000//
3001//
3002//    // Example sending a request using the PutConfigurationSetReputationOptionsRequest method.
3003//    req, resp := client.PutConfigurationSetReputationOptionsRequest(params)
3004//
3005//    err := req.Send()
3006//    if err == nil { // resp is now filled
3007//        fmt.Println(resp)
3008//    }
3009//
3010// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetReputationOptions
3011func (c *PinpointEmail) PutConfigurationSetReputationOptionsRequest(input *PutConfigurationSetReputationOptionsInput) (req *request.Request, output *PutConfigurationSetReputationOptionsOutput) {
3012	op := &request.Operation{
3013		Name:       opPutConfigurationSetReputationOptions,
3014		HTTPMethod: "PUT",
3015		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}/reputation-options",
3016	}
3017
3018	if input == nil {
3019		input = &PutConfigurationSetReputationOptionsInput{}
3020	}
3021
3022	output = &PutConfigurationSetReputationOptionsOutput{}
3023	req = c.newRequest(op, input, output)
3024	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3025	return
3026}
3027
3028// PutConfigurationSetReputationOptions API operation for Amazon Pinpoint Email Service.
3029//
3030// Enable or disable collection of reputation metrics for emails that you send
3031// using a particular configuration set in a specific AWS Region.
3032//
3033// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3034// with awserr.Error's Code and Message methods to get detailed information about
3035// the error.
3036//
3037// See the AWS API reference guide for Amazon Pinpoint Email Service's
3038// API operation PutConfigurationSetReputationOptions for usage and error information.
3039//
3040// Returned Error Types:
3041//   * NotFoundException
3042//   The resource you attempted to access doesn't exist.
3043//
3044//   * TooManyRequestsException
3045//   Too many requests have been made to the operation.
3046//
3047//   * BadRequestException
3048//   The input you provided is invalid.
3049//
3050// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetReputationOptions
3051func (c *PinpointEmail) PutConfigurationSetReputationOptions(input *PutConfigurationSetReputationOptionsInput) (*PutConfigurationSetReputationOptionsOutput, error) {
3052	req, out := c.PutConfigurationSetReputationOptionsRequest(input)
3053	return out, req.Send()
3054}
3055
3056// PutConfigurationSetReputationOptionsWithContext is the same as PutConfigurationSetReputationOptions with the addition of
3057// the ability to pass a context and additional request options.
3058//
3059// See PutConfigurationSetReputationOptions for details on how to use this API operation.
3060//
3061// The context must be non-nil and will be used for request cancellation. If
3062// the context is nil a panic will occur. In the future the SDK may create
3063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3064// for more information on using Contexts.
3065func (c *PinpointEmail) PutConfigurationSetReputationOptionsWithContext(ctx aws.Context, input *PutConfigurationSetReputationOptionsInput, opts ...request.Option) (*PutConfigurationSetReputationOptionsOutput, error) {
3066	req, out := c.PutConfigurationSetReputationOptionsRequest(input)
3067	req.SetContext(ctx)
3068	req.ApplyOptions(opts...)
3069	return out, req.Send()
3070}
3071
3072const opPutConfigurationSetSendingOptions = "PutConfigurationSetSendingOptions"
3073
3074// PutConfigurationSetSendingOptionsRequest generates a "aws/request.Request" representing the
3075// client's request for the PutConfigurationSetSendingOptions operation. The "output" return
3076// value will be populated with the request's response once the request completes
3077// successfully.
3078//
3079// Use "Send" method on the returned Request to send the API call to the service.
3080// the "output" return value is not valid until after Send returns without error.
3081//
3082// See PutConfigurationSetSendingOptions for more information on using the PutConfigurationSetSendingOptions
3083// API call, and error handling.
3084//
3085// This method is useful when you want to inject custom logic or configuration
3086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3087//
3088//
3089//    // Example sending a request using the PutConfigurationSetSendingOptionsRequest method.
3090//    req, resp := client.PutConfigurationSetSendingOptionsRequest(params)
3091//
3092//    err := req.Send()
3093//    if err == nil { // resp is now filled
3094//        fmt.Println(resp)
3095//    }
3096//
3097// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetSendingOptions
3098func (c *PinpointEmail) PutConfigurationSetSendingOptionsRequest(input *PutConfigurationSetSendingOptionsInput) (req *request.Request, output *PutConfigurationSetSendingOptionsOutput) {
3099	op := &request.Operation{
3100		Name:       opPutConfigurationSetSendingOptions,
3101		HTTPMethod: "PUT",
3102		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}/sending",
3103	}
3104
3105	if input == nil {
3106		input = &PutConfigurationSetSendingOptionsInput{}
3107	}
3108
3109	output = &PutConfigurationSetSendingOptionsOutput{}
3110	req = c.newRequest(op, input, output)
3111	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3112	return
3113}
3114
3115// PutConfigurationSetSendingOptions API operation for Amazon Pinpoint Email Service.
3116//
3117// Enable or disable email sending for messages that use a particular configuration
3118// set in a specific AWS Region.
3119//
3120// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3121// with awserr.Error's Code and Message methods to get detailed information about
3122// the error.
3123//
3124// See the AWS API reference guide for Amazon Pinpoint Email Service's
3125// API operation PutConfigurationSetSendingOptions for usage and error information.
3126//
3127// Returned Error Types:
3128//   * NotFoundException
3129//   The resource you attempted to access doesn't exist.
3130//
3131//   * TooManyRequestsException
3132//   Too many requests have been made to the operation.
3133//
3134//   * BadRequestException
3135//   The input you provided is invalid.
3136//
3137// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetSendingOptions
3138func (c *PinpointEmail) PutConfigurationSetSendingOptions(input *PutConfigurationSetSendingOptionsInput) (*PutConfigurationSetSendingOptionsOutput, error) {
3139	req, out := c.PutConfigurationSetSendingOptionsRequest(input)
3140	return out, req.Send()
3141}
3142
3143// PutConfigurationSetSendingOptionsWithContext is the same as PutConfigurationSetSendingOptions with the addition of
3144// the ability to pass a context and additional request options.
3145//
3146// See PutConfigurationSetSendingOptions for details on how to use this API operation.
3147//
3148// The context must be non-nil and will be used for request cancellation. If
3149// the context is nil a panic will occur. In the future the SDK may create
3150// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3151// for more information on using Contexts.
3152func (c *PinpointEmail) PutConfigurationSetSendingOptionsWithContext(ctx aws.Context, input *PutConfigurationSetSendingOptionsInput, opts ...request.Option) (*PutConfigurationSetSendingOptionsOutput, error) {
3153	req, out := c.PutConfigurationSetSendingOptionsRequest(input)
3154	req.SetContext(ctx)
3155	req.ApplyOptions(opts...)
3156	return out, req.Send()
3157}
3158
3159const opPutConfigurationSetTrackingOptions = "PutConfigurationSetTrackingOptions"
3160
3161// PutConfigurationSetTrackingOptionsRequest generates a "aws/request.Request" representing the
3162// client's request for the PutConfigurationSetTrackingOptions operation. The "output" return
3163// value will be populated with the request's response once the request completes
3164// successfully.
3165//
3166// Use "Send" method on the returned Request to send the API call to the service.
3167// the "output" return value is not valid until after Send returns without error.
3168//
3169// See PutConfigurationSetTrackingOptions for more information on using the PutConfigurationSetTrackingOptions
3170// API call, and error handling.
3171//
3172// This method is useful when you want to inject custom logic or configuration
3173// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3174//
3175//
3176//    // Example sending a request using the PutConfigurationSetTrackingOptionsRequest method.
3177//    req, resp := client.PutConfigurationSetTrackingOptionsRequest(params)
3178//
3179//    err := req.Send()
3180//    if err == nil { // resp is now filled
3181//        fmt.Println(resp)
3182//    }
3183//
3184// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetTrackingOptions
3185func (c *PinpointEmail) PutConfigurationSetTrackingOptionsRequest(input *PutConfigurationSetTrackingOptionsInput) (req *request.Request, output *PutConfigurationSetTrackingOptionsOutput) {
3186	op := &request.Operation{
3187		Name:       opPutConfigurationSetTrackingOptions,
3188		HTTPMethod: "PUT",
3189		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}/tracking-options",
3190	}
3191
3192	if input == nil {
3193		input = &PutConfigurationSetTrackingOptionsInput{}
3194	}
3195
3196	output = &PutConfigurationSetTrackingOptionsOutput{}
3197	req = c.newRequest(op, input, output)
3198	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3199	return
3200}
3201
3202// PutConfigurationSetTrackingOptions API operation for Amazon Pinpoint Email Service.
3203//
3204// Specify a custom domain to use for open and click tracking elements in email
3205// that you send using Amazon Pinpoint.
3206//
3207// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3208// with awserr.Error's Code and Message methods to get detailed information about
3209// the error.
3210//
3211// See the AWS API reference guide for Amazon Pinpoint Email Service's
3212// API operation PutConfigurationSetTrackingOptions for usage and error information.
3213//
3214// Returned Error Types:
3215//   * NotFoundException
3216//   The resource you attempted to access doesn't exist.
3217//
3218//   * TooManyRequestsException
3219//   Too many requests have been made to the operation.
3220//
3221//   * BadRequestException
3222//   The input you provided is invalid.
3223//
3224// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetTrackingOptions
3225func (c *PinpointEmail) PutConfigurationSetTrackingOptions(input *PutConfigurationSetTrackingOptionsInput) (*PutConfigurationSetTrackingOptionsOutput, error) {
3226	req, out := c.PutConfigurationSetTrackingOptionsRequest(input)
3227	return out, req.Send()
3228}
3229
3230// PutConfigurationSetTrackingOptionsWithContext is the same as PutConfigurationSetTrackingOptions with the addition of
3231// the ability to pass a context and additional request options.
3232//
3233// See PutConfigurationSetTrackingOptions for details on how to use this API operation.
3234//
3235// The context must be non-nil and will be used for request cancellation. If
3236// the context is nil a panic will occur. In the future the SDK may create
3237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3238// for more information on using Contexts.
3239func (c *PinpointEmail) PutConfigurationSetTrackingOptionsWithContext(ctx aws.Context, input *PutConfigurationSetTrackingOptionsInput, opts ...request.Option) (*PutConfigurationSetTrackingOptionsOutput, error) {
3240	req, out := c.PutConfigurationSetTrackingOptionsRequest(input)
3241	req.SetContext(ctx)
3242	req.ApplyOptions(opts...)
3243	return out, req.Send()
3244}
3245
3246const opPutDedicatedIpInPool = "PutDedicatedIpInPool"
3247
3248// PutDedicatedIpInPoolRequest generates a "aws/request.Request" representing the
3249// client's request for the PutDedicatedIpInPool operation. The "output" return
3250// value will be populated with the request's response once the request completes
3251// successfully.
3252//
3253// Use "Send" method on the returned Request to send the API call to the service.
3254// the "output" return value is not valid until after Send returns without error.
3255//
3256// See PutDedicatedIpInPool for more information on using the PutDedicatedIpInPool
3257// API call, and error handling.
3258//
3259// This method is useful when you want to inject custom logic or configuration
3260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3261//
3262//
3263//    // Example sending a request using the PutDedicatedIpInPoolRequest method.
3264//    req, resp := client.PutDedicatedIpInPoolRequest(params)
3265//
3266//    err := req.Send()
3267//    if err == nil { // resp is now filled
3268//        fmt.Println(resp)
3269//    }
3270//
3271// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpInPool
3272func (c *PinpointEmail) PutDedicatedIpInPoolRequest(input *PutDedicatedIpInPoolInput) (req *request.Request, output *PutDedicatedIpInPoolOutput) {
3273	op := &request.Operation{
3274		Name:       opPutDedicatedIpInPool,
3275		HTTPMethod: "PUT",
3276		HTTPPath:   "/v1/email/dedicated-ips/{IP}/pool",
3277	}
3278
3279	if input == nil {
3280		input = &PutDedicatedIpInPoolInput{}
3281	}
3282
3283	output = &PutDedicatedIpInPoolOutput{}
3284	req = c.newRequest(op, input, output)
3285	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3286	return
3287}
3288
3289// PutDedicatedIpInPool API operation for Amazon Pinpoint Email Service.
3290//
3291// Move a dedicated IP address to an existing dedicated IP pool.
3292//
3293// The dedicated IP address that you specify must already exist, and must be
3294// associated with your Amazon Pinpoint account.
3295//
3296// The dedicated IP pool you specify must already exist. You can create a new
3297// pool by using the CreateDedicatedIpPool operation.
3298//
3299// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3300// with awserr.Error's Code and Message methods to get detailed information about
3301// the error.
3302//
3303// See the AWS API reference guide for Amazon Pinpoint Email Service's
3304// API operation PutDedicatedIpInPool for usage and error information.
3305//
3306// Returned Error Types:
3307//   * NotFoundException
3308//   The resource you attempted to access doesn't exist.
3309//
3310//   * TooManyRequestsException
3311//   Too many requests have been made to the operation.
3312//
3313//   * BadRequestException
3314//   The input you provided is invalid.
3315//
3316// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpInPool
3317func (c *PinpointEmail) PutDedicatedIpInPool(input *PutDedicatedIpInPoolInput) (*PutDedicatedIpInPoolOutput, error) {
3318	req, out := c.PutDedicatedIpInPoolRequest(input)
3319	return out, req.Send()
3320}
3321
3322// PutDedicatedIpInPoolWithContext is the same as PutDedicatedIpInPool with the addition of
3323// the ability to pass a context and additional request options.
3324//
3325// See PutDedicatedIpInPool for details on how to use this API operation.
3326//
3327// The context must be non-nil and will be used for request cancellation. If
3328// the context is nil a panic will occur. In the future the SDK may create
3329// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3330// for more information on using Contexts.
3331func (c *PinpointEmail) PutDedicatedIpInPoolWithContext(ctx aws.Context, input *PutDedicatedIpInPoolInput, opts ...request.Option) (*PutDedicatedIpInPoolOutput, error) {
3332	req, out := c.PutDedicatedIpInPoolRequest(input)
3333	req.SetContext(ctx)
3334	req.ApplyOptions(opts...)
3335	return out, req.Send()
3336}
3337
3338const opPutDedicatedIpWarmupAttributes = "PutDedicatedIpWarmupAttributes"
3339
3340// PutDedicatedIpWarmupAttributesRequest generates a "aws/request.Request" representing the
3341// client's request for the PutDedicatedIpWarmupAttributes operation. The "output" return
3342// value will be populated with the request's response once the request completes
3343// successfully.
3344//
3345// Use "Send" method on the returned Request to send the API call to the service.
3346// the "output" return value is not valid until after Send returns without error.
3347//
3348// See PutDedicatedIpWarmupAttributes for more information on using the PutDedicatedIpWarmupAttributes
3349// API call, and error handling.
3350//
3351// This method is useful when you want to inject custom logic or configuration
3352// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3353//
3354//
3355//    // Example sending a request using the PutDedicatedIpWarmupAttributesRequest method.
3356//    req, resp := client.PutDedicatedIpWarmupAttributesRequest(params)
3357//
3358//    err := req.Send()
3359//    if err == nil { // resp is now filled
3360//        fmt.Println(resp)
3361//    }
3362//
3363// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpWarmupAttributes
3364func (c *PinpointEmail) PutDedicatedIpWarmupAttributesRequest(input *PutDedicatedIpWarmupAttributesInput) (req *request.Request, output *PutDedicatedIpWarmupAttributesOutput) {
3365	op := &request.Operation{
3366		Name:       opPutDedicatedIpWarmupAttributes,
3367		HTTPMethod: "PUT",
3368		HTTPPath:   "/v1/email/dedicated-ips/{IP}/warmup",
3369	}
3370
3371	if input == nil {
3372		input = &PutDedicatedIpWarmupAttributesInput{}
3373	}
3374
3375	output = &PutDedicatedIpWarmupAttributesOutput{}
3376	req = c.newRequest(op, input, output)
3377	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3378	return
3379}
3380
3381// PutDedicatedIpWarmupAttributes API operation for Amazon Pinpoint Email Service.
3382//
3383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3384// with awserr.Error's Code and Message methods to get detailed information about
3385// the error.
3386//
3387// See the AWS API reference guide for Amazon Pinpoint Email Service's
3388// API operation PutDedicatedIpWarmupAttributes for usage and error information.
3389//
3390// Returned Error Types:
3391//   * NotFoundException
3392//   The resource you attempted to access doesn't exist.
3393//
3394//   * TooManyRequestsException
3395//   Too many requests have been made to the operation.
3396//
3397//   * BadRequestException
3398//   The input you provided is invalid.
3399//
3400// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpWarmupAttributes
3401func (c *PinpointEmail) PutDedicatedIpWarmupAttributes(input *PutDedicatedIpWarmupAttributesInput) (*PutDedicatedIpWarmupAttributesOutput, error) {
3402	req, out := c.PutDedicatedIpWarmupAttributesRequest(input)
3403	return out, req.Send()
3404}
3405
3406// PutDedicatedIpWarmupAttributesWithContext is the same as PutDedicatedIpWarmupAttributes with the addition of
3407// the ability to pass a context and additional request options.
3408//
3409// See PutDedicatedIpWarmupAttributes for details on how to use this API operation.
3410//
3411// The context must be non-nil and will be used for request cancellation. If
3412// the context is nil a panic will occur. In the future the SDK may create
3413// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3414// for more information on using Contexts.
3415func (c *PinpointEmail) PutDedicatedIpWarmupAttributesWithContext(ctx aws.Context, input *PutDedicatedIpWarmupAttributesInput, opts ...request.Option) (*PutDedicatedIpWarmupAttributesOutput, error) {
3416	req, out := c.PutDedicatedIpWarmupAttributesRequest(input)
3417	req.SetContext(ctx)
3418	req.ApplyOptions(opts...)
3419	return out, req.Send()
3420}
3421
3422const opPutDeliverabilityDashboardOption = "PutDeliverabilityDashboardOption"
3423
3424// PutDeliverabilityDashboardOptionRequest generates a "aws/request.Request" representing the
3425// client's request for the PutDeliverabilityDashboardOption operation. The "output" return
3426// value will be populated with the request's response once the request completes
3427// successfully.
3428//
3429// Use "Send" method on the returned Request to send the API call to the service.
3430// the "output" return value is not valid until after Send returns without error.
3431//
3432// See PutDeliverabilityDashboardOption for more information on using the PutDeliverabilityDashboardOption
3433// API call, and error handling.
3434//
3435// This method is useful when you want to inject custom logic or configuration
3436// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3437//
3438//
3439//    // Example sending a request using the PutDeliverabilityDashboardOptionRequest method.
3440//    req, resp := client.PutDeliverabilityDashboardOptionRequest(params)
3441//
3442//    err := req.Send()
3443//    if err == nil { // resp is now filled
3444//        fmt.Println(resp)
3445//    }
3446//
3447// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDeliverabilityDashboardOption
3448func (c *PinpointEmail) PutDeliverabilityDashboardOptionRequest(input *PutDeliverabilityDashboardOptionInput) (req *request.Request, output *PutDeliverabilityDashboardOptionOutput) {
3449	op := &request.Operation{
3450		Name:       opPutDeliverabilityDashboardOption,
3451		HTTPMethod: "PUT",
3452		HTTPPath:   "/v1/email/deliverability-dashboard",
3453	}
3454
3455	if input == nil {
3456		input = &PutDeliverabilityDashboardOptionInput{}
3457	}
3458
3459	output = &PutDeliverabilityDashboardOptionOutput{}
3460	req = c.newRequest(op, input, output)
3461	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3462	return
3463}
3464
3465// PutDeliverabilityDashboardOption API operation for Amazon Pinpoint Email Service.
3466//
3467// Enable or disable the Deliverability dashboard for your Amazon Pinpoint account.
3468// When you enable the Deliverability dashboard, you gain access to reputation,
3469// deliverability, and other metrics for the domains that you use to send email
3470// using Amazon Pinpoint. You also gain the ability to perform predictive inbox
3471// placement tests.
3472//
3473// When you use the Deliverability dashboard, you pay a monthly subscription
3474// charge, in addition to any other fees that you accrue by using Amazon Pinpoint.
3475// For more information about the features and cost of a Deliverability dashboard
3476// subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
3477//
3478// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3479// with awserr.Error's Code and Message methods to get detailed information about
3480// the error.
3481//
3482// See the AWS API reference guide for Amazon Pinpoint Email Service's
3483// API operation PutDeliverabilityDashboardOption for usage and error information.
3484//
3485// Returned Error Types:
3486//   * AlreadyExistsException
3487//   The resource specified in your request already exists.
3488//
3489//   * NotFoundException
3490//   The resource you attempted to access doesn't exist.
3491//
3492//   * TooManyRequestsException
3493//   Too many requests have been made to the operation.
3494//
3495//   * LimitExceededException
3496//   There are too many instances of the specified resource type.
3497//
3498//   * BadRequestException
3499//   The input you provided is invalid.
3500//
3501// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDeliverabilityDashboardOption
3502func (c *PinpointEmail) PutDeliverabilityDashboardOption(input *PutDeliverabilityDashboardOptionInput) (*PutDeliverabilityDashboardOptionOutput, error) {
3503	req, out := c.PutDeliverabilityDashboardOptionRequest(input)
3504	return out, req.Send()
3505}
3506
3507// PutDeliverabilityDashboardOptionWithContext is the same as PutDeliverabilityDashboardOption with the addition of
3508// the ability to pass a context and additional request options.
3509//
3510// See PutDeliverabilityDashboardOption for details on how to use this API operation.
3511//
3512// The context must be non-nil and will be used for request cancellation. If
3513// the context is nil a panic will occur. In the future the SDK may create
3514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3515// for more information on using Contexts.
3516func (c *PinpointEmail) PutDeliverabilityDashboardOptionWithContext(ctx aws.Context, input *PutDeliverabilityDashboardOptionInput, opts ...request.Option) (*PutDeliverabilityDashboardOptionOutput, error) {
3517	req, out := c.PutDeliverabilityDashboardOptionRequest(input)
3518	req.SetContext(ctx)
3519	req.ApplyOptions(opts...)
3520	return out, req.Send()
3521}
3522
3523const opPutEmailIdentityDkimAttributes = "PutEmailIdentityDkimAttributes"
3524
3525// PutEmailIdentityDkimAttributesRequest generates a "aws/request.Request" representing the
3526// client's request for the PutEmailIdentityDkimAttributes operation. The "output" return
3527// value will be populated with the request's response once the request completes
3528// successfully.
3529//
3530// Use "Send" method on the returned Request to send the API call to the service.
3531// the "output" return value is not valid until after Send returns without error.
3532//
3533// See PutEmailIdentityDkimAttributes for more information on using the PutEmailIdentityDkimAttributes
3534// API call, and error handling.
3535//
3536// This method is useful when you want to inject custom logic or configuration
3537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3538//
3539//
3540//    // Example sending a request using the PutEmailIdentityDkimAttributesRequest method.
3541//    req, resp := client.PutEmailIdentityDkimAttributesRequest(params)
3542//
3543//    err := req.Send()
3544//    if err == nil { // resp is now filled
3545//        fmt.Println(resp)
3546//    }
3547//
3548// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityDkimAttributes
3549func (c *PinpointEmail) PutEmailIdentityDkimAttributesRequest(input *PutEmailIdentityDkimAttributesInput) (req *request.Request, output *PutEmailIdentityDkimAttributesOutput) {
3550	op := &request.Operation{
3551		Name:       opPutEmailIdentityDkimAttributes,
3552		HTTPMethod: "PUT",
3553		HTTPPath:   "/v1/email/identities/{EmailIdentity}/dkim",
3554	}
3555
3556	if input == nil {
3557		input = &PutEmailIdentityDkimAttributesInput{}
3558	}
3559
3560	output = &PutEmailIdentityDkimAttributesOutput{}
3561	req = c.newRequest(op, input, output)
3562	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3563	return
3564}
3565
3566// PutEmailIdentityDkimAttributes API operation for Amazon Pinpoint Email Service.
3567//
3568// Used to enable or disable DKIM authentication for an email identity.
3569//
3570// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3571// with awserr.Error's Code and Message methods to get detailed information about
3572// the error.
3573//
3574// See the AWS API reference guide for Amazon Pinpoint Email Service's
3575// API operation PutEmailIdentityDkimAttributes for usage and error information.
3576//
3577// Returned Error Types:
3578//   * NotFoundException
3579//   The resource you attempted to access doesn't exist.
3580//
3581//   * TooManyRequestsException
3582//   Too many requests have been made to the operation.
3583//
3584//   * BadRequestException
3585//   The input you provided is invalid.
3586//
3587// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityDkimAttributes
3588func (c *PinpointEmail) PutEmailIdentityDkimAttributes(input *PutEmailIdentityDkimAttributesInput) (*PutEmailIdentityDkimAttributesOutput, error) {
3589	req, out := c.PutEmailIdentityDkimAttributesRequest(input)
3590	return out, req.Send()
3591}
3592
3593// PutEmailIdentityDkimAttributesWithContext is the same as PutEmailIdentityDkimAttributes with the addition of
3594// the ability to pass a context and additional request options.
3595//
3596// See PutEmailIdentityDkimAttributes for details on how to use this API operation.
3597//
3598// The context must be non-nil and will be used for request cancellation. If
3599// the context is nil a panic will occur. In the future the SDK may create
3600// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3601// for more information on using Contexts.
3602func (c *PinpointEmail) PutEmailIdentityDkimAttributesWithContext(ctx aws.Context, input *PutEmailIdentityDkimAttributesInput, opts ...request.Option) (*PutEmailIdentityDkimAttributesOutput, error) {
3603	req, out := c.PutEmailIdentityDkimAttributesRequest(input)
3604	req.SetContext(ctx)
3605	req.ApplyOptions(opts...)
3606	return out, req.Send()
3607}
3608
3609const opPutEmailIdentityFeedbackAttributes = "PutEmailIdentityFeedbackAttributes"
3610
3611// PutEmailIdentityFeedbackAttributesRequest generates a "aws/request.Request" representing the
3612// client's request for the PutEmailIdentityFeedbackAttributes operation. The "output" return
3613// value will be populated with the request's response once the request completes
3614// successfully.
3615//
3616// Use "Send" method on the returned Request to send the API call to the service.
3617// the "output" return value is not valid until after Send returns without error.
3618//
3619// See PutEmailIdentityFeedbackAttributes for more information on using the PutEmailIdentityFeedbackAttributes
3620// API call, and error handling.
3621//
3622// This method is useful when you want to inject custom logic or configuration
3623// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3624//
3625//
3626//    // Example sending a request using the PutEmailIdentityFeedbackAttributesRequest method.
3627//    req, resp := client.PutEmailIdentityFeedbackAttributesRequest(params)
3628//
3629//    err := req.Send()
3630//    if err == nil { // resp is now filled
3631//        fmt.Println(resp)
3632//    }
3633//
3634// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityFeedbackAttributes
3635func (c *PinpointEmail) PutEmailIdentityFeedbackAttributesRequest(input *PutEmailIdentityFeedbackAttributesInput) (req *request.Request, output *PutEmailIdentityFeedbackAttributesOutput) {
3636	op := &request.Operation{
3637		Name:       opPutEmailIdentityFeedbackAttributes,
3638		HTTPMethod: "PUT",
3639		HTTPPath:   "/v1/email/identities/{EmailIdentity}/feedback",
3640	}
3641
3642	if input == nil {
3643		input = &PutEmailIdentityFeedbackAttributesInput{}
3644	}
3645
3646	output = &PutEmailIdentityFeedbackAttributesOutput{}
3647	req = c.newRequest(op, input, output)
3648	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3649	return
3650}
3651
3652// PutEmailIdentityFeedbackAttributes API operation for Amazon Pinpoint Email Service.
3653//
3654// Used to enable or disable feedback forwarding for an identity. This setting
3655// determines what happens when an identity is used to send an email that results
3656// in a bounce or complaint event.
3657//
3658// When you enable feedback forwarding, Amazon Pinpoint sends you email notifications
3659// when bounce or complaint events occur. Amazon Pinpoint sends this notification
3660// to the address that you specified in the Return-Path header of the original
3661// email.
3662//
3663// When you disable feedback forwarding, Amazon Pinpoint sends notifications
3664// through other mechanisms, such as by notifying an Amazon SNS topic. You're
3665// required to have a method of tracking bounces and complaints. If you haven't
3666// set up another mechanism for receiving bounce or complaint notifications,
3667// Amazon Pinpoint sends an email notification when these events occur (even
3668// if this setting is disabled).
3669//
3670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3671// with awserr.Error's Code and Message methods to get detailed information about
3672// the error.
3673//
3674// See the AWS API reference guide for Amazon Pinpoint Email Service's
3675// API operation PutEmailIdentityFeedbackAttributes for usage and error information.
3676//
3677// Returned Error Types:
3678//   * NotFoundException
3679//   The resource you attempted to access doesn't exist.
3680//
3681//   * TooManyRequestsException
3682//   Too many requests have been made to the operation.
3683//
3684//   * BadRequestException
3685//   The input you provided is invalid.
3686//
3687// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityFeedbackAttributes
3688func (c *PinpointEmail) PutEmailIdentityFeedbackAttributes(input *PutEmailIdentityFeedbackAttributesInput) (*PutEmailIdentityFeedbackAttributesOutput, error) {
3689	req, out := c.PutEmailIdentityFeedbackAttributesRequest(input)
3690	return out, req.Send()
3691}
3692
3693// PutEmailIdentityFeedbackAttributesWithContext is the same as PutEmailIdentityFeedbackAttributes with the addition of
3694// the ability to pass a context and additional request options.
3695//
3696// See PutEmailIdentityFeedbackAttributes for details on how to use this API operation.
3697//
3698// The context must be non-nil and will be used for request cancellation. If
3699// the context is nil a panic will occur. In the future the SDK may create
3700// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3701// for more information on using Contexts.
3702func (c *PinpointEmail) PutEmailIdentityFeedbackAttributesWithContext(ctx aws.Context, input *PutEmailIdentityFeedbackAttributesInput, opts ...request.Option) (*PutEmailIdentityFeedbackAttributesOutput, error) {
3703	req, out := c.PutEmailIdentityFeedbackAttributesRequest(input)
3704	req.SetContext(ctx)
3705	req.ApplyOptions(opts...)
3706	return out, req.Send()
3707}
3708
3709const opPutEmailIdentityMailFromAttributes = "PutEmailIdentityMailFromAttributes"
3710
3711// PutEmailIdentityMailFromAttributesRequest generates a "aws/request.Request" representing the
3712// client's request for the PutEmailIdentityMailFromAttributes operation. The "output" return
3713// value will be populated with the request's response once the request completes
3714// successfully.
3715//
3716// Use "Send" method on the returned Request to send the API call to the service.
3717// the "output" return value is not valid until after Send returns without error.
3718//
3719// See PutEmailIdentityMailFromAttributes for more information on using the PutEmailIdentityMailFromAttributes
3720// API call, and error handling.
3721//
3722// This method is useful when you want to inject custom logic or configuration
3723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3724//
3725//
3726//    // Example sending a request using the PutEmailIdentityMailFromAttributesRequest method.
3727//    req, resp := client.PutEmailIdentityMailFromAttributesRequest(params)
3728//
3729//    err := req.Send()
3730//    if err == nil { // resp is now filled
3731//        fmt.Println(resp)
3732//    }
3733//
3734// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityMailFromAttributes
3735func (c *PinpointEmail) PutEmailIdentityMailFromAttributesRequest(input *PutEmailIdentityMailFromAttributesInput) (req *request.Request, output *PutEmailIdentityMailFromAttributesOutput) {
3736	op := &request.Operation{
3737		Name:       opPutEmailIdentityMailFromAttributes,
3738		HTTPMethod: "PUT",
3739		HTTPPath:   "/v1/email/identities/{EmailIdentity}/mail-from",
3740	}
3741
3742	if input == nil {
3743		input = &PutEmailIdentityMailFromAttributesInput{}
3744	}
3745
3746	output = &PutEmailIdentityMailFromAttributesOutput{}
3747	req = c.newRequest(op, input, output)
3748	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3749	return
3750}
3751
3752// PutEmailIdentityMailFromAttributes API operation for Amazon Pinpoint Email Service.
3753//
3754// Used to enable or disable the custom Mail-From domain configuration for an
3755// email identity.
3756//
3757// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3758// with awserr.Error's Code and Message methods to get detailed information about
3759// the error.
3760//
3761// See the AWS API reference guide for Amazon Pinpoint Email Service's
3762// API operation PutEmailIdentityMailFromAttributes for usage and error information.
3763//
3764// Returned Error Types:
3765//   * NotFoundException
3766//   The resource you attempted to access doesn't exist.
3767//
3768//   * TooManyRequestsException
3769//   Too many requests have been made to the operation.
3770//
3771//   * BadRequestException
3772//   The input you provided is invalid.
3773//
3774// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityMailFromAttributes
3775func (c *PinpointEmail) PutEmailIdentityMailFromAttributes(input *PutEmailIdentityMailFromAttributesInput) (*PutEmailIdentityMailFromAttributesOutput, error) {
3776	req, out := c.PutEmailIdentityMailFromAttributesRequest(input)
3777	return out, req.Send()
3778}
3779
3780// PutEmailIdentityMailFromAttributesWithContext is the same as PutEmailIdentityMailFromAttributes with the addition of
3781// the ability to pass a context and additional request options.
3782//
3783// See PutEmailIdentityMailFromAttributes for details on how to use this API operation.
3784//
3785// The context must be non-nil and will be used for request cancellation. If
3786// the context is nil a panic will occur. In the future the SDK may create
3787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3788// for more information on using Contexts.
3789func (c *PinpointEmail) PutEmailIdentityMailFromAttributesWithContext(ctx aws.Context, input *PutEmailIdentityMailFromAttributesInput, opts ...request.Option) (*PutEmailIdentityMailFromAttributesOutput, error) {
3790	req, out := c.PutEmailIdentityMailFromAttributesRequest(input)
3791	req.SetContext(ctx)
3792	req.ApplyOptions(opts...)
3793	return out, req.Send()
3794}
3795
3796const opSendEmail = "SendEmail"
3797
3798// SendEmailRequest generates a "aws/request.Request" representing the
3799// client's request for the SendEmail operation. The "output" return
3800// value will be populated with the request's response once the request completes
3801// successfully.
3802//
3803// Use "Send" method on the returned Request to send the API call to the service.
3804// the "output" return value is not valid until after Send returns without error.
3805//
3806// See SendEmail for more information on using the SendEmail
3807// API call, and error handling.
3808//
3809// This method is useful when you want to inject custom logic or configuration
3810// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3811//
3812//
3813//    // Example sending a request using the SendEmailRequest method.
3814//    req, resp := client.SendEmailRequest(params)
3815//
3816//    err := req.Send()
3817//    if err == nil { // resp is now filled
3818//        fmt.Println(resp)
3819//    }
3820//
3821// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/SendEmail
3822func (c *PinpointEmail) SendEmailRequest(input *SendEmailInput) (req *request.Request, output *SendEmailOutput) {
3823	op := &request.Operation{
3824		Name:       opSendEmail,
3825		HTTPMethod: "POST",
3826		HTTPPath:   "/v1/email/outbound-emails",
3827	}
3828
3829	if input == nil {
3830		input = &SendEmailInput{}
3831	}
3832
3833	output = &SendEmailOutput{}
3834	req = c.newRequest(op, input, output)
3835	return
3836}
3837
3838// SendEmail API operation for Amazon Pinpoint Email Service.
3839//
3840// Sends an email message. You can use the Amazon Pinpoint Email API to send
3841// two types of messages:
3842//
3843//    * Simple – A standard email message. When you create this type of message,
3844//    you specify the sender, the recipient, and the message body, and Amazon
3845//    Pinpoint assembles the message for you.
3846//
3847//    * Raw – A raw, MIME-formatted email message. When you send this type
3848//    of email, you have to specify all of the message headers, as well as the
3849//    message body. You can use this message type to send messages that contain
3850//    attachments. The message that you specify has to be a valid MIME message.
3851//
3852// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3853// with awserr.Error's Code and Message methods to get detailed information about
3854// the error.
3855//
3856// See the AWS API reference guide for Amazon Pinpoint Email Service's
3857// API operation SendEmail for usage and error information.
3858//
3859// Returned Error Types:
3860//   * TooManyRequestsException
3861//   Too many requests have been made to the operation.
3862//
3863//   * LimitExceededException
3864//   There are too many instances of the specified resource type.
3865//
3866//   * AccountSuspendedException
3867//   The message can't be sent because the account's ability to send email has
3868//   been permanently restricted.
3869//
3870//   * SendingPausedException
3871//   The message can't be sent because the account's ability to send email is
3872//   currently paused.
3873//
3874//   * MessageRejected
3875//   The message can't be sent because it contains invalid content.
3876//
3877//   * MailFromDomainNotVerifiedException
3878//   The message can't be sent because the sending domain isn't verified.
3879//
3880//   * NotFoundException
3881//   The resource you attempted to access doesn't exist.
3882//
3883//   * BadRequestException
3884//   The input you provided is invalid.
3885//
3886// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/SendEmail
3887func (c *PinpointEmail) SendEmail(input *SendEmailInput) (*SendEmailOutput, error) {
3888	req, out := c.SendEmailRequest(input)
3889	return out, req.Send()
3890}
3891
3892// SendEmailWithContext is the same as SendEmail with the addition of
3893// the ability to pass a context and additional request options.
3894//
3895// See SendEmail for details on how to use this API operation.
3896//
3897// The context must be non-nil and will be used for request cancellation. If
3898// the context is nil a panic will occur. In the future the SDK may create
3899// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3900// for more information on using Contexts.
3901func (c *PinpointEmail) SendEmailWithContext(ctx aws.Context, input *SendEmailInput, opts ...request.Option) (*SendEmailOutput, error) {
3902	req, out := c.SendEmailRequest(input)
3903	req.SetContext(ctx)
3904	req.ApplyOptions(opts...)
3905	return out, req.Send()
3906}
3907
3908const opTagResource = "TagResource"
3909
3910// TagResourceRequest generates a "aws/request.Request" representing the
3911// client's request for the TagResource operation. The "output" return
3912// value will be populated with the request's response once the request completes
3913// successfully.
3914//
3915// Use "Send" method on the returned Request to send the API call to the service.
3916// the "output" return value is not valid until after Send returns without error.
3917//
3918// See TagResource for more information on using the TagResource
3919// API call, and error handling.
3920//
3921// This method is useful when you want to inject custom logic or configuration
3922// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3923//
3924//
3925//    // Example sending a request using the TagResourceRequest method.
3926//    req, resp := client.TagResourceRequest(params)
3927//
3928//    err := req.Send()
3929//    if err == nil { // resp is now filled
3930//        fmt.Println(resp)
3931//    }
3932//
3933// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/TagResource
3934func (c *PinpointEmail) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
3935	op := &request.Operation{
3936		Name:       opTagResource,
3937		HTTPMethod: "POST",
3938		HTTPPath:   "/v1/email/tags",
3939	}
3940
3941	if input == nil {
3942		input = &TagResourceInput{}
3943	}
3944
3945	output = &TagResourceOutput{}
3946	req = c.newRequest(op, input, output)
3947	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3948	return
3949}
3950
3951// TagResource API operation for Amazon Pinpoint Email Service.
3952//
3953// Add one or more tags (keys and values) to a specified resource. A tag is
3954// a label that you optionally define and associate with a resource in Amazon
3955// Pinpoint. Tags can help you categorize and manage resources in different
3956// ways, such as by purpose, owner, environment, or other criteria. A resource
3957// can have as many as 50 tags.
3958//
3959// Each tag consists of a required tag key and an associated tag value, both
3960// of which you define. A tag key is a general label that acts as a category
3961// for more specific tag values. A tag value acts as a descriptor within a tag
3962// key.
3963//
3964// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3965// with awserr.Error's Code and Message methods to get detailed information about
3966// the error.
3967//
3968// See the AWS API reference guide for Amazon Pinpoint Email Service's
3969// API operation TagResource for usage and error information.
3970//
3971// Returned Error Types:
3972//   * BadRequestException
3973//   The input you provided is invalid.
3974//
3975//   * ConcurrentModificationException
3976//   The resource is being modified by another operation or thread.
3977//
3978//   * NotFoundException
3979//   The resource you attempted to access doesn't exist.
3980//
3981//   * TooManyRequestsException
3982//   Too many requests have been made to the operation.
3983//
3984// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/TagResource
3985func (c *PinpointEmail) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3986	req, out := c.TagResourceRequest(input)
3987	return out, req.Send()
3988}
3989
3990// TagResourceWithContext is the same as TagResource with the addition of
3991// the ability to pass a context and additional request options.
3992//
3993// See TagResource for details on how to use this API operation.
3994//
3995// The context must be non-nil and will be used for request cancellation. If
3996// the context is nil a panic will occur. In the future the SDK may create
3997// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3998// for more information on using Contexts.
3999func (c *PinpointEmail) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4000	req, out := c.TagResourceRequest(input)
4001	req.SetContext(ctx)
4002	req.ApplyOptions(opts...)
4003	return out, req.Send()
4004}
4005
4006const opUntagResource = "UntagResource"
4007
4008// UntagResourceRequest generates a "aws/request.Request" representing the
4009// client's request for the UntagResource operation. The "output" return
4010// value will be populated with the request's response once the request completes
4011// successfully.
4012//
4013// Use "Send" method on the returned Request to send the API call to the service.
4014// the "output" return value is not valid until after Send returns without error.
4015//
4016// See UntagResource for more information on using the UntagResource
4017// API call, and error handling.
4018//
4019// This method is useful when you want to inject custom logic or configuration
4020// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4021//
4022//
4023//    // Example sending a request using the UntagResourceRequest method.
4024//    req, resp := client.UntagResourceRequest(params)
4025//
4026//    err := req.Send()
4027//    if err == nil { // resp is now filled
4028//        fmt.Println(resp)
4029//    }
4030//
4031// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UntagResource
4032func (c *PinpointEmail) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4033	op := &request.Operation{
4034		Name:       opUntagResource,
4035		HTTPMethod: "DELETE",
4036		HTTPPath:   "/v1/email/tags",
4037	}
4038
4039	if input == nil {
4040		input = &UntagResourceInput{}
4041	}
4042
4043	output = &UntagResourceOutput{}
4044	req = c.newRequest(op, input, output)
4045	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4046	return
4047}
4048
4049// UntagResource API operation for Amazon Pinpoint Email Service.
4050//
4051// Remove one or more tags (keys and values) from a specified resource.
4052//
4053// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4054// with awserr.Error's Code and Message methods to get detailed information about
4055// the error.
4056//
4057// See the AWS API reference guide for Amazon Pinpoint Email Service's
4058// API operation UntagResource for usage and error information.
4059//
4060// Returned Error Types:
4061//   * BadRequestException
4062//   The input you provided is invalid.
4063//
4064//   * ConcurrentModificationException
4065//   The resource is being modified by another operation or thread.
4066//
4067//   * NotFoundException
4068//   The resource you attempted to access doesn't exist.
4069//
4070//   * TooManyRequestsException
4071//   Too many requests have been made to the operation.
4072//
4073// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UntagResource
4074func (c *PinpointEmail) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4075	req, out := c.UntagResourceRequest(input)
4076	return out, req.Send()
4077}
4078
4079// UntagResourceWithContext is the same as UntagResource with the addition of
4080// the ability to pass a context and additional request options.
4081//
4082// See UntagResource for details on how to use this API operation.
4083//
4084// The context must be non-nil and will be used for request cancellation. If
4085// the context is nil a panic will occur. In the future the SDK may create
4086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4087// for more information on using Contexts.
4088func (c *PinpointEmail) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4089	req, out := c.UntagResourceRequest(input)
4090	req.SetContext(ctx)
4091	req.ApplyOptions(opts...)
4092	return out, req.Send()
4093}
4094
4095const opUpdateConfigurationSetEventDestination = "UpdateConfigurationSetEventDestination"
4096
4097// UpdateConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
4098// client's request for the UpdateConfigurationSetEventDestination operation. The "output" return
4099// value will be populated with the request's response once the request completes
4100// successfully.
4101//
4102// Use "Send" method on the returned Request to send the API call to the service.
4103// the "output" return value is not valid until after Send returns without error.
4104//
4105// See UpdateConfigurationSetEventDestination for more information on using the UpdateConfigurationSetEventDestination
4106// API call, and error handling.
4107//
4108// This method is useful when you want to inject custom logic or configuration
4109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4110//
4111//
4112//    // Example sending a request using the UpdateConfigurationSetEventDestinationRequest method.
4113//    req, resp := client.UpdateConfigurationSetEventDestinationRequest(params)
4114//
4115//    err := req.Send()
4116//    if err == nil { // resp is now filled
4117//        fmt.Println(resp)
4118//    }
4119//
4120// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UpdateConfigurationSetEventDestination
4121func (c *PinpointEmail) UpdateConfigurationSetEventDestinationRequest(input *UpdateConfigurationSetEventDestinationInput) (req *request.Request, output *UpdateConfigurationSetEventDestinationOutput) {
4122	op := &request.Operation{
4123		Name:       opUpdateConfigurationSetEventDestination,
4124		HTTPMethod: "PUT",
4125		HTTPPath:   "/v1/email/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}",
4126	}
4127
4128	if input == nil {
4129		input = &UpdateConfigurationSetEventDestinationInput{}
4130	}
4131
4132	output = &UpdateConfigurationSetEventDestinationOutput{}
4133	req = c.newRequest(op, input, output)
4134	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4135	return
4136}
4137
4138// UpdateConfigurationSetEventDestination API operation for Amazon Pinpoint Email Service.
4139//
4140// Update the configuration of an event destination for a configuration set.
4141//
4142// In Amazon Pinpoint, events include message sends, deliveries, opens, clicks,
4143// bounces, and complaints. Event destinations are places that you can send
4144// information about these events to. For example, you can send event data to
4145// Amazon SNS to receive notifications when you receive bounces or complaints,
4146// or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
4147// long-term storage.
4148//
4149// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4150// with awserr.Error's Code and Message methods to get detailed information about
4151// the error.
4152//
4153// See the AWS API reference guide for Amazon Pinpoint Email Service's
4154// API operation UpdateConfigurationSetEventDestination for usage and error information.
4155//
4156// Returned Error Types:
4157//   * NotFoundException
4158//   The resource you attempted to access doesn't exist.
4159//
4160//   * TooManyRequestsException
4161//   Too many requests have been made to the operation.
4162//
4163//   * BadRequestException
4164//   The input you provided is invalid.
4165//
4166// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UpdateConfigurationSetEventDestination
4167func (c *PinpointEmail) UpdateConfigurationSetEventDestination(input *UpdateConfigurationSetEventDestinationInput) (*UpdateConfigurationSetEventDestinationOutput, error) {
4168	req, out := c.UpdateConfigurationSetEventDestinationRequest(input)
4169	return out, req.Send()
4170}
4171
4172// UpdateConfigurationSetEventDestinationWithContext is the same as UpdateConfigurationSetEventDestination with the addition of
4173// the ability to pass a context and additional request options.
4174//
4175// See UpdateConfigurationSetEventDestination for details on how to use this API operation.
4176//
4177// The context must be non-nil and will be used for request cancellation. If
4178// the context is nil a panic will occur. In the future the SDK may create
4179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4180// for more information on using Contexts.
4181func (c *PinpointEmail) UpdateConfigurationSetEventDestinationWithContext(ctx aws.Context, input *UpdateConfigurationSetEventDestinationInput, opts ...request.Option) (*UpdateConfigurationSetEventDestinationOutput, error) {
4182	req, out := c.UpdateConfigurationSetEventDestinationRequest(input)
4183	req.SetContext(ctx)
4184	req.ApplyOptions(opts...)
4185	return out, req.Send()
4186}
4187
4188// The message can't be sent because the account's ability to send email has
4189// been permanently restricted.
4190type AccountSuspendedException struct {
4191	_            struct{}                  `type:"structure"`
4192	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4193
4194	Message_ *string `locationName:"message" type:"string"`
4195}
4196
4197// String returns the string representation
4198func (s AccountSuspendedException) String() string {
4199	return awsutil.Prettify(s)
4200}
4201
4202// GoString returns the string representation
4203func (s AccountSuspendedException) GoString() string {
4204	return s.String()
4205}
4206
4207func newErrorAccountSuspendedException(v protocol.ResponseMetadata) error {
4208	return &AccountSuspendedException{
4209		RespMetadata: v,
4210	}
4211}
4212
4213// Code returns the exception type name.
4214func (s *AccountSuspendedException) Code() string {
4215	return "AccountSuspendedException"
4216}
4217
4218// Message returns the exception's message.
4219func (s *AccountSuspendedException) Message() string {
4220	if s.Message_ != nil {
4221		return *s.Message_
4222	}
4223	return ""
4224}
4225
4226// OrigErr always returns nil, satisfies awserr.Error interface.
4227func (s *AccountSuspendedException) OrigErr() error {
4228	return nil
4229}
4230
4231func (s *AccountSuspendedException) Error() string {
4232	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4233}
4234
4235// Status code returns the HTTP status code for the request's response error.
4236func (s *AccountSuspendedException) StatusCode() int {
4237	return s.RespMetadata.StatusCode
4238}
4239
4240// RequestID returns the service's response RequestID for request.
4241func (s *AccountSuspendedException) RequestID() string {
4242	return s.RespMetadata.RequestID
4243}
4244
4245// The resource specified in your request already exists.
4246type AlreadyExistsException struct {
4247	_            struct{}                  `type:"structure"`
4248	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4249
4250	Message_ *string `locationName:"message" type:"string"`
4251}
4252
4253// String returns the string representation
4254func (s AlreadyExistsException) String() string {
4255	return awsutil.Prettify(s)
4256}
4257
4258// GoString returns the string representation
4259func (s AlreadyExistsException) GoString() string {
4260	return s.String()
4261}
4262
4263func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error {
4264	return &AlreadyExistsException{
4265		RespMetadata: v,
4266	}
4267}
4268
4269// Code returns the exception type name.
4270func (s *AlreadyExistsException) Code() string {
4271	return "AlreadyExistsException"
4272}
4273
4274// Message returns the exception's message.
4275func (s *AlreadyExistsException) Message() string {
4276	if s.Message_ != nil {
4277		return *s.Message_
4278	}
4279	return ""
4280}
4281
4282// OrigErr always returns nil, satisfies awserr.Error interface.
4283func (s *AlreadyExistsException) OrigErr() error {
4284	return nil
4285}
4286
4287func (s *AlreadyExistsException) Error() string {
4288	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4289}
4290
4291// Status code returns the HTTP status code for the request's response error.
4292func (s *AlreadyExistsException) StatusCode() int {
4293	return s.RespMetadata.StatusCode
4294}
4295
4296// RequestID returns the service's response RequestID for request.
4297func (s *AlreadyExistsException) RequestID() string {
4298	return s.RespMetadata.RequestID
4299}
4300
4301// The input you provided is invalid.
4302type BadRequestException struct {
4303	_            struct{}                  `type:"structure"`
4304	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4305
4306	Message_ *string `locationName:"message" type:"string"`
4307}
4308
4309// String returns the string representation
4310func (s BadRequestException) String() string {
4311	return awsutil.Prettify(s)
4312}
4313
4314// GoString returns the string representation
4315func (s BadRequestException) GoString() string {
4316	return s.String()
4317}
4318
4319func newErrorBadRequestException(v protocol.ResponseMetadata) error {
4320	return &BadRequestException{
4321		RespMetadata: v,
4322	}
4323}
4324
4325// Code returns the exception type name.
4326func (s *BadRequestException) Code() string {
4327	return "BadRequestException"
4328}
4329
4330// Message returns the exception's message.
4331func (s *BadRequestException) Message() string {
4332	if s.Message_ != nil {
4333		return *s.Message_
4334	}
4335	return ""
4336}
4337
4338// OrigErr always returns nil, satisfies awserr.Error interface.
4339func (s *BadRequestException) OrigErr() error {
4340	return nil
4341}
4342
4343func (s *BadRequestException) Error() string {
4344	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4345}
4346
4347// Status code returns the HTTP status code for the request's response error.
4348func (s *BadRequestException) StatusCode() int {
4349	return s.RespMetadata.StatusCode
4350}
4351
4352// RequestID returns the service's response RequestID for request.
4353func (s *BadRequestException) RequestID() string {
4354	return s.RespMetadata.RequestID
4355}
4356
4357// An object that contains information about a blacklisting event that impacts
4358// one of the dedicated IP addresses that is associated with your account.
4359type BlacklistEntry struct {
4360	_ struct{} `type:"structure"`
4361
4362	// Additional information about the blacklisting event, as provided by the blacklist
4363	// maintainer.
4364	Description *string `type:"string"`
4365
4366	// The time when the blacklisting event occurred, shown in Unix time format.
4367	ListingTime *time.Time `type:"timestamp"`
4368
4369	// The name of the blacklist that the IP address appears on.
4370	RblName *string `type:"string"`
4371}
4372
4373// String returns the string representation
4374func (s BlacklistEntry) String() string {
4375	return awsutil.Prettify(s)
4376}
4377
4378// GoString returns the string representation
4379func (s BlacklistEntry) GoString() string {
4380	return s.String()
4381}
4382
4383// SetDescription sets the Description field's value.
4384func (s *BlacklistEntry) SetDescription(v string) *BlacklistEntry {
4385	s.Description = &v
4386	return s
4387}
4388
4389// SetListingTime sets the ListingTime field's value.
4390func (s *BlacklistEntry) SetListingTime(v time.Time) *BlacklistEntry {
4391	s.ListingTime = &v
4392	return s
4393}
4394
4395// SetRblName sets the RblName field's value.
4396func (s *BlacklistEntry) SetRblName(v string) *BlacklistEntry {
4397	s.RblName = &v
4398	return s
4399}
4400
4401// Represents the body of the email message.
4402type Body struct {
4403	_ struct{} `type:"structure"`
4404
4405	// An object that represents the version of the message that is displayed in
4406	// email clients that support HTML. HTML messages can include formatted text,
4407	// hyperlinks, images, and more.
4408	Html *Content `type:"structure"`
4409
4410	// An object that represents the version of the message that is displayed in
4411	// email clients that don't support HTML, or clients where the recipient has
4412	// disabled HTML rendering.
4413	Text *Content `type:"structure"`
4414}
4415
4416// String returns the string representation
4417func (s Body) String() string {
4418	return awsutil.Prettify(s)
4419}
4420
4421// GoString returns the string representation
4422func (s Body) GoString() string {
4423	return s.String()
4424}
4425
4426// Validate inspects the fields of the type to determine if they are valid.
4427func (s *Body) Validate() error {
4428	invalidParams := request.ErrInvalidParams{Context: "Body"}
4429	if s.Html != nil {
4430		if err := s.Html.Validate(); err != nil {
4431			invalidParams.AddNested("Html", err.(request.ErrInvalidParams))
4432		}
4433	}
4434	if s.Text != nil {
4435		if err := s.Text.Validate(); err != nil {
4436			invalidParams.AddNested("Text", err.(request.ErrInvalidParams))
4437		}
4438	}
4439
4440	if invalidParams.Len() > 0 {
4441		return invalidParams
4442	}
4443	return nil
4444}
4445
4446// SetHtml sets the Html field's value.
4447func (s *Body) SetHtml(v *Content) *Body {
4448	s.Html = v
4449	return s
4450}
4451
4452// SetText sets the Text field's value.
4453func (s *Body) SetText(v *Content) *Body {
4454	s.Text = v
4455	return s
4456}
4457
4458// An object that defines an Amazon CloudWatch destination for email events.
4459// You can use Amazon CloudWatch to monitor and gain insights on your email
4460// sending metrics.
4461type CloudWatchDestination struct {
4462	_ struct{} `type:"structure"`
4463
4464	// An array of objects that define the dimensions to use when you send email
4465	// events to Amazon CloudWatch.
4466	//
4467	// DimensionConfigurations is a required field
4468	DimensionConfigurations []*CloudWatchDimensionConfiguration `type:"list" required:"true"`
4469}
4470
4471// String returns the string representation
4472func (s CloudWatchDestination) String() string {
4473	return awsutil.Prettify(s)
4474}
4475
4476// GoString returns the string representation
4477func (s CloudWatchDestination) GoString() string {
4478	return s.String()
4479}
4480
4481// Validate inspects the fields of the type to determine if they are valid.
4482func (s *CloudWatchDestination) Validate() error {
4483	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDestination"}
4484	if s.DimensionConfigurations == nil {
4485		invalidParams.Add(request.NewErrParamRequired("DimensionConfigurations"))
4486	}
4487	if s.DimensionConfigurations != nil {
4488		for i, v := range s.DimensionConfigurations {
4489			if v == nil {
4490				continue
4491			}
4492			if err := v.Validate(); err != nil {
4493				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DimensionConfigurations", i), err.(request.ErrInvalidParams))
4494			}
4495		}
4496	}
4497
4498	if invalidParams.Len() > 0 {
4499		return invalidParams
4500	}
4501	return nil
4502}
4503
4504// SetDimensionConfigurations sets the DimensionConfigurations field's value.
4505func (s *CloudWatchDestination) SetDimensionConfigurations(v []*CloudWatchDimensionConfiguration) *CloudWatchDestination {
4506	s.DimensionConfigurations = v
4507	return s
4508}
4509
4510// An object that defines the dimension configuration to use when you send Amazon
4511// Pinpoint email events to Amazon CloudWatch.
4512type CloudWatchDimensionConfiguration struct {
4513	_ struct{} `type:"structure"`
4514
4515	// The default value of the dimension that is published to Amazon CloudWatch
4516	// if you don't provide the value of the dimension when you send an email. This
4517	// value has to meet the following criteria:
4518	//
4519	//    * It can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores
4520	//    (_), or dashes (-).
4521	//
4522	//    * It can contain no more than 256 characters.
4523	//
4524	// DefaultDimensionValue is a required field
4525	DefaultDimensionValue *string `type:"string" required:"true"`
4526
4527	// The name of an Amazon CloudWatch dimension associated with an email sending
4528	// metric. The name has to meet the following criteria:
4529	//
4530	//    * It can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores
4531	//    (_), or dashes (-).
4532	//
4533	//    * It can contain no more than 256 characters.
4534	//
4535	// DimensionName is a required field
4536	DimensionName *string `type:"string" required:"true"`
4537
4538	// The location where Amazon Pinpoint finds the value of a dimension to publish
4539	// to Amazon CloudWatch. If you want Amazon Pinpoint to use the message tags
4540	// that you specify using an X-SES-MESSAGE-TAGS header or a parameter to the
4541	// SendEmail/SendRawEmail API, choose messageTag. If you want Amazon Pinpoint
4542	// to use your own email headers, choose emailHeader. If you want Amazon Pinpoint
4543	// to use link tags, choose linkTags.
4544	//
4545	// DimensionValueSource is a required field
4546	DimensionValueSource *string `type:"string" required:"true" enum:"DimensionValueSource"`
4547}
4548
4549// String returns the string representation
4550func (s CloudWatchDimensionConfiguration) String() string {
4551	return awsutil.Prettify(s)
4552}
4553
4554// GoString returns the string representation
4555func (s CloudWatchDimensionConfiguration) GoString() string {
4556	return s.String()
4557}
4558
4559// Validate inspects the fields of the type to determine if they are valid.
4560func (s *CloudWatchDimensionConfiguration) Validate() error {
4561	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDimensionConfiguration"}
4562	if s.DefaultDimensionValue == nil {
4563		invalidParams.Add(request.NewErrParamRequired("DefaultDimensionValue"))
4564	}
4565	if s.DimensionName == nil {
4566		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
4567	}
4568	if s.DimensionValueSource == nil {
4569		invalidParams.Add(request.NewErrParamRequired("DimensionValueSource"))
4570	}
4571
4572	if invalidParams.Len() > 0 {
4573		return invalidParams
4574	}
4575	return nil
4576}
4577
4578// SetDefaultDimensionValue sets the DefaultDimensionValue field's value.
4579func (s *CloudWatchDimensionConfiguration) SetDefaultDimensionValue(v string) *CloudWatchDimensionConfiguration {
4580	s.DefaultDimensionValue = &v
4581	return s
4582}
4583
4584// SetDimensionName sets the DimensionName field's value.
4585func (s *CloudWatchDimensionConfiguration) SetDimensionName(v string) *CloudWatchDimensionConfiguration {
4586	s.DimensionName = &v
4587	return s
4588}
4589
4590// SetDimensionValueSource sets the DimensionValueSource field's value.
4591func (s *CloudWatchDimensionConfiguration) SetDimensionValueSource(v string) *CloudWatchDimensionConfiguration {
4592	s.DimensionValueSource = &v
4593	return s
4594}
4595
4596// The resource is being modified by another operation or thread.
4597type ConcurrentModificationException struct {
4598	_            struct{}                  `type:"structure"`
4599	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4600
4601	Message_ *string `locationName:"message" type:"string"`
4602}
4603
4604// String returns the string representation
4605func (s ConcurrentModificationException) String() string {
4606	return awsutil.Prettify(s)
4607}
4608
4609// GoString returns the string representation
4610func (s ConcurrentModificationException) GoString() string {
4611	return s.String()
4612}
4613
4614func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
4615	return &ConcurrentModificationException{
4616		RespMetadata: v,
4617	}
4618}
4619
4620// Code returns the exception type name.
4621func (s *ConcurrentModificationException) Code() string {
4622	return "ConcurrentModificationException"
4623}
4624
4625// Message returns the exception's message.
4626func (s *ConcurrentModificationException) Message() string {
4627	if s.Message_ != nil {
4628		return *s.Message_
4629	}
4630	return ""
4631}
4632
4633// OrigErr always returns nil, satisfies awserr.Error interface.
4634func (s *ConcurrentModificationException) OrigErr() error {
4635	return nil
4636}
4637
4638func (s *ConcurrentModificationException) Error() string {
4639	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4640}
4641
4642// Status code returns the HTTP status code for the request's response error.
4643func (s *ConcurrentModificationException) StatusCode() int {
4644	return s.RespMetadata.StatusCode
4645}
4646
4647// RequestID returns the service's response RequestID for request.
4648func (s *ConcurrentModificationException) RequestID() string {
4649	return s.RespMetadata.RequestID
4650}
4651
4652// An object that represents the content of the email, and optionally a character
4653// set specification.
4654type Content struct {
4655	_ struct{} `type:"structure"`
4656
4657	// The character set for the content. Because of the constraints of the SMTP
4658	// protocol, Amazon Pinpoint uses 7-bit ASCII by default. If the text includes
4659	// characters outside of the ASCII range, you have to specify a character set.
4660	// For example, you could specify UTF-8, ISO-8859-1, or Shift_JIS.
4661	Charset *string `type:"string"`
4662
4663	// The content of the message itself.
4664	//
4665	// Data is a required field
4666	Data *string `type:"string" required:"true"`
4667}
4668
4669// String returns the string representation
4670func (s Content) String() string {
4671	return awsutil.Prettify(s)
4672}
4673
4674// GoString returns the string representation
4675func (s Content) GoString() string {
4676	return s.String()
4677}
4678
4679// Validate inspects the fields of the type to determine if they are valid.
4680func (s *Content) Validate() error {
4681	invalidParams := request.ErrInvalidParams{Context: "Content"}
4682	if s.Data == nil {
4683		invalidParams.Add(request.NewErrParamRequired("Data"))
4684	}
4685
4686	if invalidParams.Len() > 0 {
4687		return invalidParams
4688	}
4689	return nil
4690}
4691
4692// SetCharset sets the Charset field's value.
4693func (s *Content) SetCharset(v string) *Content {
4694	s.Charset = &v
4695	return s
4696}
4697
4698// SetData sets the Data field's value.
4699func (s *Content) SetData(v string) *Content {
4700	s.Data = &v
4701	return s
4702}
4703
4704// A request to add an event destination to a configuration set.
4705type CreateConfigurationSetEventDestinationInput struct {
4706	_ struct{} `type:"structure"`
4707
4708	// The name of the configuration set that you want to add an event destination
4709	// to.
4710	//
4711	// ConfigurationSetName is a required field
4712	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
4713
4714	// An object that defines the event destination.
4715	//
4716	// EventDestination is a required field
4717	EventDestination *EventDestinationDefinition `type:"structure" required:"true"`
4718
4719	// A name that identifies the event destination within the configuration set.
4720	//
4721	// EventDestinationName is a required field
4722	EventDestinationName *string `type:"string" required:"true"`
4723}
4724
4725// String returns the string representation
4726func (s CreateConfigurationSetEventDestinationInput) String() string {
4727	return awsutil.Prettify(s)
4728}
4729
4730// GoString returns the string representation
4731func (s CreateConfigurationSetEventDestinationInput) GoString() string {
4732	return s.String()
4733}
4734
4735// Validate inspects the fields of the type to determine if they are valid.
4736func (s *CreateConfigurationSetEventDestinationInput) Validate() error {
4737	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetEventDestinationInput"}
4738	if s.ConfigurationSetName == nil {
4739		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
4740	}
4741	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
4742		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
4743	}
4744	if s.EventDestination == nil {
4745		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
4746	}
4747	if s.EventDestinationName == nil {
4748		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
4749	}
4750	if s.EventDestination != nil {
4751		if err := s.EventDestination.Validate(); err != nil {
4752			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
4753		}
4754	}
4755
4756	if invalidParams.Len() > 0 {
4757		return invalidParams
4758	}
4759	return nil
4760}
4761
4762// SetConfigurationSetName sets the ConfigurationSetName field's value.
4763func (s *CreateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *CreateConfigurationSetEventDestinationInput {
4764	s.ConfigurationSetName = &v
4765	return s
4766}
4767
4768// SetEventDestination sets the EventDestination field's value.
4769func (s *CreateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestinationDefinition) *CreateConfigurationSetEventDestinationInput {
4770	s.EventDestination = v
4771	return s
4772}
4773
4774// SetEventDestinationName sets the EventDestinationName field's value.
4775func (s *CreateConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *CreateConfigurationSetEventDestinationInput {
4776	s.EventDestinationName = &v
4777	return s
4778}
4779
4780// An HTTP 200 response if the request succeeds, or an error message if the
4781// request fails.
4782type CreateConfigurationSetEventDestinationOutput struct {
4783	_ struct{} `type:"structure"`
4784}
4785
4786// String returns the string representation
4787func (s CreateConfigurationSetEventDestinationOutput) String() string {
4788	return awsutil.Prettify(s)
4789}
4790
4791// GoString returns the string representation
4792func (s CreateConfigurationSetEventDestinationOutput) GoString() string {
4793	return s.String()
4794}
4795
4796// A request to create a configuration set.
4797type CreateConfigurationSetInput struct {
4798	_ struct{} `type:"structure"`
4799
4800	// The name of the configuration set.
4801	//
4802	// ConfigurationSetName is a required field
4803	ConfigurationSetName *string `type:"string" required:"true"`
4804
4805	// An object that defines the dedicated IP pool that is used to send emails
4806	// that you send using the configuration set.
4807	DeliveryOptions *DeliveryOptions `type:"structure"`
4808
4809	// An object that defines whether or not Amazon Pinpoint collects reputation
4810	// metrics for the emails that you send that use the configuration set.
4811	ReputationOptions *ReputationOptions `type:"structure"`
4812
4813	// An object that defines whether or not Amazon Pinpoint can send email that
4814	// you send using the configuration set.
4815	SendingOptions *SendingOptions `type:"structure"`
4816
4817	// An array of objects that define the tags (keys and values) that you want
4818	// to associate with the configuration set.
4819	Tags []*Tag `type:"list"`
4820
4821	// An object that defines the open and click tracking options for emails that
4822	// you send using the configuration set.
4823	TrackingOptions *TrackingOptions `type:"structure"`
4824}
4825
4826// String returns the string representation
4827func (s CreateConfigurationSetInput) String() string {
4828	return awsutil.Prettify(s)
4829}
4830
4831// GoString returns the string representation
4832func (s CreateConfigurationSetInput) GoString() string {
4833	return s.String()
4834}
4835
4836// Validate inspects the fields of the type to determine if they are valid.
4837func (s *CreateConfigurationSetInput) Validate() error {
4838	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetInput"}
4839	if s.ConfigurationSetName == nil {
4840		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
4841	}
4842	if s.Tags != nil {
4843		for i, v := range s.Tags {
4844			if v == nil {
4845				continue
4846			}
4847			if err := v.Validate(); err != nil {
4848				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4849			}
4850		}
4851	}
4852	if s.TrackingOptions != nil {
4853		if err := s.TrackingOptions.Validate(); err != nil {
4854			invalidParams.AddNested("TrackingOptions", err.(request.ErrInvalidParams))
4855		}
4856	}
4857
4858	if invalidParams.Len() > 0 {
4859		return invalidParams
4860	}
4861	return nil
4862}
4863
4864// SetConfigurationSetName sets the ConfigurationSetName field's value.
4865func (s *CreateConfigurationSetInput) SetConfigurationSetName(v string) *CreateConfigurationSetInput {
4866	s.ConfigurationSetName = &v
4867	return s
4868}
4869
4870// SetDeliveryOptions sets the DeliveryOptions field's value.
4871func (s *CreateConfigurationSetInput) SetDeliveryOptions(v *DeliveryOptions) *CreateConfigurationSetInput {
4872	s.DeliveryOptions = v
4873	return s
4874}
4875
4876// SetReputationOptions sets the ReputationOptions field's value.
4877func (s *CreateConfigurationSetInput) SetReputationOptions(v *ReputationOptions) *CreateConfigurationSetInput {
4878	s.ReputationOptions = v
4879	return s
4880}
4881
4882// SetSendingOptions sets the SendingOptions field's value.
4883func (s *CreateConfigurationSetInput) SetSendingOptions(v *SendingOptions) *CreateConfigurationSetInput {
4884	s.SendingOptions = v
4885	return s
4886}
4887
4888// SetTags sets the Tags field's value.
4889func (s *CreateConfigurationSetInput) SetTags(v []*Tag) *CreateConfigurationSetInput {
4890	s.Tags = v
4891	return s
4892}
4893
4894// SetTrackingOptions sets the TrackingOptions field's value.
4895func (s *CreateConfigurationSetInput) SetTrackingOptions(v *TrackingOptions) *CreateConfigurationSetInput {
4896	s.TrackingOptions = v
4897	return s
4898}
4899
4900// An HTTP 200 response if the request succeeds, or an error message if the
4901// request fails.
4902type CreateConfigurationSetOutput struct {
4903	_ struct{} `type:"structure"`
4904}
4905
4906// String returns the string representation
4907func (s CreateConfigurationSetOutput) String() string {
4908	return awsutil.Prettify(s)
4909}
4910
4911// GoString returns the string representation
4912func (s CreateConfigurationSetOutput) GoString() string {
4913	return s.String()
4914}
4915
4916// A request to create a new dedicated IP pool.
4917type CreateDedicatedIpPoolInput struct {
4918	_ struct{} `type:"structure"`
4919
4920	// The name of the dedicated IP pool.
4921	//
4922	// PoolName is a required field
4923	PoolName *string `type:"string" required:"true"`
4924
4925	// An object that defines the tags (keys and values) that you want to associate
4926	// with the pool.
4927	Tags []*Tag `type:"list"`
4928}
4929
4930// String returns the string representation
4931func (s CreateDedicatedIpPoolInput) String() string {
4932	return awsutil.Prettify(s)
4933}
4934
4935// GoString returns the string representation
4936func (s CreateDedicatedIpPoolInput) GoString() string {
4937	return s.String()
4938}
4939
4940// Validate inspects the fields of the type to determine if they are valid.
4941func (s *CreateDedicatedIpPoolInput) Validate() error {
4942	invalidParams := request.ErrInvalidParams{Context: "CreateDedicatedIpPoolInput"}
4943	if s.PoolName == nil {
4944		invalidParams.Add(request.NewErrParamRequired("PoolName"))
4945	}
4946	if s.Tags != nil {
4947		for i, v := range s.Tags {
4948			if v == nil {
4949				continue
4950			}
4951			if err := v.Validate(); err != nil {
4952				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4953			}
4954		}
4955	}
4956
4957	if invalidParams.Len() > 0 {
4958		return invalidParams
4959	}
4960	return nil
4961}
4962
4963// SetPoolName sets the PoolName field's value.
4964func (s *CreateDedicatedIpPoolInput) SetPoolName(v string) *CreateDedicatedIpPoolInput {
4965	s.PoolName = &v
4966	return s
4967}
4968
4969// SetTags sets the Tags field's value.
4970func (s *CreateDedicatedIpPoolInput) SetTags(v []*Tag) *CreateDedicatedIpPoolInput {
4971	s.Tags = v
4972	return s
4973}
4974
4975// An HTTP 200 response if the request succeeds, or an error message if the
4976// request fails.
4977type CreateDedicatedIpPoolOutput struct {
4978	_ struct{} `type:"structure"`
4979}
4980
4981// String returns the string representation
4982func (s CreateDedicatedIpPoolOutput) String() string {
4983	return awsutil.Prettify(s)
4984}
4985
4986// GoString returns the string representation
4987func (s CreateDedicatedIpPoolOutput) GoString() string {
4988	return s.String()
4989}
4990
4991// A request to perform a predictive inbox placement test. Predictive inbox
4992// placement tests can help you predict how your messages will be handled by
4993// various email providers around the world. When you perform a predictive inbox
4994// placement test, you provide a sample message that contains the content that
4995// you plan to send to your customers. Amazon Pinpoint then sends that message
4996// to special email addresses spread across several major email providers. After
4997// about 24 hours, the test is complete, and you can use the GetDeliverabilityTestReport
4998// operation to view the results of the test.
4999type CreateDeliverabilityTestReportInput struct {
5000	_ struct{} `type:"structure"`
5001
5002	// The HTML body of the message that you sent when you performed the predictive
5003	// inbox placement test.
5004	//
5005	// Content is a required field
5006	Content *EmailContent `type:"structure" required:"true"`
5007
5008	// The email address that the predictive inbox placement test email was sent
5009	// from.
5010	//
5011	// FromEmailAddress is a required field
5012	FromEmailAddress *string `type:"string" required:"true"`
5013
5014	// A unique name that helps you to identify the predictive inbox placement test
5015	// when you retrieve the results.
5016	ReportName *string `type:"string"`
5017
5018	// An array of objects that define the tags (keys and values) that you want
5019	// to associate with the predictive inbox placement test.
5020	Tags []*Tag `type:"list"`
5021}
5022
5023// String returns the string representation
5024func (s CreateDeliverabilityTestReportInput) String() string {
5025	return awsutil.Prettify(s)
5026}
5027
5028// GoString returns the string representation
5029func (s CreateDeliverabilityTestReportInput) GoString() string {
5030	return s.String()
5031}
5032
5033// Validate inspects the fields of the type to determine if they are valid.
5034func (s *CreateDeliverabilityTestReportInput) Validate() error {
5035	invalidParams := request.ErrInvalidParams{Context: "CreateDeliverabilityTestReportInput"}
5036	if s.Content == nil {
5037		invalidParams.Add(request.NewErrParamRequired("Content"))
5038	}
5039	if s.FromEmailAddress == nil {
5040		invalidParams.Add(request.NewErrParamRequired("FromEmailAddress"))
5041	}
5042	if s.Content != nil {
5043		if err := s.Content.Validate(); err != nil {
5044			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
5045		}
5046	}
5047	if s.Tags != nil {
5048		for i, v := range s.Tags {
5049			if v == nil {
5050				continue
5051			}
5052			if err := v.Validate(); err != nil {
5053				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5054			}
5055		}
5056	}
5057
5058	if invalidParams.Len() > 0 {
5059		return invalidParams
5060	}
5061	return nil
5062}
5063
5064// SetContent sets the Content field's value.
5065func (s *CreateDeliverabilityTestReportInput) SetContent(v *EmailContent) *CreateDeliverabilityTestReportInput {
5066	s.Content = v
5067	return s
5068}
5069
5070// SetFromEmailAddress sets the FromEmailAddress field's value.
5071func (s *CreateDeliverabilityTestReportInput) SetFromEmailAddress(v string) *CreateDeliverabilityTestReportInput {
5072	s.FromEmailAddress = &v
5073	return s
5074}
5075
5076// SetReportName sets the ReportName field's value.
5077func (s *CreateDeliverabilityTestReportInput) SetReportName(v string) *CreateDeliverabilityTestReportInput {
5078	s.ReportName = &v
5079	return s
5080}
5081
5082// SetTags sets the Tags field's value.
5083func (s *CreateDeliverabilityTestReportInput) SetTags(v []*Tag) *CreateDeliverabilityTestReportInput {
5084	s.Tags = v
5085	return s
5086}
5087
5088// Information about the predictive inbox placement test that you created.
5089type CreateDeliverabilityTestReportOutput struct {
5090	_ struct{} `type:"structure"`
5091
5092	// The status of the predictive inbox placement test. If the status is IN_PROGRESS,
5093	// then the predictive inbox placement test is currently running. Predictive
5094	// inbox placement tests are usually complete within 24 hours of creating the
5095	// test. If the status is COMPLETE, then the test is finished, and you can use
5096	// the GetDeliverabilityTestReport to view the results of the test.
5097	//
5098	// DeliverabilityTestStatus is a required field
5099	DeliverabilityTestStatus *string `type:"string" required:"true" enum:"DeliverabilityTestStatus"`
5100
5101	// A unique string that identifies the predictive inbox placement test.
5102	//
5103	// ReportId is a required field
5104	ReportId *string `type:"string" required:"true"`
5105}
5106
5107// String returns the string representation
5108func (s CreateDeliverabilityTestReportOutput) String() string {
5109	return awsutil.Prettify(s)
5110}
5111
5112// GoString returns the string representation
5113func (s CreateDeliverabilityTestReportOutput) GoString() string {
5114	return s.String()
5115}
5116
5117// SetDeliverabilityTestStatus sets the DeliverabilityTestStatus field's value.
5118func (s *CreateDeliverabilityTestReportOutput) SetDeliverabilityTestStatus(v string) *CreateDeliverabilityTestReportOutput {
5119	s.DeliverabilityTestStatus = &v
5120	return s
5121}
5122
5123// SetReportId sets the ReportId field's value.
5124func (s *CreateDeliverabilityTestReportOutput) SetReportId(v string) *CreateDeliverabilityTestReportOutput {
5125	s.ReportId = &v
5126	return s
5127}
5128
5129// A request to begin the verification process for an email identity (an email
5130// address or domain).
5131type CreateEmailIdentityInput struct {
5132	_ struct{} `type:"structure"`
5133
5134	// The email address or domain that you want to verify.
5135	//
5136	// EmailIdentity is a required field
5137	EmailIdentity *string `type:"string" required:"true"`
5138
5139	// An array of objects that define the tags (keys and values) that you want
5140	// to associate with the email identity.
5141	Tags []*Tag `type:"list"`
5142}
5143
5144// String returns the string representation
5145func (s CreateEmailIdentityInput) String() string {
5146	return awsutil.Prettify(s)
5147}
5148
5149// GoString returns the string representation
5150func (s CreateEmailIdentityInput) GoString() string {
5151	return s.String()
5152}
5153
5154// Validate inspects the fields of the type to determine if they are valid.
5155func (s *CreateEmailIdentityInput) Validate() error {
5156	invalidParams := request.ErrInvalidParams{Context: "CreateEmailIdentityInput"}
5157	if s.EmailIdentity == nil {
5158		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
5159	}
5160	if s.Tags != nil {
5161		for i, v := range s.Tags {
5162			if v == nil {
5163				continue
5164			}
5165			if err := v.Validate(); err != nil {
5166				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5167			}
5168		}
5169	}
5170
5171	if invalidParams.Len() > 0 {
5172		return invalidParams
5173	}
5174	return nil
5175}
5176
5177// SetEmailIdentity sets the EmailIdentity field's value.
5178func (s *CreateEmailIdentityInput) SetEmailIdentity(v string) *CreateEmailIdentityInput {
5179	s.EmailIdentity = &v
5180	return s
5181}
5182
5183// SetTags sets the Tags field's value.
5184func (s *CreateEmailIdentityInput) SetTags(v []*Tag) *CreateEmailIdentityInput {
5185	s.Tags = v
5186	return s
5187}
5188
5189// If the email identity is a domain, this object contains tokens that you can
5190// use to create a set of CNAME records. To sucessfully verify your domain,
5191// you have to add these records to the DNS configuration for your domain.
5192//
5193// If the email identity is an email address, this object is empty.
5194type CreateEmailIdentityOutput struct {
5195	_ struct{} `type:"structure"`
5196
5197	// An object that contains information about the DKIM attributes for the identity.
5198	// This object includes the tokens that you use to create the CNAME records
5199	// that are required to complete the DKIM verification process.
5200	DkimAttributes *DkimAttributes `type:"structure"`
5201
5202	// The email identity type.
5203	IdentityType *string `type:"string" enum:"IdentityType"`
5204
5205	// Specifies whether or not the identity is verified. In Amazon Pinpoint, you
5206	// can only send email from verified email addresses or domains. For more information
5207	// about verifying identities, see the Amazon Pinpoint User Guide (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html).
5208	VerifiedForSendingStatus *bool `type:"boolean"`
5209}
5210
5211// String returns the string representation
5212func (s CreateEmailIdentityOutput) String() string {
5213	return awsutil.Prettify(s)
5214}
5215
5216// GoString returns the string representation
5217func (s CreateEmailIdentityOutput) GoString() string {
5218	return s.String()
5219}
5220
5221// SetDkimAttributes sets the DkimAttributes field's value.
5222func (s *CreateEmailIdentityOutput) SetDkimAttributes(v *DkimAttributes) *CreateEmailIdentityOutput {
5223	s.DkimAttributes = v
5224	return s
5225}
5226
5227// SetIdentityType sets the IdentityType field's value.
5228func (s *CreateEmailIdentityOutput) SetIdentityType(v string) *CreateEmailIdentityOutput {
5229	s.IdentityType = &v
5230	return s
5231}
5232
5233// SetVerifiedForSendingStatus sets the VerifiedForSendingStatus field's value.
5234func (s *CreateEmailIdentityOutput) SetVerifiedForSendingStatus(v bool) *CreateEmailIdentityOutput {
5235	s.VerifiedForSendingStatus = &v
5236	return s
5237}
5238
5239// An object that contains information about the volume of email sent on each
5240// day of the analysis period.
5241type DailyVolume struct {
5242	_ struct{} `type:"structure"`
5243
5244	// An object that contains inbox placement metrics for a specified day in the
5245	// analysis period, broken out by the recipient's email provider.
5246	DomainIspPlacements []*DomainIspPlacement `type:"list"`
5247
5248	// The date that the DailyVolume metrics apply to, in Unix time.
5249	StartDate *time.Time `type:"timestamp"`
5250
5251	// An object that contains inbox placement metrics for a specific day in the
5252	// analysis period.
5253	VolumeStatistics *VolumeStatistics `type:"structure"`
5254}
5255
5256// String returns the string representation
5257func (s DailyVolume) String() string {
5258	return awsutil.Prettify(s)
5259}
5260
5261// GoString returns the string representation
5262func (s DailyVolume) GoString() string {
5263	return s.String()
5264}
5265
5266// SetDomainIspPlacements sets the DomainIspPlacements field's value.
5267func (s *DailyVolume) SetDomainIspPlacements(v []*DomainIspPlacement) *DailyVolume {
5268	s.DomainIspPlacements = v
5269	return s
5270}
5271
5272// SetStartDate sets the StartDate field's value.
5273func (s *DailyVolume) SetStartDate(v time.Time) *DailyVolume {
5274	s.StartDate = &v
5275	return s
5276}
5277
5278// SetVolumeStatistics sets the VolumeStatistics field's value.
5279func (s *DailyVolume) SetVolumeStatistics(v *VolumeStatistics) *DailyVolume {
5280	s.VolumeStatistics = v
5281	return s
5282}
5283
5284// Contains information about a dedicated IP address that is associated with
5285// your Amazon Pinpoint account.
5286type DedicatedIp struct {
5287	_ struct{} `type:"structure"`
5288
5289	// An IP address that is reserved for use by your Amazon Pinpoint account.
5290	//
5291	// Ip is a required field
5292	Ip *string `type:"string" required:"true"`
5293
5294	// The name of the dedicated IP pool that the IP address is associated with.
5295	PoolName *string `type:"string"`
5296
5297	// Indicates how complete the dedicated IP warm-up process is. When this value
5298	// equals 1, the address has completed the warm-up process and is ready for
5299	// use.
5300	//
5301	// WarmupPercentage is a required field
5302	WarmupPercentage *int64 `type:"integer" required:"true"`
5303
5304	// The warm-up status of a dedicated IP address. The status can have one of
5305	// the following values:
5306	//
5307	//    * IN_PROGRESS – The IP address isn't ready to use because the dedicated
5308	//    IP warm-up process is ongoing.
5309	//
5310	//    * DONE – The dedicated IP warm-up process is complete, and the IP address
5311	//    is ready to use.
5312	//
5313	// WarmupStatus is a required field
5314	WarmupStatus *string `type:"string" required:"true" enum:"WarmupStatus"`
5315}
5316
5317// String returns the string representation
5318func (s DedicatedIp) String() string {
5319	return awsutil.Prettify(s)
5320}
5321
5322// GoString returns the string representation
5323func (s DedicatedIp) GoString() string {
5324	return s.String()
5325}
5326
5327// SetIp sets the Ip field's value.
5328func (s *DedicatedIp) SetIp(v string) *DedicatedIp {
5329	s.Ip = &v
5330	return s
5331}
5332
5333// SetPoolName sets the PoolName field's value.
5334func (s *DedicatedIp) SetPoolName(v string) *DedicatedIp {
5335	s.PoolName = &v
5336	return s
5337}
5338
5339// SetWarmupPercentage sets the WarmupPercentage field's value.
5340func (s *DedicatedIp) SetWarmupPercentage(v int64) *DedicatedIp {
5341	s.WarmupPercentage = &v
5342	return s
5343}
5344
5345// SetWarmupStatus sets the WarmupStatus field's value.
5346func (s *DedicatedIp) SetWarmupStatus(v string) *DedicatedIp {
5347	s.WarmupStatus = &v
5348	return s
5349}
5350
5351// A request to delete an event destination from a configuration set.
5352type DeleteConfigurationSetEventDestinationInput struct {
5353	_ struct{} `type:"structure"`
5354
5355	// The name of the configuration set that contains the event destination that
5356	// you want to delete.
5357	//
5358	// ConfigurationSetName is a required field
5359	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
5360
5361	// The name of the event destination that you want to delete.
5362	//
5363	// EventDestinationName is a required field
5364	EventDestinationName *string `location:"uri" locationName:"EventDestinationName" type:"string" required:"true"`
5365}
5366
5367// String returns the string representation
5368func (s DeleteConfigurationSetEventDestinationInput) String() string {
5369	return awsutil.Prettify(s)
5370}
5371
5372// GoString returns the string representation
5373func (s DeleteConfigurationSetEventDestinationInput) GoString() string {
5374	return s.String()
5375}
5376
5377// Validate inspects the fields of the type to determine if they are valid.
5378func (s *DeleteConfigurationSetEventDestinationInput) Validate() error {
5379	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetEventDestinationInput"}
5380	if s.ConfigurationSetName == nil {
5381		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5382	}
5383	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
5384		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
5385	}
5386	if s.EventDestinationName == nil {
5387		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
5388	}
5389	if s.EventDestinationName != nil && len(*s.EventDestinationName) < 1 {
5390		invalidParams.Add(request.NewErrParamMinLen("EventDestinationName", 1))
5391	}
5392
5393	if invalidParams.Len() > 0 {
5394		return invalidParams
5395	}
5396	return nil
5397}
5398
5399// SetConfigurationSetName sets the ConfigurationSetName field's value.
5400func (s *DeleteConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *DeleteConfigurationSetEventDestinationInput {
5401	s.ConfigurationSetName = &v
5402	return s
5403}
5404
5405// SetEventDestinationName sets the EventDestinationName field's value.
5406func (s *DeleteConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *DeleteConfigurationSetEventDestinationInput {
5407	s.EventDestinationName = &v
5408	return s
5409}
5410
5411// An HTTP 200 response if the request succeeds, or an error message if the
5412// request fails.
5413type DeleteConfigurationSetEventDestinationOutput struct {
5414	_ struct{} `type:"structure"`
5415}
5416
5417// String returns the string representation
5418func (s DeleteConfigurationSetEventDestinationOutput) String() string {
5419	return awsutil.Prettify(s)
5420}
5421
5422// GoString returns the string representation
5423func (s DeleteConfigurationSetEventDestinationOutput) GoString() string {
5424	return s.String()
5425}
5426
5427// A request to delete a configuration set.
5428type DeleteConfigurationSetInput struct {
5429	_ struct{} `type:"structure"`
5430
5431	// The name of the configuration set that you want to delete.
5432	//
5433	// ConfigurationSetName is a required field
5434	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
5435}
5436
5437// String returns the string representation
5438func (s DeleteConfigurationSetInput) String() string {
5439	return awsutil.Prettify(s)
5440}
5441
5442// GoString returns the string representation
5443func (s DeleteConfigurationSetInput) GoString() string {
5444	return s.String()
5445}
5446
5447// Validate inspects the fields of the type to determine if they are valid.
5448func (s *DeleteConfigurationSetInput) Validate() error {
5449	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetInput"}
5450	if s.ConfigurationSetName == nil {
5451		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5452	}
5453	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
5454		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
5455	}
5456
5457	if invalidParams.Len() > 0 {
5458		return invalidParams
5459	}
5460	return nil
5461}
5462
5463// SetConfigurationSetName sets the ConfigurationSetName field's value.
5464func (s *DeleteConfigurationSetInput) SetConfigurationSetName(v string) *DeleteConfigurationSetInput {
5465	s.ConfigurationSetName = &v
5466	return s
5467}
5468
5469// An HTTP 200 response if the request succeeds, or an error message if the
5470// request fails.
5471type DeleteConfigurationSetOutput struct {
5472	_ struct{} `type:"structure"`
5473}
5474
5475// String returns the string representation
5476func (s DeleteConfigurationSetOutput) String() string {
5477	return awsutil.Prettify(s)
5478}
5479
5480// GoString returns the string representation
5481func (s DeleteConfigurationSetOutput) GoString() string {
5482	return s.String()
5483}
5484
5485// A request to delete a dedicated IP pool.
5486type DeleteDedicatedIpPoolInput struct {
5487	_ struct{} `type:"structure"`
5488
5489	// The name of the dedicated IP pool that you want to delete.
5490	//
5491	// PoolName is a required field
5492	PoolName *string `location:"uri" locationName:"PoolName" type:"string" required:"true"`
5493}
5494
5495// String returns the string representation
5496func (s DeleteDedicatedIpPoolInput) String() string {
5497	return awsutil.Prettify(s)
5498}
5499
5500// GoString returns the string representation
5501func (s DeleteDedicatedIpPoolInput) GoString() string {
5502	return s.String()
5503}
5504
5505// Validate inspects the fields of the type to determine if they are valid.
5506func (s *DeleteDedicatedIpPoolInput) Validate() error {
5507	invalidParams := request.ErrInvalidParams{Context: "DeleteDedicatedIpPoolInput"}
5508	if s.PoolName == nil {
5509		invalidParams.Add(request.NewErrParamRequired("PoolName"))
5510	}
5511	if s.PoolName != nil && len(*s.PoolName) < 1 {
5512		invalidParams.Add(request.NewErrParamMinLen("PoolName", 1))
5513	}
5514
5515	if invalidParams.Len() > 0 {
5516		return invalidParams
5517	}
5518	return nil
5519}
5520
5521// SetPoolName sets the PoolName field's value.
5522func (s *DeleteDedicatedIpPoolInput) SetPoolName(v string) *DeleteDedicatedIpPoolInput {
5523	s.PoolName = &v
5524	return s
5525}
5526
5527// An HTTP 200 response if the request succeeds, or an error message if the
5528// request fails.
5529type DeleteDedicatedIpPoolOutput struct {
5530	_ struct{} `type:"structure"`
5531}
5532
5533// String returns the string representation
5534func (s DeleteDedicatedIpPoolOutput) String() string {
5535	return awsutil.Prettify(s)
5536}
5537
5538// GoString returns the string representation
5539func (s DeleteDedicatedIpPoolOutput) GoString() string {
5540	return s.String()
5541}
5542
5543// A request to delete an existing email identity. When you delete an identity,
5544// you lose the ability to use Amazon Pinpoint to send email from that identity.
5545// You can restore your ability to send email by completing the verification
5546// process for the identity again.
5547type DeleteEmailIdentityInput struct {
5548	_ struct{} `type:"structure"`
5549
5550	// The identity (that is, the email address or domain) that you want to delete
5551	// from your Amazon Pinpoint account.
5552	//
5553	// EmailIdentity is a required field
5554	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
5555}
5556
5557// String returns the string representation
5558func (s DeleteEmailIdentityInput) String() string {
5559	return awsutil.Prettify(s)
5560}
5561
5562// GoString returns the string representation
5563func (s DeleteEmailIdentityInput) GoString() string {
5564	return s.String()
5565}
5566
5567// Validate inspects the fields of the type to determine if they are valid.
5568func (s *DeleteEmailIdentityInput) Validate() error {
5569	invalidParams := request.ErrInvalidParams{Context: "DeleteEmailIdentityInput"}
5570	if s.EmailIdentity == nil {
5571		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
5572	}
5573	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
5574		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
5575	}
5576
5577	if invalidParams.Len() > 0 {
5578		return invalidParams
5579	}
5580	return nil
5581}
5582
5583// SetEmailIdentity sets the EmailIdentity field's value.
5584func (s *DeleteEmailIdentityInput) SetEmailIdentity(v string) *DeleteEmailIdentityInput {
5585	s.EmailIdentity = &v
5586	return s
5587}
5588
5589// An HTTP 200 response if the request succeeds, or an error message if the
5590// request fails.
5591type DeleteEmailIdentityOutput struct {
5592	_ struct{} `type:"structure"`
5593}
5594
5595// String returns the string representation
5596func (s DeleteEmailIdentityOutput) String() string {
5597	return awsutil.Prettify(s)
5598}
5599
5600// GoString returns the string representation
5601func (s DeleteEmailIdentityOutput) GoString() string {
5602	return s.String()
5603}
5604
5605// An object that contains metadata related to a predictive inbox placement
5606// test.
5607type DeliverabilityTestReport struct {
5608	_ struct{} `type:"structure"`
5609
5610	// The date and time when the predictive inbox placement test was created, in
5611	// Unix time format.
5612	CreateDate *time.Time `type:"timestamp"`
5613
5614	// The status of the predictive inbox placement test. If the status is IN_PROGRESS,
5615	// then the predictive inbox placement test is currently running. Predictive
5616	// inbox placement tests are usually complete within 24 hours of creating the
5617	// test. If the status is COMPLETE, then the test is finished, and you can use
5618	// the GetDeliverabilityTestReport to view the results of the test.
5619	DeliverabilityTestStatus *string `type:"string" enum:"DeliverabilityTestStatus"`
5620
5621	// The sender address that you specified for the predictive inbox placement
5622	// test.
5623	FromEmailAddress *string `type:"string"`
5624
5625	// A unique string that identifies the predictive inbox placement test.
5626	ReportId *string `type:"string"`
5627
5628	// A name that helps you identify a predictive inbox placement test report.
5629	ReportName *string `type:"string"`
5630
5631	// The subject line for an email that you submitted in a predictive inbox placement
5632	// test.
5633	Subject *string `type:"string"`
5634}
5635
5636// String returns the string representation
5637func (s DeliverabilityTestReport) String() string {
5638	return awsutil.Prettify(s)
5639}
5640
5641// GoString returns the string representation
5642func (s DeliverabilityTestReport) GoString() string {
5643	return s.String()
5644}
5645
5646// SetCreateDate sets the CreateDate field's value.
5647func (s *DeliverabilityTestReport) SetCreateDate(v time.Time) *DeliverabilityTestReport {
5648	s.CreateDate = &v
5649	return s
5650}
5651
5652// SetDeliverabilityTestStatus sets the DeliverabilityTestStatus field's value.
5653func (s *DeliverabilityTestReport) SetDeliverabilityTestStatus(v string) *DeliverabilityTestReport {
5654	s.DeliverabilityTestStatus = &v
5655	return s
5656}
5657
5658// SetFromEmailAddress sets the FromEmailAddress field's value.
5659func (s *DeliverabilityTestReport) SetFromEmailAddress(v string) *DeliverabilityTestReport {
5660	s.FromEmailAddress = &v
5661	return s
5662}
5663
5664// SetReportId sets the ReportId field's value.
5665func (s *DeliverabilityTestReport) SetReportId(v string) *DeliverabilityTestReport {
5666	s.ReportId = &v
5667	return s
5668}
5669
5670// SetReportName sets the ReportName field's value.
5671func (s *DeliverabilityTestReport) SetReportName(v string) *DeliverabilityTestReport {
5672	s.ReportName = &v
5673	return s
5674}
5675
5676// SetSubject sets the Subject field's value.
5677func (s *DeliverabilityTestReport) SetSubject(v string) *DeliverabilityTestReport {
5678	s.Subject = &v
5679	return s
5680}
5681
5682// Used to associate a configuration set with a dedicated IP pool.
5683type DeliveryOptions struct {
5684	_ struct{} `type:"structure"`
5685
5686	// The name of the dedicated IP pool that you want to associate with the configuration
5687	// set.
5688	SendingPoolName *string `type:"string"`
5689
5690	// Specifies whether messages that use the configuration set are required to
5691	// use Transport Layer Security (TLS). If the value is Require, messages are
5692	// only delivered if a TLS connection can be established. If the value is Optional,
5693	// messages can be delivered in plain text if a TLS connection can't be established.
5694	TlsPolicy *string `type:"string" enum:"TlsPolicy"`
5695}
5696
5697// String returns the string representation
5698func (s DeliveryOptions) String() string {
5699	return awsutil.Prettify(s)
5700}
5701
5702// GoString returns the string representation
5703func (s DeliveryOptions) GoString() string {
5704	return s.String()
5705}
5706
5707// SetSendingPoolName sets the SendingPoolName field's value.
5708func (s *DeliveryOptions) SetSendingPoolName(v string) *DeliveryOptions {
5709	s.SendingPoolName = &v
5710	return s
5711}
5712
5713// SetTlsPolicy sets the TlsPolicy field's value.
5714func (s *DeliveryOptions) SetTlsPolicy(v string) *DeliveryOptions {
5715	s.TlsPolicy = &v
5716	return s
5717}
5718
5719// An object that describes the recipients for an email.
5720type Destination struct {
5721	_ struct{} `type:"structure"`
5722
5723	// An array that contains the email addresses of the "BCC" (blind carbon copy)
5724	// recipients for the email.
5725	BccAddresses []*string `type:"list"`
5726
5727	// An array that contains the email addresses of the "CC" (carbon copy) recipients
5728	// for the email.
5729	CcAddresses []*string `type:"list"`
5730
5731	// An array that contains the email addresses of the "To" recipients for the
5732	// email.
5733	ToAddresses []*string `type:"list"`
5734}
5735
5736// String returns the string representation
5737func (s Destination) String() string {
5738	return awsutil.Prettify(s)
5739}
5740
5741// GoString returns the string representation
5742func (s Destination) GoString() string {
5743	return s.String()
5744}
5745
5746// SetBccAddresses sets the BccAddresses field's value.
5747func (s *Destination) SetBccAddresses(v []*string) *Destination {
5748	s.BccAddresses = v
5749	return s
5750}
5751
5752// SetCcAddresses sets the CcAddresses field's value.
5753func (s *Destination) SetCcAddresses(v []*string) *Destination {
5754	s.CcAddresses = v
5755	return s
5756}
5757
5758// SetToAddresses sets the ToAddresses field's value.
5759func (s *Destination) SetToAddresses(v []*string) *Destination {
5760	s.ToAddresses = v
5761	return s
5762}
5763
5764// An object that contains information about the DKIM configuration for an email
5765// identity.
5766type DkimAttributes struct {
5767	_ struct{} `type:"structure"`
5768
5769	// If the value is true, then the messages that Amazon Pinpoint sends from the
5770	// identity are DKIM-signed. If the value is false, then the messages that Amazon
5771	// Pinpoint sends from the identity aren't DKIM-signed.
5772	SigningEnabled *bool `type:"boolean"`
5773
5774	// Describes whether or not Amazon Pinpoint has successfully located the DKIM
5775	// records in the DNS records for the domain. The status can be one of the following:
5776	//
5777	//    * PENDING – Amazon Pinpoint hasn't yet located the DKIM records in the
5778	//    DNS configuration for the domain, but will continue to attempt to locate
5779	//    them.
5780	//
5781	//    * SUCCESS – Amazon Pinpoint located the DKIM records in the DNS configuration
5782	//    for the domain and determined that they're correct. Amazon Pinpoint can
5783	//    now send DKIM-signed email from the identity.
5784	//
5785	//    * FAILED – Amazon Pinpoint was unable to locate the DKIM records in
5786	//    the DNS settings for the domain, and won't continue to search for them.
5787	//
5788	//    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
5789	//    Pinpoint from determining the DKIM status for the domain.
5790	//
5791	//    * NOT_STARTED – Amazon Pinpoint hasn't yet started searching for the
5792	//    DKIM records in the DKIM records for the domain.
5793	Status *string `type:"string" enum:"DkimStatus"`
5794
5795	// A set of unique strings that you use to create a set of CNAME records that
5796	// you add to the DNS configuration for your domain. When Amazon Pinpoint detects
5797	// these records in the DNS configuration for your domain, the DKIM authentication
5798	// process is complete. Amazon Pinpoint usually detects these records within
5799	// about 72 hours of adding them to the DNS configuration for your domain.
5800	Tokens []*string `type:"list"`
5801}
5802
5803// String returns the string representation
5804func (s DkimAttributes) String() string {
5805	return awsutil.Prettify(s)
5806}
5807
5808// GoString returns the string representation
5809func (s DkimAttributes) GoString() string {
5810	return s.String()
5811}
5812
5813// SetSigningEnabled sets the SigningEnabled field's value.
5814func (s *DkimAttributes) SetSigningEnabled(v bool) *DkimAttributes {
5815	s.SigningEnabled = &v
5816	return s
5817}
5818
5819// SetStatus sets the Status field's value.
5820func (s *DkimAttributes) SetStatus(v string) *DkimAttributes {
5821	s.Status = &v
5822	return s
5823}
5824
5825// SetTokens sets the Tokens field's value.
5826func (s *DkimAttributes) SetTokens(v []*string) *DkimAttributes {
5827	s.Tokens = v
5828	return s
5829}
5830
5831// An object that contains the deliverability data for a specific campaign.
5832// This data is available for a campaign only if the campaign sent email by
5833// using a domain that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
5834// operation).
5835type DomainDeliverabilityCampaign struct {
5836	_ struct{} `type:"structure"`
5837
5838	// The unique identifier for the campaign. Amazon Pinpoint automatically generates
5839	// and assigns this identifier to a campaign. This value is not the same as
5840	// the campaign identifier that Amazon Pinpoint assigns to campaigns that you
5841	// create and manage by using the Amazon Pinpoint API or the Amazon Pinpoint
5842	// console.
5843	CampaignId *string `type:"string"`
5844
5845	// The percentage of email messages that were deleted by recipients, without
5846	// being opened first. Due to technical limitations, this value only includes
5847	// recipients who opened the message by using an email client that supports
5848	// images.
5849	DeleteRate *float64 `type:"double"`
5850
5851	// The major email providers who handled the email message.
5852	Esps []*string `type:"list"`
5853
5854	// The first time, in Unix time format, when the email message was delivered
5855	// to any recipient's inbox. This value can help you determine how long it took
5856	// for a campaign to deliver an email message.
5857	FirstSeenDateTime *time.Time `type:"timestamp"`
5858
5859	// The verified email address that the email message was sent from.
5860	FromAddress *string `type:"string"`
5861
5862	// The URL of an image that contains a snapshot of the email message that was
5863	// sent.
5864	ImageUrl *string `type:"string"`
5865
5866	// The number of email messages that were delivered to recipients’ inboxes.
5867	InboxCount *int64 `type:"long"`
5868
5869	// The last time, in Unix time format, when the email message was delivered
5870	// to any recipient's inbox. This value can help you determine how long it took
5871	// for a campaign to deliver an email message.
5872	LastSeenDateTime *time.Time `type:"timestamp"`
5873
5874	// The projected number of recipients that the email message was sent to.
5875	ProjectedVolume *int64 `type:"long"`
5876
5877	// The percentage of email messages that were opened and then deleted by recipients.
5878	// Due to technical limitations, this value only includes recipients who opened
5879	// the message by using an email client that supports images.
5880	ReadDeleteRate *float64 `type:"double"`
5881
5882	// The percentage of email messages that were opened by recipients. Due to technical
5883	// limitations, this value only includes recipients who opened the message by
5884	// using an email client that supports images.
5885	ReadRate *float64 `type:"double"`
5886
5887	// The IP addresses that were used to send the email message.
5888	SendingIps []*string `type:"list"`
5889
5890	// The number of email messages that were delivered to recipients' spam or junk
5891	// mail folders.
5892	SpamCount *int64 `type:"long"`
5893
5894	// The subject line, or title, of the email message.
5895	Subject *string `type:"string"`
5896}
5897
5898// String returns the string representation
5899func (s DomainDeliverabilityCampaign) String() string {
5900	return awsutil.Prettify(s)
5901}
5902
5903// GoString returns the string representation
5904func (s DomainDeliverabilityCampaign) GoString() string {
5905	return s.String()
5906}
5907
5908// SetCampaignId sets the CampaignId field's value.
5909func (s *DomainDeliverabilityCampaign) SetCampaignId(v string) *DomainDeliverabilityCampaign {
5910	s.CampaignId = &v
5911	return s
5912}
5913
5914// SetDeleteRate sets the DeleteRate field's value.
5915func (s *DomainDeliverabilityCampaign) SetDeleteRate(v float64) *DomainDeliverabilityCampaign {
5916	s.DeleteRate = &v
5917	return s
5918}
5919
5920// SetEsps sets the Esps field's value.
5921func (s *DomainDeliverabilityCampaign) SetEsps(v []*string) *DomainDeliverabilityCampaign {
5922	s.Esps = v
5923	return s
5924}
5925
5926// SetFirstSeenDateTime sets the FirstSeenDateTime field's value.
5927func (s *DomainDeliverabilityCampaign) SetFirstSeenDateTime(v time.Time) *DomainDeliverabilityCampaign {
5928	s.FirstSeenDateTime = &v
5929	return s
5930}
5931
5932// SetFromAddress sets the FromAddress field's value.
5933func (s *DomainDeliverabilityCampaign) SetFromAddress(v string) *DomainDeliverabilityCampaign {
5934	s.FromAddress = &v
5935	return s
5936}
5937
5938// SetImageUrl sets the ImageUrl field's value.
5939func (s *DomainDeliverabilityCampaign) SetImageUrl(v string) *DomainDeliverabilityCampaign {
5940	s.ImageUrl = &v
5941	return s
5942}
5943
5944// SetInboxCount sets the InboxCount field's value.
5945func (s *DomainDeliverabilityCampaign) SetInboxCount(v int64) *DomainDeliverabilityCampaign {
5946	s.InboxCount = &v
5947	return s
5948}
5949
5950// SetLastSeenDateTime sets the LastSeenDateTime field's value.
5951func (s *DomainDeliverabilityCampaign) SetLastSeenDateTime(v time.Time) *DomainDeliverabilityCampaign {
5952	s.LastSeenDateTime = &v
5953	return s
5954}
5955
5956// SetProjectedVolume sets the ProjectedVolume field's value.
5957func (s *DomainDeliverabilityCampaign) SetProjectedVolume(v int64) *DomainDeliverabilityCampaign {
5958	s.ProjectedVolume = &v
5959	return s
5960}
5961
5962// SetReadDeleteRate sets the ReadDeleteRate field's value.
5963func (s *DomainDeliverabilityCampaign) SetReadDeleteRate(v float64) *DomainDeliverabilityCampaign {
5964	s.ReadDeleteRate = &v
5965	return s
5966}
5967
5968// SetReadRate sets the ReadRate field's value.
5969func (s *DomainDeliverabilityCampaign) SetReadRate(v float64) *DomainDeliverabilityCampaign {
5970	s.ReadRate = &v
5971	return s
5972}
5973
5974// SetSendingIps sets the SendingIps field's value.
5975func (s *DomainDeliverabilityCampaign) SetSendingIps(v []*string) *DomainDeliverabilityCampaign {
5976	s.SendingIps = v
5977	return s
5978}
5979
5980// SetSpamCount sets the SpamCount field's value.
5981func (s *DomainDeliverabilityCampaign) SetSpamCount(v int64) *DomainDeliverabilityCampaign {
5982	s.SpamCount = &v
5983	return s
5984}
5985
5986// SetSubject sets the Subject field's value.
5987func (s *DomainDeliverabilityCampaign) SetSubject(v string) *DomainDeliverabilityCampaign {
5988	s.Subject = &v
5989	return s
5990}
5991
5992// An object that contains information about the Deliverability dashboard subscription
5993// for a verified domain that you use to send email and currently has an active
5994// Deliverability dashboard subscription. If a Deliverability dashboard subscription
5995// is active for a domain, you gain access to reputation, inbox placement, and
5996// other metrics for the domain.
5997type DomainDeliverabilityTrackingOption struct {
5998	_ struct{} `type:"structure"`
5999
6000	// A verified domain that’s associated with your AWS account and currently
6001	// has an active Deliverability dashboard subscription.
6002	Domain *string `type:"string"`
6003
6004	// An object that contains information about the inbox placement data settings
6005	// for the domain.
6006	InboxPlacementTrackingOption *InboxPlacementTrackingOption `type:"structure"`
6007
6008	// The date, in Unix time format, when you enabled the Deliverability dashboard
6009	// for the domain.
6010	SubscriptionStartDate *time.Time `type:"timestamp"`
6011}
6012
6013// String returns the string representation
6014func (s DomainDeliverabilityTrackingOption) String() string {
6015	return awsutil.Prettify(s)
6016}
6017
6018// GoString returns the string representation
6019func (s DomainDeliverabilityTrackingOption) GoString() string {
6020	return s.String()
6021}
6022
6023// SetDomain sets the Domain field's value.
6024func (s *DomainDeliverabilityTrackingOption) SetDomain(v string) *DomainDeliverabilityTrackingOption {
6025	s.Domain = &v
6026	return s
6027}
6028
6029// SetInboxPlacementTrackingOption sets the InboxPlacementTrackingOption field's value.
6030func (s *DomainDeliverabilityTrackingOption) SetInboxPlacementTrackingOption(v *InboxPlacementTrackingOption) *DomainDeliverabilityTrackingOption {
6031	s.InboxPlacementTrackingOption = v
6032	return s
6033}
6034
6035// SetSubscriptionStartDate sets the SubscriptionStartDate field's value.
6036func (s *DomainDeliverabilityTrackingOption) SetSubscriptionStartDate(v time.Time) *DomainDeliverabilityTrackingOption {
6037	s.SubscriptionStartDate = &v
6038	return s
6039}
6040
6041// An object that contains inbox placement data for email sent from one of your
6042// email domains to a specific email provider.
6043type DomainIspPlacement struct {
6044	_ struct{} `type:"structure"`
6045
6046	// The percentage of messages that were sent from the selected domain to the
6047	// specified email provider that arrived in recipients' inboxes.
6048	InboxPercentage *float64 `type:"double"`
6049
6050	// The total number of messages that were sent from the selected domain to the
6051	// specified email provider that arrived in recipients' inboxes.
6052	InboxRawCount *int64 `type:"long"`
6053
6054	// The name of the email provider that the inbox placement data applies to.
6055	IspName *string `type:"string"`
6056
6057	// The percentage of messages that were sent from the selected domain to the
6058	// specified email provider that arrived in recipients' spam or junk mail folders.
6059	SpamPercentage *float64 `type:"double"`
6060
6061	// The total number of messages that were sent from the selected domain to the
6062	// specified email provider that arrived in recipients' spam or junk mail folders.
6063	SpamRawCount *int64 `type:"long"`
6064}
6065
6066// String returns the string representation
6067func (s DomainIspPlacement) String() string {
6068	return awsutil.Prettify(s)
6069}
6070
6071// GoString returns the string representation
6072func (s DomainIspPlacement) GoString() string {
6073	return s.String()
6074}
6075
6076// SetInboxPercentage sets the InboxPercentage field's value.
6077func (s *DomainIspPlacement) SetInboxPercentage(v float64) *DomainIspPlacement {
6078	s.InboxPercentage = &v
6079	return s
6080}
6081
6082// SetInboxRawCount sets the InboxRawCount field's value.
6083func (s *DomainIspPlacement) SetInboxRawCount(v int64) *DomainIspPlacement {
6084	s.InboxRawCount = &v
6085	return s
6086}
6087
6088// SetIspName sets the IspName field's value.
6089func (s *DomainIspPlacement) SetIspName(v string) *DomainIspPlacement {
6090	s.IspName = &v
6091	return s
6092}
6093
6094// SetSpamPercentage sets the SpamPercentage field's value.
6095func (s *DomainIspPlacement) SetSpamPercentage(v float64) *DomainIspPlacement {
6096	s.SpamPercentage = &v
6097	return s
6098}
6099
6100// SetSpamRawCount sets the SpamRawCount field's value.
6101func (s *DomainIspPlacement) SetSpamRawCount(v int64) *DomainIspPlacement {
6102	s.SpamRawCount = &v
6103	return s
6104}
6105
6106// An object that defines the entire content of the email, including the message
6107// headers and the body content. You can create a simple email message, in which
6108// you specify the subject and the text and HTML versions of the message body.
6109// You can also create raw messages, in which you specify a complete MIME-formatted
6110// message. Raw messages can include attachments and custom headers.
6111type EmailContent struct {
6112	_ struct{} `type:"structure"`
6113
6114	// The raw email message. The message has to meet the following criteria:
6115	//
6116	//    * The message has to contain a header and a body, separated by one blank
6117	//    line.
6118	//
6119	//    * All of the required header fields must be present in the message.
6120	//
6121	//    * Each part of a multipart MIME message must be formatted properly.
6122	//
6123	//    * If you include attachments, they must be in a file format that Amazon
6124	//    Pinpoint supports.
6125	//
6126	//    * The entire message must be Base64 encoded.
6127	//
6128	//    * If any of the MIME parts in your message contain content that is outside
6129	//    of the 7-bit ASCII character range, you should encode that content to
6130	//    ensure that recipients' email clients render the message properly.
6131	//
6132	//    * The length of any single line of text in the message can't exceed 1,000
6133	//    characters. This restriction is defined in RFC 5321 (https://tools.ietf.org/html/rfc5321).
6134	Raw *RawMessage `type:"structure"`
6135
6136	// The simple email message. The message consists of a subject and a message
6137	// body.
6138	Simple *Message `type:"structure"`
6139
6140	// The template to use for the email message.
6141	Template *Template `type:"structure"`
6142}
6143
6144// String returns the string representation
6145func (s EmailContent) String() string {
6146	return awsutil.Prettify(s)
6147}
6148
6149// GoString returns the string representation
6150func (s EmailContent) GoString() string {
6151	return s.String()
6152}
6153
6154// Validate inspects the fields of the type to determine if they are valid.
6155func (s *EmailContent) Validate() error {
6156	invalidParams := request.ErrInvalidParams{Context: "EmailContent"}
6157	if s.Raw != nil {
6158		if err := s.Raw.Validate(); err != nil {
6159			invalidParams.AddNested("Raw", err.(request.ErrInvalidParams))
6160		}
6161	}
6162	if s.Simple != nil {
6163		if err := s.Simple.Validate(); err != nil {
6164			invalidParams.AddNested("Simple", err.(request.ErrInvalidParams))
6165		}
6166	}
6167
6168	if invalidParams.Len() > 0 {
6169		return invalidParams
6170	}
6171	return nil
6172}
6173
6174// SetRaw sets the Raw field's value.
6175func (s *EmailContent) SetRaw(v *RawMessage) *EmailContent {
6176	s.Raw = v
6177	return s
6178}
6179
6180// SetSimple sets the Simple field's value.
6181func (s *EmailContent) SetSimple(v *Message) *EmailContent {
6182	s.Simple = v
6183	return s
6184}
6185
6186// SetTemplate sets the Template field's value.
6187func (s *EmailContent) SetTemplate(v *Template) *EmailContent {
6188	s.Template = v
6189	return s
6190}
6191
6192// In Amazon Pinpoint, events include message sends, deliveries, opens, clicks,
6193// bounces, and complaints. Event destinations are places that you can send
6194// information about these events to. For example, you can send event data to
6195// Amazon SNS to receive notifications when you receive bounces or complaints,
6196// or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
6197// long-term storage.
6198type EventDestination struct {
6199	_ struct{} `type:"structure"`
6200
6201	// An object that defines an Amazon CloudWatch destination for email events.
6202	// You can use Amazon CloudWatch to monitor and gain insights on your email
6203	// sending metrics.
6204	CloudWatchDestination *CloudWatchDestination `type:"structure"`
6205
6206	// If true, the event destination is enabled. When the event destination is
6207	// enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.
6208	//
6209	// If false, the event destination is disabled. When the event destination is
6210	// disabled, events aren't sent to the specified destinations.
6211	Enabled *bool `type:"boolean"`
6212
6213	// An object that defines an Amazon Kinesis Data Firehose destination for email
6214	// events. You can use Amazon Kinesis Data Firehose to stream data to other
6215	// services, such as Amazon S3 and Amazon Redshift.
6216	KinesisFirehoseDestination *KinesisFirehoseDestination `type:"structure"`
6217
6218	// The types of events that Amazon Pinpoint sends to the specified event destinations.
6219	//
6220	// MatchingEventTypes is a required field
6221	MatchingEventTypes []*string `type:"list" required:"true"`
6222
6223	// A name that identifies the event destination.
6224	//
6225	// Name is a required field
6226	Name *string `type:"string" required:"true"`
6227
6228	// An object that defines a Amazon Pinpoint destination for email events. You
6229	// can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects.
6230	// You can use these attributes to create segments for your campaigns.
6231	PinpointDestination *PinpointDestination `type:"structure"`
6232
6233	// An object that defines an Amazon SNS destination for email events. You can
6234	// use Amazon SNS to send notification when certain email events occur.
6235	SnsDestination *SnsDestination `type:"structure"`
6236}
6237
6238// String returns the string representation
6239func (s EventDestination) String() string {
6240	return awsutil.Prettify(s)
6241}
6242
6243// GoString returns the string representation
6244func (s EventDestination) GoString() string {
6245	return s.String()
6246}
6247
6248// SetCloudWatchDestination sets the CloudWatchDestination field's value.
6249func (s *EventDestination) SetCloudWatchDestination(v *CloudWatchDestination) *EventDestination {
6250	s.CloudWatchDestination = v
6251	return s
6252}
6253
6254// SetEnabled sets the Enabled field's value.
6255func (s *EventDestination) SetEnabled(v bool) *EventDestination {
6256	s.Enabled = &v
6257	return s
6258}
6259
6260// SetKinesisFirehoseDestination sets the KinesisFirehoseDestination field's value.
6261func (s *EventDestination) SetKinesisFirehoseDestination(v *KinesisFirehoseDestination) *EventDestination {
6262	s.KinesisFirehoseDestination = v
6263	return s
6264}
6265
6266// SetMatchingEventTypes sets the MatchingEventTypes field's value.
6267func (s *EventDestination) SetMatchingEventTypes(v []*string) *EventDestination {
6268	s.MatchingEventTypes = v
6269	return s
6270}
6271
6272// SetName sets the Name field's value.
6273func (s *EventDestination) SetName(v string) *EventDestination {
6274	s.Name = &v
6275	return s
6276}
6277
6278// SetPinpointDestination sets the PinpointDestination field's value.
6279func (s *EventDestination) SetPinpointDestination(v *PinpointDestination) *EventDestination {
6280	s.PinpointDestination = v
6281	return s
6282}
6283
6284// SetSnsDestination sets the SnsDestination field's value.
6285func (s *EventDestination) SetSnsDestination(v *SnsDestination) *EventDestination {
6286	s.SnsDestination = v
6287	return s
6288}
6289
6290// An object that defines the event destination. Specifically, it defines which
6291// services receive events from emails sent using the configuration set that
6292// the event destination is associated with. Also defines the types of events
6293// that are sent to the event destination.
6294type EventDestinationDefinition struct {
6295	_ struct{} `type:"structure"`
6296
6297	// An object that defines an Amazon CloudWatch destination for email events.
6298	// You can use Amazon CloudWatch to monitor and gain insights on your email
6299	// sending metrics.
6300	CloudWatchDestination *CloudWatchDestination `type:"structure"`
6301
6302	// If true, the event destination is enabled. When the event destination is
6303	// enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.
6304	//
6305	// If false, the event destination is disabled. When the event destination is
6306	// disabled, events aren't sent to the specified destinations.
6307	Enabled *bool `type:"boolean"`
6308
6309	// An object that defines an Amazon Kinesis Data Firehose destination for email
6310	// events. You can use Amazon Kinesis Data Firehose to stream data to other
6311	// services, such as Amazon S3 and Amazon Redshift.
6312	KinesisFirehoseDestination *KinesisFirehoseDestination `type:"structure"`
6313
6314	// An array that specifies which events Amazon Pinpoint should send to the destinations
6315	// in this EventDestinationDefinition.
6316	MatchingEventTypes []*string `type:"list"`
6317
6318	// An object that defines a Amazon Pinpoint destination for email events. You
6319	// can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects.
6320	// You can use these attributes to create segments for your campaigns.
6321	PinpointDestination *PinpointDestination `type:"structure"`
6322
6323	// An object that defines an Amazon SNS destination for email events. You can
6324	// use Amazon SNS to send notification when certain email events occur.
6325	SnsDestination *SnsDestination `type:"structure"`
6326}
6327
6328// String returns the string representation
6329func (s EventDestinationDefinition) String() string {
6330	return awsutil.Prettify(s)
6331}
6332
6333// GoString returns the string representation
6334func (s EventDestinationDefinition) GoString() string {
6335	return s.String()
6336}
6337
6338// Validate inspects the fields of the type to determine if they are valid.
6339func (s *EventDestinationDefinition) Validate() error {
6340	invalidParams := request.ErrInvalidParams{Context: "EventDestinationDefinition"}
6341	if s.CloudWatchDestination != nil {
6342		if err := s.CloudWatchDestination.Validate(); err != nil {
6343			invalidParams.AddNested("CloudWatchDestination", err.(request.ErrInvalidParams))
6344		}
6345	}
6346	if s.KinesisFirehoseDestination != nil {
6347		if err := s.KinesisFirehoseDestination.Validate(); err != nil {
6348			invalidParams.AddNested("KinesisFirehoseDestination", err.(request.ErrInvalidParams))
6349		}
6350	}
6351	if s.SnsDestination != nil {
6352		if err := s.SnsDestination.Validate(); err != nil {
6353			invalidParams.AddNested("SnsDestination", err.(request.ErrInvalidParams))
6354		}
6355	}
6356
6357	if invalidParams.Len() > 0 {
6358		return invalidParams
6359	}
6360	return nil
6361}
6362
6363// SetCloudWatchDestination sets the CloudWatchDestination field's value.
6364func (s *EventDestinationDefinition) SetCloudWatchDestination(v *CloudWatchDestination) *EventDestinationDefinition {
6365	s.CloudWatchDestination = v
6366	return s
6367}
6368
6369// SetEnabled sets the Enabled field's value.
6370func (s *EventDestinationDefinition) SetEnabled(v bool) *EventDestinationDefinition {
6371	s.Enabled = &v
6372	return s
6373}
6374
6375// SetKinesisFirehoseDestination sets the KinesisFirehoseDestination field's value.
6376func (s *EventDestinationDefinition) SetKinesisFirehoseDestination(v *KinesisFirehoseDestination) *EventDestinationDefinition {
6377	s.KinesisFirehoseDestination = v
6378	return s
6379}
6380
6381// SetMatchingEventTypes sets the MatchingEventTypes field's value.
6382func (s *EventDestinationDefinition) SetMatchingEventTypes(v []*string) *EventDestinationDefinition {
6383	s.MatchingEventTypes = v
6384	return s
6385}
6386
6387// SetPinpointDestination sets the PinpointDestination field's value.
6388func (s *EventDestinationDefinition) SetPinpointDestination(v *PinpointDestination) *EventDestinationDefinition {
6389	s.PinpointDestination = v
6390	return s
6391}
6392
6393// SetSnsDestination sets the SnsDestination field's value.
6394func (s *EventDestinationDefinition) SetSnsDestination(v *SnsDestination) *EventDestinationDefinition {
6395	s.SnsDestination = v
6396	return s
6397}
6398
6399// A request to obtain information about the email-sending capabilities of your
6400// Amazon Pinpoint account.
6401type GetAccountInput struct {
6402	_ struct{} `type:"structure"`
6403}
6404
6405// String returns the string representation
6406func (s GetAccountInput) String() string {
6407	return awsutil.Prettify(s)
6408}
6409
6410// GoString returns the string representation
6411func (s GetAccountInput) GoString() string {
6412	return s.String()
6413}
6414
6415// A list of details about the email-sending capabilities of your Amazon Pinpoint
6416// account in the current AWS Region.
6417type GetAccountOutput struct {
6418	_ struct{} `type:"structure"`
6419
6420	// Indicates whether or not the automatic warm-up feature is enabled for dedicated
6421	// IP addresses that are associated with your account.
6422	DedicatedIpAutoWarmupEnabled *bool `type:"boolean"`
6423
6424	// The reputation status of your Amazon Pinpoint account. The status can be
6425	// one of the following:
6426	//
6427	//    * HEALTHY – There are no reputation-related issues that currently impact
6428	//    your account.
6429	//
6430	//    * PROBATION – We've identified some issues with your Amazon Pinpoint
6431	//    account. We're placing your account under review while you work on correcting
6432	//    these issues.
6433	//
6434	//    * SHUTDOWN – Your account's ability to send email is currently paused
6435	//    because of an issue with the email sent from your account. When you correct
6436	//    the issue, you can contact us and request that your account's ability
6437	//    to send email is resumed.
6438	EnforcementStatus *string `type:"string"`
6439
6440	// Indicates whether or not your account has production access in the current
6441	// AWS Region.
6442	//
6443	// If the value is false, then your account is in the sandbox. When your account
6444	// is in the sandbox, you can only send email to verified identities. Additionally,
6445	// the maximum number of emails you can send in a 24-hour period (your sending
6446	// quota) is 200, and the maximum number of emails you can send per second (your
6447	// maximum sending rate) is 1.
6448	//
6449	// If the value is true, then your account has production access. When your
6450	// account has production access, you can send email to any address. The sending
6451	// quota and maximum sending rate for your account vary based on your specific
6452	// use case.
6453	ProductionAccessEnabled *bool `type:"boolean"`
6454
6455	// An object that contains information about the per-day and per-second sending
6456	// limits for your Amazon Pinpoint account in the current AWS Region.
6457	SendQuota *SendQuota `type:"structure"`
6458
6459	// Indicates whether or not email sending is enabled for your Amazon Pinpoint
6460	// account in the current AWS Region.
6461	SendingEnabled *bool `type:"boolean"`
6462}
6463
6464// String returns the string representation
6465func (s GetAccountOutput) String() string {
6466	return awsutil.Prettify(s)
6467}
6468
6469// GoString returns the string representation
6470func (s GetAccountOutput) GoString() string {
6471	return s.String()
6472}
6473
6474// SetDedicatedIpAutoWarmupEnabled sets the DedicatedIpAutoWarmupEnabled field's value.
6475func (s *GetAccountOutput) SetDedicatedIpAutoWarmupEnabled(v bool) *GetAccountOutput {
6476	s.DedicatedIpAutoWarmupEnabled = &v
6477	return s
6478}
6479
6480// SetEnforcementStatus sets the EnforcementStatus field's value.
6481func (s *GetAccountOutput) SetEnforcementStatus(v string) *GetAccountOutput {
6482	s.EnforcementStatus = &v
6483	return s
6484}
6485
6486// SetProductionAccessEnabled sets the ProductionAccessEnabled field's value.
6487func (s *GetAccountOutput) SetProductionAccessEnabled(v bool) *GetAccountOutput {
6488	s.ProductionAccessEnabled = &v
6489	return s
6490}
6491
6492// SetSendQuota sets the SendQuota field's value.
6493func (s *GetAccountOutput) SetSendQuota(v *SendQuota) *GetAccountOutput {
6494	s.SendQuota = v
6495	return s
6496}
6497
6498// SetSendingEnabled sets the SendingEnabled field's value.
6499func (s *GetAccountOutput) SetSendingEnabled(v bool) *GetAccountOutput {
6500	s.SendingEnabled = &v
6501	return s
6502}
6503
6504// A request to retrieve a list of the blacklists that your dedicated IP addresses
6505// appear on.
6506type GetBlacklistReportsInput struct {
6507	_ struct{} `type:"structure"`
6508
6509	// A list of IP addresses that you want to retrieve blacklist information about.
6510	// You can only specify the dedicated IP addresses that you use to send email
6511	// using Amazon Pinpoint or Amazon SES.
6512	//
6513	// BlacklistItemNames is a required field
6514	BlacklistItemNames []*string `location:"querystring" locationName:"BlacklistItemNames" type:"list" required:"true"`
6515}
6516
6517// String returns the string representation
6518func (s GetBlacklistReportsInput) String() string {
6519	return awsutil.Prettify(s)
6520}
6521
6522// GoString returns the string representation
6523func (s GetBlacklistReportsInput) GoString() string {
6524	return s.String()
6525}
6526
6527// Validate inspects the fields of the type to determine if they are valid.
6528func (s *GetBlacklistReportsInput) Validate() error {
6529	invalidParams := request.ErrInvalidParams{Context: "GetBlacklistReportsInput"}
6530	if s.BlacklistItemNames == nil {
6531		invalidParams.Add(request.NewErrParamRequired("BlacklistItemNames"))
6532	}
6533
6534	if invalidParams.Len() > 0 {
6535		return invalidParams
6536	}
6537	return nil
6538}
6539
6540// SetBlacklistItemNames sets the BlacklistItemNames field's value.
6541func (s *GetBlacklistReportsInput) SetBlacklistItemNames(v []*string) *GetBlacklistReportsInput {
6542	s.BlacklistItemNames = v
6543	return s
6544}
6545
6546// An object that contains information about blacklist events.
6547type GetBlacklistReportsOutput struct {
6548	_ struct{} `type:"structure"`
6549
6550	// An object that contains information about a blacklist that one of your dedicated
6551	// IP addresses appears on.
6552	//
6553	// BlacklistReport is a required field
6554	BlacklistReport map[string][]*BlacklistEntry `type:"map" required:"true"`
6555}
6556
6557// String returns the string representation
6558func (s GetBlacklistReportsOutput) String() string {
6559	return awsutil.Prettify(s)
6560}
6561
6562// GoString returns the string representation
6563func (s GetBlacklistReportsOutput) GoString() string {
6564	return s.String()
6565}
6566
6567// SetBlacklistReport sets the BlacklistReport field's value.
6568func (s *GetBlacklistReportsOutput) SetBlacklistReport(v map[string][]*BlacklistEntry) *GetBlacklistReportsOutput {
6569	s.BlacklistReport = v
6570	return s
6571}
6572
6573// A request to obtain information about the event destinations for a configuration
6574// set.
6575type GetConfigurationSetEventDestinationsInput struct {
6576	_ struct{} `type:"structure"`
6577
6578	// The name of the configuration set that contains the event destination.
6579	//
6580	// ConfigurationSetName is a required field
6581	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
6582}
6583
6584// String returns the string representation
6585func (s GetConfigurationSetEventDestinationsInput) String() string {
6586	return awsutil.Prettify(s)
6587}
6588
6589// GoString returns the string representation
6590func (s GetConfigurationSetEventDestinationsInput) GoString() string {
6591	return s.String()
6592}
6593
6594// Validate inspects the fields of the type to determine if they are valid.
6595func (s *GetConfigurationSetEventDestinationsInput) Validate() error {
6596	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationSetEventDestinationsInput"}
6597	if s.ConfigurationSetName == nil {
6598		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
6599	}
6600	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
6601		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
6602	}
6603
6604	if invalidParams.Len() > 0 {
6605		return invalidParams
6606	}
6607	return nil
6608}
6609
6610// SetConfigurationSetName sets the ConfigurationSetName field's value.
6611func (s *GetConfigurationSetEventDestinationsInput) SetConfigurationSetName(v string) *GetConfigurationSetEventDestinationsInput {
6612	s.ConfigurationSetName = &v
6613	return s
6614}
6615
6616// Information about an event destination for a configuration set.
6617type GetConfigurationSetEventDestinationsOutput struct {
6618	_ struct{} `type:"structure"`
6619
6620	// An array that includes all of the events destinations that have been configured
6621	// for the configuration set.
6622	EventDestinations []*EventDestination `type:"list"`
6623}
6624
6625// String returns the string representation
6626func (s GetConfigurationSetEventDestinationsOutput) String() string {
6627	return awsutil.Prettify(s)
6628}
6629
6630// GoString returns the string representation
6631func (s GetConfigurationSetEventDestinationsOutput) GoString() string {
6632	return s.String()
6633}
6634
6635// SetEventDestinations sets the EventDestinations field's value.
6636func (s *GetConfigurationSetEventDestinationsOutput) SetEventDestinations(v []*EventDestination) *GetConfigurationSetEventDestinationsOutput {
6637	s.EventDestinations = v
6638	return s
6639}
6640
6641// A request to obtain information about a configuration set.
6642type GetConfigurationSetInput struct {
6643	_ struct{} `type:"structure"`
6644
6645	// The name of the configuration set that you want to obtain more information
6646	// about.
6647	//
6648	// ConfigurationSetName is a required field
6649	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
6650}
6651
6652// String returns the string representation
6653func (s GetConfigurationSetInput) String() string {
6654	return awsutil.Prettify(s)
6655}
6656
6657// GoString returns the string representation
6658func (s GetConfigurationSetInput) GoString() string {
6659	return s.String()
6660}
6661
6662// Validate inspects the fields of the type to determine if they are valid.
6663func (s *GetConfigurationSetInput) Validate() error {
6664	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationSetInput"}
6665	if s.ConfigurationSetName == nil {
6666		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
6667	}
6668	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
6669		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
6670	}
6671
6672	if invalidParams.Len() > 0 {
6673		return invalidParams
6674	}
6675	return nil
6676}
6677
6678// SetConfigurationSetName sets the ConfigurationSetName field's value.
6679func (s *GetConfigurationSetInput) SetConfigurationSetName(v string) *GetConfigurationSetInput {
6680	s.ConfigurationSetName = &v
6681	return s
6682}
6683
6684// Information about a configuration set.
6685type GetConfigurationSetOutput struct {
6686	_ struct{} `type:"structure"`
6687
6688	// The name of the configuration set.
6689	ConfigurationSetName *string `type:"string"`
6690
6691	// An object that defines the dedicated IP pool that is used to send emails
6692	// that you send using the configuration set.
6693	DeliveryOptions *DeliveryOptions `type:"structure"`
6694
6695	// An object that defines whether or not Amazon Pinpoint collects reputation
6696	// metrics for the emails that you send that use the configuration set.
6697	ReputationOptions *ReputationOptions `type:"structure"`
6698
6699	// An object that defines whether or not Amazon Pinpoint can send email that
6700	// you send using the configuration set.
6701	SendingOptions *SendingOptions `type:"structure"`
6702
6703	// An array of objects that define the tags (keys and values) that are associated
6704	// with the configuration set.
6705	Tags []*Tag `type:"list"`
6706
6707	// An object that defines the open and click tracking options for emails that
6708	// you send using the configuration set.
6709	TrackingOptions *TrackingOptions `type:"structure"`
6710}
6711
6712// String returns the string representation
6713func (s GetConfigurationSetOutput) String() string {
6714	return awsutil.Prettify(s)
6715}
6716
6717// GoString returns the string representation
6718func (s GetConfigurationSetOutput) GoString() string {
6719	return s.String()
6720}
6721
6722// SetConfigurationSetName sets the ConfigurationSetName field's value.
6723func (s *GetConfigurationSetOutput) SetConfigurationSetName(v string) *GetConfigurationSetOutput {
6724	s.ConfigurationSetName = &v
6725	return s
6726}
6727
6728// SetDeliveryOptions sets the DeliveryOptions field's value.
6729func (s *GetConfigurationSetOutput) SetDeliveryOptions(v *DeliveryOptions) *GetConfigurationSetOutput {
6730	s.DeliveryOptions = v
6731	return s
6732}
6733
6734// SetReputationOptions sets the ReputationOptions field's value.
6735func (s *GetConfigurationSetOutput) SetReputationOptions(v *ReputationOptions) *GetConfigurationSetOutput {
6736	s.ReputationOptions = v
6737	return s
6738}
6739
6740// SetSendingOptions sets the SendingOptions field's value.
6741func (s *GetConfigurationSetOutput) SetSendingOptions(v *SendingOptions) *GetConfigurationSetOutput {
6742	s.SendingOptions = v
6743	return s
6744}
6745
6746// SetTags sets the Tags field's value.
6747func (s *GetConfigurationSetOutput) SetTags(v []*Tag) *GetConfigurationSetOutput {
6748	s.Tags = v
6749	return s
6750}
6751
6752// SetTrackingOptions sets the TrackingOptions field's value.
6753func (s *GetConfigurationSetOutput) SetTrackingOptions(v *TrackingOptions) *GetConfigurationSetOutput {
6754	s.TrackingOptions = v
6755	return s
6756}
6757
6758// A request to obtain more information about a dedicated IP address.
6759type GetDedicatedIpInput struct {
6760	_ struct{} `type:"structure"`
6761
6762	// The IP address that you want to obtain more information about. The value
6763	// you specify has to be a dedicated IP address that's assocaited with your
6764	// Amazon Pinpoint account.
6765	//
6766	// Ip is a required field
6767	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
6768}
6769
6770// String returns the string representation
6771func (s GetDedicatedIpInput) String() string {
6772	return awsutil.Prettify(s)
6773}
6774
6775// GoString returns the string representation
6776func (s GetDedicatedIpInput) GoString() string {
6777	return s.String()
6778}
6779
6780// Validate inspects the fields of the type to determine if they are valid.
6781func (s *GetDedicatedIpInput) Validate() error {
6782	invalidParams := request.ErrInvalidParams{Context: "GetDedicatedIpInput"}
6783	if s.Ip == nil {
6784		invalidParams.Add(request.NewErrParamRequired("Ip"))
6785	}
6786	if s.Ip != nil && len(*s.Ip) < 1 {
6787		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
6788	}
6789
6790	if invalidParams.Len() > 0 {
6791		return invalidParams
6792	}
6793	return nil
6794}
6795
6796// SetIp sets the Ip field's value.
6797func (s *GetDedicatedIpInput) SetIp(v string) *GetDedicatedIpInput {
6798	s.Ip = &v
6799	return s
6800}
6801
6802// Information about a dedicated IP address.
6803type GetDedicatedIpOutput struct {
6804	_ struct{} `type:"structure"`
6805
6806	// An object that contains information about a dedicated IP address.
6807	DedicatedIp *DedicatedIp `type:"structure"`
6808}
6809
6810// String returns the string representation
6811func (s GetDedicatedIpOutput) String() string {
6812	return awsutil.Prettify(s)
6813}
6814
6815// GoString returns the string representation
6816func (s GetDedicatedIpOutput) GoString() string {
6817	return s.String()
6818}
6819
6820// SetDedicatedIp sets the DedicatedIp field's value.
6821func (s *GetDedicatedIpOutput) SetDedicatedIp(v *DedicatedIp) *GetDedicatedIpOutput {
6822	s.DedicatedIp = v
6823	return s
6824}
6825
6826// A request to obtain more information about dedicated IP pools.
6827type GetDedicatedIpsInput struct {
6828	_ struct{} `type:"structure"`
6829
6830	// A token returned from a previous call to GetDedicatedIps to indicate the
6831	// position of the dedicated IP pool in the list of IP pools.
6832	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
6833
6834	// The number of results to show in a single call to GetDedicatedIpsRequest.
6835	// If the number of results is larger than the number you specified in this
6836	// parameter, then the response includes a NextToken element, which you can
6837	// use to obtain additional results.
6838	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
6839
6840	// The name of the IP pool that the dedicated IP address is associated with.
6841	PoolName *string `location:"querystring" locationName:"PoolName" type:"string"`
6842}
6843
6844// String returns the string representation
6845func (s GetDedicatedIpsInput) String() string {
6846	return awsutil.Prettify(s)
6847}
6848
6849// GoString returns the string representation
6850func (s GetDedicatedIpsInput) GoString() string {
6851	return s.String()
6852}
6853
6854// SetNextToken sets the NextToken field's value.
6855func (s *GetDedicatedIpsInput) SetNextToken(v string) *GetDedicatedIpsInput {
6856	s.NextToken = &v
6857	return s
6858}
6859
6860// SetPageSize sets the PageSize field's value.
6861func (s *GetDedicatedIpsInput) SetPageSize(v int64) *GetDedicatedIpsInput {
6862	s.PageSize = &v
6863	return s
6864}
6865
6866// SetPoolName sets the PoolName field's value.
6867func (s *GetDedicatedIpsInput) SetPoolName(v string) *GetDedicatedIpsInput {
6868	s.PoolName = &v
6869	return s
6870}
6871
6872// Information about the dedicated IP addresses that are associated with your
6873// Amazon Pinpoint account.
6874type GetDedicatedIpsOutput struct {
6875	_ struct{} `type:"structure"`
6876
6877	// A list of dedicated IP addresses that are reserved for use by your Amazon
6878	// Pinpoint account.
6879	DedicatedIps []*DedicatedIp `type:"list"`
6880
6881	// A token that indicates that there are additional dedicated IP addresses to
6882	// list. To view additional addresses, issue another request to GetDedicatedIps,
6883	// passing this token in the NextToken parameter.
6884	NextToken *string `type:"string"`
6885}
6886
6887// String returns the string representation
6888func (s GetDedicatedIpsOutput) String() string {
6889	return awsutil.Prettify(s)
6890}
6891
6892// GoString returns the string representation
6893func (s GetDedicatedIpsOutput) GoString() string {
6894	return s.String()
6895}
6896
6897// SetDedicatedIps sets the DedicatedIps field's value.
6898func (s *GetDedicatedIpsOutput) SetDedicatedIps(v []*DedicatedIp) *GetDedicatedIpsOutput {
6899	s.DedicatedIps = v
6900	return s
6901}
6902
6903// SetNextToken sets the NextToken field's value.
6904func (s *GetDedicatedIpsOutput) SetNextToken(v string) *GetDedicatedIpsOutput {
6905	s.NextToken = &v
6906	return s
6907}
6908
6909// Retrieve information about the status of the Deliverability dashboard for
6910// your Amazon Pinpoint account. When the Deliverability dashboard is enabled,
6911// you gain access to reputation, deliverability, and other metrics for the
6912// domains that you use to send email using Amazon Pinpoint. You also gain the
6913// ability to perform predictive inbox placement tests.
6914//
6915// When you use the Deliverability dashboard, you pay a monthly subscription
6916// charge, in addition to any other fees that you accrue by using Amazon Pinpoint.
6917// For more information about the features and cost of a Deliverability dashboard
6918// subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
6919type GetDeliverabilityDashboardOptionsInput struct {
6920	_ struct{} `type:"structure"`
6921}
6922
6923// String returns the string representation
6924func (s GetDeliverabilityDashboardOptionsInput) String() string {
6925	return awsutil.Prettify(s)
6926}
6927
6928// GoString returns the string representation
6929func (s GetDeliverabilityDashboardOptionsInput) GoString() string {
6930	return s.String()
6931}
6932
6933// An object that shows the status of the Deliverability dashboard for your
6934// Amazon Pinpoint account.
6935type GetDeliverabilityDashboardOptionsOutput struct {
6936	_ struct{} `type:"structure"`
6937
6938	// The current status of your Deliverability dashboard subscription. If this
6939	// value is PENDING_EXPIRATION, your subscription is scheduled to expire at
6940	// the end of the current calendar month.
6941	AccountStatus *string `type:"string" enum:"DeliverabilityDashboardAccountStatus"`
6942
6943	// An array of objects, one for each verified domain that you use to send email
6944	// and currently has an active Deliverability dashboard subscription that isn’t
6945	// scheduled to expire at the end of the current calendar month.
6946	ActiveSubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
6947
6948	// Specifies whether the Deliverability dashboard is enabled for your Amazon
6949	// Pinpoint account. If this value is true, the dashboard is enabled.
6950	//
6951	// DashboardEnabled is a required field
6952	DashboardEnabled *bool `type:"boolean" required:"true"`
6953
6954	// An array of objects, one for each verified domain that you use to send email
6955	// and currently has an active Deliverability dashboard subscription that's
6956	// scheduled to expire at the end of the current calendar month.
6957	PendingExpirationSubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
6958
6959	// The date, in Unix time format, when your current subscription to the Deliverability
6960	// dashboard is scheduled to expire, if your subscription is scheduled to expire
6961	// at the end of the current calendar month. This value is null if you have
6962	// an active subscription that isn’t due to expire at the end of the month.
6963	SubscriptionExpiryDate *time.Time `type:"timestamp"`
6964}
6965
6966// String returns the string representation
6967func (s GetDeliverabilityDashboardOptionsOutput) String() string {
6968	return awsutil.Prettify(s)
6969}
6970
6971// GoString returns the string representation
6972func (s GetDeliverabilityDashboardOptionsOutput) GoString() string {
6973	return s.String()
6974}
6975
6976// SetAccountStatus sets the AccountStatus field's value.
6977func (s *GetDeliverabilityDashboardOptionsOutput) SetAccountStatus(v string) *GetDeliverabilityDashboardOptionsOutput {
6978	s.AccountStatus = &v
6979	return s
6980}
6981
6982// SetActiveSubscribedDomains sets the ActiveSubscribedDomains field's value.
6983func (s *GetDeliverabilityDashboardOptionsOutput) SetActiveSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *GetDeliverabilityDashboardOptionsOutput {
6984	s.ActiveSubscribedDomains = v
6985	return s
6986}
6987
6988// SetDashboardEnabled sets the DashboardEnabled field's value.
6989func (s *GetDeliverabilityDashboardOptionsOutput) SetDashboardEnabled(v bool) *GetDeliverabilityDashboardOptionsOutput {
6990	s.DashboardEnabled = &v
6991	return s
6992}
6993
6994// SetPendingExpirationSubscribedDomains sets the PendingExpirationSubscribedDomains field's value.
6995func (s *GetDeliverabilityDashboardOptionsOutput) SetPendingExpirationSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *GetDeliverabilityDashboardOptionsOutput {
6996	s.PendingExpirationSubscribedDomains = v
6997	return s
6998}
6999
7000// SetSubscriptionExpiryDate sets the SubscriptionExpiryDate field's value.
7001func (s *GetDeliverabilityDashboardOptionsOutput) SetSubscriptionExpiryDate(v time.Time) *GetDeliverabilityDashboardOptionsOutput {
7002	s.SubscriptionExpiryDate = &v
7003	return s
7004}
7005
7006// A request to retrieve the results of a predictive inbox placement test.
7007type GetDeliverabilityTestReportInput struct {
7008	_ struct{} `type:"structure"`
7009
7010	// A unique string that identifies the predictive inbox placement test.
7011	//
7012	// ReportId is a required field
7013	ReportId *string `location:"uri" locationName:"ReportId" type:"string" required:"true"`
7014}
7015
7016// String returns the string representation
7017func (s GetDeliverabilityTestReportInput) String() string {
7018	return awsutil.Prettify(s)
7019}
7020
7021// GoString returns the string representation
7022func (s GetDeliverabilityTestReportInput) GoString() string {
7023	return s.String()
7024}
7025
7026// Validate inspects the fields of the type to determine if they are valid.
7027func (s *GetDeliverabilityTestReportInput) Validate() error {
7028	invalidParams := request.ErrInvalidParams{Context: "GetDeliverabilityTestReportInput"}
7029	if s.ReportId == nil {
7030		invalidParams.Add(request.NewErrParamRequired("ReportId"))
7031	}
7032	if s.ReportId != nil && len(*s.ReportId) < 1 {
7033		invalidParams.Add(request.NewErrParamMinLen("ReportId", 1))
7034	}
7035
7036	if invalidParams.Len() > 0 {
7037		return invalidParams
7038	}
7039	return nil
7040}
7041
7042// SetReportId sets the ReportId field's value.
7043func (s *GetDeliverabilityTestReportInput) SetReportId(v string) *GetDeliverabilityTestReportInput {
7044	s.ReportId = &v
7045	return s
7046}
7047
7048// The results of the predictive inbox placement test.
7049type GetDeliverabilityTestReportOutput struct {
7050	_ struct{} `type:"structure"`
7051
7052	// An object that contains the results of the predictive inbox placement test.
7053	//
7054	// DeliverabilityTestReport is a required field
7055	DeliverabilityTestReport *DeliverabilityTestReport `type:"structure" required:"true"`
7056
7057	// An object that describes how the test email was handled by several email
7058	// providers, including Gmail, Hotmail, Yahoo, AOL, and others.
7059	//
7060	// IspPlacements is a required field
7061	IspPlacements []*IspPlacement `type:"list" required:"true"`
7062
7063	// An object that contains the message that you sent when you performed this
7064	// predictive inbox placement test.
7065	Message *string `type:"string"`
7066
7067	// An object that specifies how many test messages that were sent during the
7068	// predictive inbox placement test were delivered to recipients' inboxes, how
7069	// many were sent to recipients' spam folders, and how many weren't delivered.
7070	//
7071	// OverallPlacement is a required field
7072	OverallPlacement *PlacementStatistics `type:"structure" required:"true"`
7073
7074	// An array of objects that define the tags (keys and values) that are associated
7075	// with the predictive inbox placement test.
7076	Tags []*Tag `type:"list"`
7077}
7078
7079// String returns the string representation
7080func (s GetDeliverabilityTestReportOutput) String() string {
7081	return awsutil.Prettify(s)
7082}
7083
7084// GoString returns the string representation
7085func (s GetDeliverabilityTestReportOutput) GoString() string {
7086	return s.String()
7087}
7088
7089// SetDeliverabilityTestReport sets the DeliverabilityTestReport field's value.
7090func (s *GetDeliverabilityTestReportOutput) SetDeliverabilityTestReport(v *DeliverabilityTestReport) *GetDeliverabilityTestReportOutput {
7091	s.DeliverabilityTestReport = v
7092	return s
7093}
7094
7095// SetIspPlacements sets the IspPlacements field's value.
7096func (s *GetDeliverabilityTestReportOutput) SetIspPlacements(v []*IspPlacement) *GetDeliverabilityTestReportOutput {
7097	s.IspPlacements = v
7098	return s
7099}
7100
7101// SetMessage sets the Message field's value.
7102func (s *GetDeliverabilityTestReportOutput) SetMessage(v string) *GetDeliverabilityTestReportOutput {
7103	s.Message = &v
7104	return s
7105}
7106
7107// SetOverallPlacement sets the OverallPlacement field's value.
7108func (s *GetDeliverabilityTestReportOutput) SetOverallPlacement(v *PlacementStatistics) *GetDeliverabilityTestReportOutput {
7109	s.OverallPlacement = v
7110	return s
7111}
7112
7113// SetTags sets the Tags field's value.
7114func (s *GetDeliverabilityTestReportOutput) SetTags(v []*Tag) *GetDeliverabilityTestReportOutput {
7115	s.Tags = v
7116	return s
7117}
7118
7119// Retrieve all the deliverability data for a specific campaign. This data is
7120// available for a campaign only if the campaign sent email by using a domain
7121// that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
7122// operation).
7123type GetDomainDeliverabilityCampaignInput struct {
7124	_ struct{} `type:"structure"`
7125
7126	// The unique identifier for the campaign. Amazon Pinpoint automatically generates
7127	// and assigns this identifier to a campaign. This value is not the same as
7128	// the campaign identifier that Amazon Pinpoint assigns to campaigns that you
7129	// create and manage by using the Amazon Pinpoint API or the Amazon Pinpoint
7130	// console.
7131	//
7132	// CampaignId is a required field
7133	CampaignId *string `location:"uri" locationName:"CampaignId" type:"string" required:"true"`
7134}
7135
7136// String returns the string representation
7137func (s GetDomainDeliverabilityCampaignInput) String() string {
7138	return awsutil.Prettify(s)
7139}
7140
7141// GoString returns the string representation
7142func (s GetDomainDeliverabilityCampaignInput) GoString() string {
7143	return s.String()
7144}
7145
7146// Validate inspects the fields of the type to determine if they are valid.
7147func (s *GetDomainDeliverabilityCampaignInput) Validate() error {
7148	invalidParams := request.ErrInvalidParams{Context: "GetDomainDeliverabilityCampaignInput"}
7149	if s.CampaignId == nil {
7150		invalidParams.Add(request.NewErrParamRequired("CampaignId"))
7151	}
7152	if s.CampaignId != nil && len(*s.CampaignId) < 1 {
7153		invalidParams.Add(request.NewErrParamMinLen("CampaignId", 1))
7154	}
7155
7156	if invalidParams.Len() > 0 {
7157		return invalidParams
7158	}
7159	return nil
7160}
7161
7162// SetCampaignId sets the CampaignId field's value.
7163func (s *GetDomainDeliverabilityCampaignInput) SetCampaignId(v string) *GetDomainDeliverabilityCampaignInput {
7164	s.CampaignId = &v
7165	return s
7166}
7167
7168// An object that contains all the deliverability data for a specific campaign.
7169// This data is available for a campaign only if the campaign sent email by
7170// using a domain that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
7171// operation).
7172type GetDomainDeliverabilityCampaignOutput struct {
7173	_ struct{} `type:"structure"`
7174
7175	// An object that contains the deliverability data for the campaign.
7176	//
7177	// DomainDeliverabilityCampaign is a required field
7178	DomainDeliverabilityCampaign *DomainDeliverabilityCampaign `type:"structure" required:"true"`
7179}
7180
7181// String returns the string representation
7182func (s GetDomainDeliverabilityCampaignOutput) String() string {
7183	return awsutil.Prettify(s)
7184}
7185
7186// GoString returns the string representation
7187func (s GetDomainDeliverabilityCampaignOutput) GoString() string {
7188	return s.String()
7189}
7190
7191// SetDomainDeliverabilityCampaign sets the DomainDeliverabilityCampaign field's value.
7192func (s *GetDomainDeliverabilityCampaignOutput) SetDomainDeliverabilityCampaign(v *DomainDeliverabilityCampaign) *GetDomainDeliverabilityCampaignOutput {
7193	s.DomainDeliverabilityCampaign = v
7194	return s
7195}
7196
7197// A request to obtain deliverability metrics for a domain.
7198type GetDomainStatisticsReportInput struct {
7199	_ struct{} `type:"structure"`
7200
7201	// The domain that you want to obtain deliverability metrics for.
7202	//
7203	// Domain is a required field
7204	Domain *string `location:"uri" locationName:"Domain" type:"string" required:"true"`
7205
7206	// The last day (in Unix time) that you want to obtain domain deliverability
7207	// metrics for. The EndDate that you specify has to be less than or equal to
7208	// 30 days after the StartDate.
7209	//
7210	// EndDate is a required field
7211	EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp" required:"true"`
7212
7213	// The first day (in Unix time) that you want to obtain domain deliverability
7214	// metrics for.
7215	//
7216	// StartDate is a required field
7217	StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp" required:"true"`
7218}
7219
7220// String returns the string representation
7221func (s GetDomainStatisticsReportInput) String() string {
7222	return awsutil.Prettify(s)
7223}
7224
7225// GoString returns the string representation
7226func (s GetDomainStatisticsReportInput) GoString() string {
7227	return s.String()
7228}
7229
7230// Validate inspects the fields of the type to determine if they are valid.
7231func (s *GetDomainStatisticsReportInput) Validate() error {
7232	invalidParams := request.ErrInvalidParams{Context: "GetDomainStatisticsReportInput"}
7233	if s.Domain == nil {
7234		invalidParams.Add(request.NewErrParamRequired("Domain"))
7235	}
7236	if s.Domain != nil && len(*s.Domain) < 1 {
7237		invalidParams.Add(request.NewErrParamMinLen("Domain", 1))
7238	}
7239	if s.EndDate == nil {
7240		invalidParams.Add(request.NewErrParamRequired("EndDate"))
7241	}
7242	if s.StartDate == nil {
7243		invalidParams.Add(request.NewErrParamRequired("StartDate"))
7244	}
7245
7246	if invalidParams.Len() > 0 {
7247		return invalidParams
7248	}
7249	return nil
7250}
7251
7252// SetDomain sets the Domain field's value.
7253func (s *GetDomainStatisticsReportInput) SetDomain(v string) *GetDomainStatisticsReportInput {
7254	s.Domain = &v
7255	return s
7256}
7257
7258// SetEndDate sets the EndDate field's value.
7259func (s *GetDomainStatisticsReportInput) SetEndDate(v time.Time) *GetDomainStatisticsReportInput {
7260	s.EndDate = &v
7261	return s
7262}
7263
7264// SetStartDate sets the StartDate field's value.
7265func (s *GetDomainStatisticsReportInput) SetStartDate(v time.Time) *GetDomainStatisticsReportInput {
7266	s.StartDate = &v
7267	return s
7268}
7269
7270// An object that includes statistics that are related to the domain that you
7271// specified.
7272type GetDomainStatisticsReportOutput struct {
7273	_ struct{} `type:"structure"`
7274
7275	// An object that contains deliverability metrics for the domain that you specified.
7276	// This object contains data for each day, starting on the StartDate and ending
7277	// on the EndDate.
7278	//
7279	// DailyVolumes is a required field
7280	DailyVolumes []*DailyVolume `type:"list" required:"true"`
7281
7282	// An object that contains deliverability metrics for the domain that you specified.
7283	// The data in this object is a summary of all of the data that was collected
7284	// from the StartDate to the EndDate.
7285	//
7286	// OverallVolume is a required field
7287	OverallVolume *OverallVolume `type:"structure" required:"true"`
7288}
7289
7290// String returns the string representation
7291func (s GetDomainStatisticsReportOutput) String() string {
7292	return awsutil.Prettify(s)
7293}
7294
7295// GoString returns the string representation
7296func (s GetDomainStatisticsReportOutput) GoString() string {
7297	return s.String()
7298}
7299
7300// SetDailyVolumes sets the DailyVolumes field's value.
7301func (s *GetDomainStatisticsReportOutput) SetDailyVolumes(v []*DailyVolume) *GetDomainStatisticsReportOutput {
7302	s.DailyVolumes = v
7303	return s
7304}
7305
7306// SetOverallVolume sets the OverallVolume field's value.
7307func (s *GetDomainStatisticsReportOutput) SetOverallVolume(v *OverallVolume) *GetDomainStatisticsReportOutput {
7308	s.OverallVolume = v
7309	return s
7310}
7311
7312// A request to return details about an email identity.
7313type GetEmailIdentityInput struct {
7314	_ struct{} `type:"structure"`
7315
7316	// The email identity that you want to retrieve details for.
7317	//
7318	// EmailIdentity is a required field
7319	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
7320}
7321
7322// String returns the string representation
7323func (s GetEmailIdentityInput) String() string {
7324	return awsutil.Prettify(s)
7325}
7326
7327// GoString returns the string representation
7328func (s GetEmailIdentityInput) GoString() string {
7329	return s.String()
7330}
7331
7332// Validate inspects the fields of the type to determine if they are valid.
7333func (s *GetEmailIdentityInput) Validate() error {
7334	invalidParams := request.ErrInvalidParams{Context: "GetEmailIdentityInput"}
7335	if s.EmailIdentity == nil {
7336		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
7337	}
7338	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
7339		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
7340	}
7341
7342	if invalidParams.Len() > 0 {
7343		return invalidParams
7344	}
7345	return nil
7346}
7347
7348// SetEmailIdentity sets the EmailIdentity field's value.
7349func (s *GetEmailIdentityInput) SetEmailIdentity(v string) *GetEmailIdentityInput {
7350	s.EmailIdentity = &v
7351	return s
7352}
7353
7354// Details about an email identity.
7355type GetEmailIdentityOutput struct {
7356	_ struct{} `type:"structure"`
7357
7358	// An object that contains information about the DKIM attributes for the identity.
7359	// This object includes the tokens that you use to create the CNAME records
7360	// that are required to complete the DKIM verification process.
7361	DkimAttributes *DkimAttributes `type:"structure"`
7362
7363	// The feedback forwarding configuration for the identity.
7364	//
7365	// If the value is true, Amazon Pinpoint sends you email notifications when
7366	// bounce or complaint events occur. Amazon Pinpoint sends this notification
7367	// to the address that you specified in the Return-Path header of the original
7368	// email.
7369	//
7370	// When you set this value to false, Amazon Pinpoint sends notifications through
7371	// other mechanisms, such as by notifying an Amazon SNS topic or another event
7372	// destination. You're required to have a method of tracking bounces and complaints.
7373	// If you haven't set up another mechanism for receiving bounce or complaint
7374	// notifications, Amazon Pinpoint sends an email notification when these events
7375	// occur (even if this setting is disabled).
7376	FeedbackForwardingStatus *bool `type:"boolean"`
7377
7378	// The email identity type.
7379	IdentityType *string `type:"string" enum:"IdentityType"`
7380
7381	// An object that contains information about the Mail-From attributes for the
7382	// email identity.
7383	MailFromAttributes *MailFromAttributes `type:"structure"`
7384
7385	// An array of objects that define the tags (keys and values) that are associated
7386	// with the email identity.
7387	Tags []*Tag `type:"list"`
7388
7389	// Specifies whether or not the identity is verified. In Amazon Pinpoint, you
7390	// can only send email from verified email addresses or domains. For more information
7391	// about verifying identities, see the Amazon Pinpoint User Guide (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html).
7392	VerifiedForSendingStatus *bool `type:"boolean"`
7393}
7394
7395// String returns the string representation
7396func (s GetEmailIdentityOutput) String() string {
7397	return awsutil.Prettify(s)
7398}
7399
7400// GoString returns the string representation
7401func (s GetEmailIdentityOutput) GoString() string {
7402	return s.String()
7403}
7404
7405// SetDkimAttributes sets the DkimAttributes field's value.
7406func (s *GetEmailIdentityOutput) SetDkimAttributes(v *DkimAttributes) *GetEmailIdentityOutput {
7407	s.DkimAttributes = v
7408	return s
7409}
7410
7411// SetFeedbackForwardingStatus sets the FeedbackForwardingStatus field's value.
7412func (s *GetEmailIdentityOutput) SetFeedbackForwardingStatus(v bool) *GetEmailIdentityOutput {
7413	s.FeedbackForwardingStatus = &v
7414	return s
7415}
7416
7417// SetIdentityType sets the IdentityType field's value.
7418func (s *GetEmailIdentityOutput) SetIdentityType(v string) *GetEmailIdentityOutput {
7419	s.IdentityType = &v
7420	return s
7421}
7422
7423// SetMailFromAttributes sets the MailFromAttributes field's value.
7424func (s *GetEmailIdentityOutput) SetMailFromAttributes(v *MailFromAttributes) *GetEmailIdentityOutput {
7425	s.MailFromAttributes = v
7426	return s
7427}
7428
7429// SetTags sets the Tags field's value.
7430func (s *GetEmailIdentityOutput) SetTags(v []*Tag) *GetEmailIdentityOutput {
7431	s.Tags = v
7432	return s
7433}
7434
7435// SetVerifiedForSendingStatus sets the VerifiedForSendingStatus field's value.
7436func (s *GetEmailIdentityOutput) SetVerifiedForSendingStatus(v bool) *GetEmailIdentityOutput {
7437	s.VerifiedForSendingStatus = &v
7438	return s
7439}
7440
7441// Information about an email identity.
7442type IdentityInfo struct {
7443	_ struct{} `type:"structure"`
7444
7445	// The address or domain of the identity.
7446	IdentityName *string `type:"string"`
7447
7448	// The email identity type. The identity type can be one of the following:
7449	//
7450	//    * EMAIL_ADDRESS – The identity is an email address.
7451	//
7452	//    * DOMAIN – The identity is a domain.
7453	//
7454	//    * MANAGED_DOMAIN – The identity is a domain that is managed by AWS.
7455	IdentityType *string `type:"string" enum:"IdentityType"`
7456
7457	// Indicates whether or not you can send email from the identity.
7458	//
7459	// In Amazon Pinpoint, an identity is an email address or domain that you send
7460	// email from. Before you can send email from an identity, you have to demostrate
7461	// that you own the identity, and that you authorize Amazon Pinpoint to send
7462	// email from that identity.
7463	SendingEnabled *bool `type:"boolean"`
7464}
7465
7466// String returns the string representation
7467func (s IdentityInfo) String() string {
7468	return awsutil.Prettify(s)
7469}
7470
7471// GoString returns the string representation
7472func (s IdentityInfo) GoString() string {
7473	return s.String()
7474}
7475
7476// SetIdentityName sets the IdentityName field's value.
7477func (s *IdentityInfo) SetIdentityName(v string) *IdentityInfo {
7478	s.IdentityName = &v
7479	return s
7480}
7481
7482// SetIdentityType sets the IdentityType field's value.
7483func (s *IdentityInfo) SetIdentityType(v string) *IdentityInfo {
7484	s.IdentityType = &v
7485	return s
7486}
7487
7488// SetSendingEnabled sets the SendingEnabled field's value.
7489func (s *IdentityInfo) SetSendingEnabled(v bool) *IdentityInfo {
7490	s.SendingEnabled = &v
7491	return s
7492}
7493
7494// An object that contains information about the inbox placement data settings
7495// for a verified domain that’s associated with your AWS account. This data
7496// is available only if you enabled the Deliverability dashboard for the domain
7497// (PutDeliverabilityDashboardOption operation).
7498type InboxPlacementTrackingOption struct {
7499	_ struct{} `type:"structure"`
7500
7501	// Specifies whether inbox placement data is being tracked for the domain.
7502	Global *bool `type:"boolean"`
7503
7504	// An array of strings, one for each major email provider that the inbox placement
7505	// data applies to.
7506	TrackedIsps []*string `type:"list"`
7507}
7508
7509// String returns the string representation
7510func (s InboxPlacementTrackingOption) String() string {
7511	return awsutil.Prettify(s)
7512}
7513
7514// GoString returns the string representation
7515func (s InboxPlacementTrackingOption) GoString() string {
7516	return s.String()
7517}
7518
7519// SetGlobal sets the Global field's value.
7520func (s *InboxPlacementTrackingOption) SetGlobal(v bool) *InboxPlacementTrackingOption {
7521	s.Global = &v
7522	return s
7523}
7524
7525// SetTrackedIsps sets the TrackedIsps field's value.
7526func (s *InboxPlacementTrackingOption) SetTrackedIsps(v []*string) *InboxPlacementTrackingOption {
7527	s.TrackedIsps = v
7528	return s
7529}
7530
7531// An object that describes how email sent during the predictive inbox placement
7532// test was handled by a certain email provider.
7533type IspPlacement struct {
7534	_ struct{} `type:"structure"`
7535
7536	// The name of the email provider that the inbox placement data applies to.
7537	IspName *string `type:"string"`
7538
7539	// An object that contains inbox placement metrics for a specific email provider.
7540	PlacementStatistics *PlacementStatistics `type:"structure"`
7541}
7542
7543// String returns the string representation
7544func (s IspPlacement) String() string {
7545	return awsutil.Prettify(s)
7546}
7547
7548// GoString returns the string representation
7549func (s IspPlacement) GoString() string {
7550	return s.String()
7551}
7552
7553// SetIspName sets the IspName field's value.
7554func (s *IspPlacement) SetIspName(v string) *IspPlacement {
7555	s.IspName = &v
7556	return s
7557}
7558
7559// SetPlacementStatistics sets the PlacementStatistics field's value.
7560func (s *IspPlacement) SetPlacementStatistics(v *PlacementStatistics) *IspPlacement {
7561	s.PlacementStatistics = v
7562	return s
7563}
7564
7565// An object that defines an Amazon Kinesis Data Firehose destination for email
7566// events. You can use Amazon Kinesis Data Firehose to stream data to other
7567// services, such as Amazon S3 and Amazon Redshift.
7568type KinesisFirehoseDestination struct {
7569	_ struct{} `type:"structure"`
7570
7571	// The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream
7572	// that Amazon Pinpoint sends email events to.
7573	//
7574	// DeliveryStreamArn is a required field
7575	DeliveryStreamArn *string `type:"string" required:"true"`
7576
7577	// The Amazon Resource Name (ARN) of the IAM role that Amazon Pinpoint uses
7578	// when sending email events to the Amazon Kinesis Data Firehose stream.
7579	//
7580	// IamRoleArn is a required field
7581	IamRoleArn *string `type:"string" required:"true"`
7582}
7583
7584// String returns the string representation
7585func (s KinesisFirehoseDestination) String() string {
7586	return awsutil.Prettify(s)
7587}
7588
7589// GoString returns the string representation
7590func (s KinesisFirehoseDestination) GoString() string {
7591	return s.String()
7592}
7593
7594// Validate inspects the fields of the type to determine if they are valid.
7595func (s *KinesisFirehoseDestination) Validate() error {
7596	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseDestination"}
7597	if s.DeliveryStreamArn == nil {
7598		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamArn"))
7599	}
7600	if s.IamRoleArn == nil {
7601		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
7602	}
7603
7604	if invalidParams.Len() > 0 {
7605		return invalidParams
7606	}
7607	return nil
7608}
7609
7610// SetDeliveryStreamArn sets the DeliveryStreamArn field's value.
7611func (s *KinesisFirehoseDestination) SetDeliveryStreamArn(v string) *KinesisFirehoseDestination {
7612	s.DeliveryStreamArn = &v
7613	return s
7614}
7615
7616// SetIamRoleArn sets the IamRoleArn field's value.
7617func (s *KinesisFirehoseDestination) SetIamRoleArn(v string) *KinesisFirehoseDestination {
7618	s.IamRoleArn = &v
7619	return s
7620}
7621
7622// There are too many instances of the specified resource type.
7623type LimitExceededException struct {
7624	_            struct{}                  `type:"structure"`
7625	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7626
7627	Message_ *string `locationName:"message" type:"string"`
7628}
7629
7630// String returns the string representation
7631func (s LimitExceededException) String() string {
7632	return awsutil.Prettify(s)
7633}
7634
7635// GoString returns the string representation
7636func (s LimitExceededException) GoString() string {
7637	return s.String()
7638}
7639
7640func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
7641	return &LimitExceededException{
7642		RespMetadata: v,
7643	}
7644}
7645
7646// Code returns the exception type name.
7647func (s *LimitExceededException) Code() string {
7648	return "LimitExceededException"
7649}
7650
7651// Message returns the exception's message.
7652func (s *LimitExceededException) Message() string {
7653	if s.Message_ != nil {
7654		return *s.Message_
7655	}
7656	return ""
7657}
7658
7659// OrigErr always returns nil, satisfies awserr.Error interface.
7660func (s *LimitExceededException) OrigErr() error {
7661	return nil
7662}
7663
7664func (s *LimitExceededException) Error() string {
7665	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7666}
7667
7668// Status code returns the HTTP status code for the request's response error.
7669func (s *LimitExceededException) StatusCode() int {
7670	return s.RespMetadata.StatusCode
7671}
7672
7673// RequestID returns the service's response RequestID for request.
7674func (s *LimitExceededException) RequestID() string {
7675	return s.RespMetadata.RequestID
7676}
7677
7678// A request to obtain a list of configuration sets for your Amazon Pinpoint
7679// account in the current AWS Region.
7680type ListConfigurationSetsInput struct {
7681	_ struct{} `type:"structure"`
7682
7683	// A token returned from a previous call to ListConfigurationSets to indicate
7684	// the position in the list of configuration sets.
7685	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
7686
7687	// The number of results to show in a single call to ListConfigurationSets.
7688	// If the number of results is larger than the number you specified in this
7689	// parameter, then the response includes a NextToken element, which you can
7690	// use to obtain additional results.
7691	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
7692}
7693
7694// String returns the string representation
7695func (s ListConfigurationSetsInput) String() string {
7696	return awsutil.Prettify(s)
7697}
7698
7699// GoString returns the string representation
7700func (s ListConfigurationSetsInput) GoString() string {
7701	return s.String()
7702}
7703
7704// SetNextToken sets the NextToken field's value.
7705func (s *ListConfigurationSetsInput) SetNextToken(v string) *ListConfigurationSetsInput {
7706	s.NextToken = &v
7707	return s
7708}
7709
7710// SetPageSize sets the PageSize field's value.
7711func (s *ListConfigurationSetsInput) SetPageSize(v int64) *ListConfigurationSetsInput {
7712	s.PageSize = &v
7713	return s
7714}
7715
7716// A list of configuration sets in your Amazon Pinpoint account in the current
7717// AWS Region.
7718type ListConfigurationSetsOutput struct {
7719	_ struct{} `type:"structure"`
7720
7721	// An array that contains all of the configuration sets in your Amazon Pinpoint
7722	// account in the current AWS Region.
7723	ConfigurationSets []*string `type:"list"`
7724
7725	// A token that indicates that there are additional configuration sets to list.
7726	// To view additional configuration sets, issue another request to ListConfigurationSets,
7727	// and pass this token in the NextToken parameter.
7728	NextToken *string `type:"string"`
7729}
7730
7731// String returns the string representation
7732func (s ListConfigurationSetsOutput) String() string {
7733	return awsutil.Prettify(s)
7734}
7735
7736// GoString returns the string representation
7737func (s ListConfigurationSetsOutput) GoString() string {
7738	return s.String()
7739}
7740
7741// SetConfigurationSets sets the ConfigurationSets field's value.
7742func (s *ListConfigurationSetsOutput) SetConfigurationSets(v []*string) *ListConfigurationSetsOutput {
7743	s.ConfigurationSets = v
7744	return s
7745}
7746
7747// SetNextToken sets the NextToken field's value.
7748func (s *ListConfigurationSetsOutput) SetNextToken(v string) *ListConfigurationSetsOutput {
7749	s.NextToken = &v
7750	return s
7751}
7752
7753// A request to obtain a list of dedicated IP pools.
7754type ListDedicatedIpPoolsInput struct {
7755	_ struct{} `type:"structure"`
7756
7757	// A token returned from a previous call to ListDedicatedIpPools to indicate
7758	// the position in the list of dedicated IP pools.
7759	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
7760
7761	// The number of results to show in a single call to ListDedicatedIpPools. If
7762	// the number of results is larger than the number you specified in this parameter,
7763	// then the response includes a NextToken element, which you can use to obtain
7764	// additional results.
7765	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
7766}
7767
7768// String returns the string representation
7769func (s ListDedicatedIpPoolsInput) String() string {
7770	return awsutil.Prettify(s)
7771}
7772
7773// GoString returns the string representation
7774func (s ListDedicatedIpPoolsInput) GoString() string {
7775	return s.String()
7776}
7777
7778// SetNextToken sets the NextToken field's value.
7779func (s *ListDedicatedIpPoolsInput) SetNextToken(v string) *ListDedicatedIpPoolsInput {
7780	s.NextToken = &v
7781	return s
7782}
7783
7784// SetPageSize sets the PageSize field's value.
7785func (s *ListDedicatedIpPoolsInput) SetPageSize(v int64) *ListDedicatedIpPoolsInput {
7786	s.PageSize = &v
7787	return s
7788}
7789
7790// A list of dedicated IP pools.
7791type ListDedicatedIpPoolsOutput struct {
7792	_ struct{} `type:"structure"`
7793
7794	// A list of all of the dedicated IP pools that are associated with your Amazon
7795	// Pinpoint account.
7796	DedicatedIpPools []*string `type:"list"`
7797
7798	// A token that indicates that there are additional IP pools to list. To view
7799	// additional IP pools, issue another request to ListDedicatedIpPools, passing
7800	// this token in the NextToken parameter.
7801	NextToken *string `type:"string"`
7802}
7803
7804// String returns the string representation
7805func (s ListDedicatedIpPoolsOutput) String() string {
7806	return awsutil.Prettify(s)
7807}
7808
7809// GoString returns the string representation
7810func (s ListDedicatedIpPoolsOutput) GoString() string {
7811	return s.String()
7812}
7813
7814// SetDedicatedIpPools sets the DedicatedIpPools field's value.
7815func (s *ListDedicatedIpPoolsOutput) SetDedicatedIpPools(v []*string) *ListDedicatedIpPoolsOutput {
7816	s.DedicatedIpPools = v
7817	return s
7818}
7819
7820// SetNextToken sets the NextToken field's value.
7821func (s *ListDedicatedIpPoolsOutput) SetNextToken(v string) *ListDedicatedIpPoolsOutput {
7822	s.NextToken = &v
7823	return s
7824}
7825
7826// A request to list all of the predictive inbox placement tests that you've
7827// performed.
7828type ListDeliverabilityTestReportsInput struct {
7829	_ struct{} `type:"structure"`
7830
7831	// A token returned from a previous call to ListDeliverabilityTestReports to
7832	// indicate the position in the list of predictive inbox placement tests.
7833	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
7834
7835	// The number of results to show in a single call to ListDeliverabilityTestReports.
7836	// If the number of results is larger than the number you specified in this
7837	// parameter, then the response includes a NextToken element, which you can
7838	// use to obtain additional results.
7839	//
7840	// The value you specify has to be at least 0, and can be no more than 1000.
7841	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
7842}
7843
7844// String returns the string representation
7845func (s ListDeliverabilityTestReportsInput) String() string {
7846	return awsutil.Prettify(s)
7847}
7848
7849// GoString returns the string representation
7850func (s ListDeliverabilityTestReportsInput) GoString() string {
7851	return s.String()
7852}
7853
7854// SetNextToken sets the NextToken field's value.
7855func (s *ListDeliverabilityTestReportsInput) SetNextToken(v string) *ListDeliverabilityTestReportsInput {
7856	s.NextToken = &v
7857	return s
7858}
7859
7860// SetPageSize sets the PageSize field's value.
7861func (s *ListDeliverabilityTestReportsInput) SetPageSize(v int64) *ListDeliverabilityTestReportsInput {
7862	s.PageSize = &v
7863	return s
7864}
7865
7866// A list of the predictive inbox placement test reports that are available
7867// for your account, regardless of whether or not those tests are complete.
7868type ListDeliverabilityTestReportsOutput struct {
7869	_ struct{} `type:"structure"`
7870
7871	// An object that contains a lists of predictive inbox placement tests that
7872	// you've performed.
7873	//
7874	// DeliverabilityTestReports is a required field
7875	DeliverabilityTestReports []*DeliverabilityTestReport `type:"list" required:"true"`
7876
7877	// A token that indicates that there are additional predictive inbox placement
7878	// tests to list. To view additional predictive inbox placement tests, issue
7879	// another request to ListDeliverabilityTestReports, and pass this token in
7880	// the NextToken parameter.
7881	NextToken *string `type:"string"`
7882}
7883
7884// String returns the string representation
7885func (s ListDeliverabilityTestReportsOutput) String() string {
7886	return awsutil.Prettify(s)
7887}
7888
7889// GoString returns the string representation
7890func (s ListDeliverabilityTestReportsOutput) GoString() string {
7891	return s.String()
7892}
7893
7894// SetDeliverabilityTestReports sets the DeliverabilityTestReports field's value.
7895func (s *ListDeliverabilityTestReportsOutput) SetDeliverabilityTestReports(v []*DeliverabilityTestReport) *ListDeliverabilityTestReportsOutput {
7896	s.DeliverabilityTestReports = v
7897	return s
7898}
7899
7900// SetNextToken sets the NextToken field's value.
7901func (s *ListDeliverabilityTestReportsOutput) SetNextToken(v string) *ListDeliverabilityTestReportsOutput {
7902	s.NextToken = &v
7903	return s
7904}
7905
7906// Retrieve deliverability data for all the campaigns that used a specific domain
7907// to send email during a specified time range. This data is available for a
7908// domain only if you enabled the Deliverability dashboard (PutDeliverabilityDashboardOption
7909// operation) for the domain.
7910type ListDomainDeliverabilityCampaignsInput struct {
7911	_ struct{} `type:"structure"`
7912
7913	// The last day, in Unix time format, that you want to obtain deliverability
7914	// data for. This value has to be less than or equal to 30 days after the value
7915	// of the StartDate parameter.
7916	//
7917	// EndDate is a required field
7918	EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp" required:"true"`
7919
7920	// A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns
7921	// operation. This token indicates the position of a campaign in the list of
7922	// campaigns.
7923	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
7924
7925	// The maximum number of results to include in response to a single call to
7926	// the ListDomainDeliverabilityCampaigns operation. If the number of results
7927	// is larger than the number that you specify in this parameter, the response
7928	// includes a NextToken element, which you can use to obtain additional results.
7929	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
7930
7931	// The first day, in Unix time format, that you want to obtain deliverability
7932	// data for.
7933	//
7934	// StartDate is a required field
7935	StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp" required:"true"`
7936
7937	// The domain to obtain deliverability data for.
7938	//
7939	// SubscribedDomain is a required field
7940	SubscribedDomain *string `location:"uri" locationName:"SubscribedDomain" type:"string" required:"true"`
7941}
7942
7943// String returns the string representation
7944func (s ListDomainDeliverabilityCampaignsInput) String() string {
7945	return awsutil.Prettify(s)
7946}
7947
7948// GoString returns the string representation
7949func (s ListDomainDeliverabilityCampaignsInput) GoString() string {
7950	return s.String()
7951}
7952
7953// Validate inspects the fields of the type to determine if they are valid.
7954func (s *ListDomainDeliverabilityCampaignsInput) Validate() error {
7955	invalidParams := request.ErrInvalidParams{Context: "ListDomainDeliverabilityCampaignsInput"}
7956	if s.EndDate == nil {
7957		invalidParams.Add(request.NewErrParamRequired("EndDate"))
7958	}
7959	if s.StartDate == nil {
7960		invalidParams.Add(request.NewErrParamRequired("StartDate"))
7961	}
7962	if s.SubscribedDomain == nil {
7963		invalidParams.Add(request.NewErrParamRequired("SubscribedDomain"))
7964	}
7965	if s.SubscribedDomain != nil && len(*s.SubscribedDomain) < 1 {
7966		invalidParams.Add(request.NewErrParamMinLen("SubscribedDomain", 1))
7967	}
7968
7969	if invalidParams.Len() > 0 {
7970		return invalidParams
7971	}
7972	return nil
7973}
7974
7975// SetEndDate sets the EndDate field's value.
7976func (s *ListDomainDeliverabilityCampaignsInput) SetEndDate(v time.Time) *ListDomainDeliverabilityCampaignsInput {
7977	s.EndDate = &v
7978	return s
7979}
7980
7981// SetNextToken sets the NextToken field's value.
7982func (s *ListDomainDeliverabilityCampaignsInput) SetNextToken(v string) *ListDomainDeliverabilityCampaignsInput {
7983	s.NextToken = &v
7984	return s
7985}
7986
7987// SetPageSize sets the PageSize field's value.
7988func (s *ListDomainDeliverabilityCampaignsInput) SetPageSize(v int64) *ListDomainDeliverabilityCampaignsInput {
7989	s.PageSize = &v
7990	return s
7991}
7992
7993// SetStartDate sets the StartDate field's value.
7994func (s *ListDomainDeliverabilityCampaignsInput) SetStartDate(v time.Time) *ListDomainDeliverabilityCampaignsInput {
7995	s.StartDate = &v
7996	return s
7997}
7998
7999// SetSubscribedDomain sets the SubscribedDomain field's value.
8000func (s *ListDomainDeliverabilityCampaignsInput) SetSubscribedDomain(v string) *ListDomainDeliverabilityCampaignsInput {
8001	s.SubscribedDomain = &v
8002	return s
8003}
8004
8005// An array of objects that provide deliverability data for all the campaigns
8006// that used a specific domain to send email during a specified time range.
8007// This data is available for a domain only if you enabled the Deliverability
8008// dashboard (PutDeliverabilityDashboardOption operation) for the domain.
8009type ListDomainDeliverabilityCampaignsOutput struct {
8010	_ struct{} `type:"structure"`
8011
8012	// An array of responses, one for each campaign that used the domain to send
8013	// email during the specified time range.
8014	//
8015	// DomainDeliverabilityCampaigns is a required field
8016	DomainDeliverabilityCampaigns []*DomainDeliverabilityCampaign `type:"list" required:"true"`
8017
8018	// A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns
8019	// operation. This token indicates the position of the campaign in the list
8020	// of campaigns.
8021	NextToken *string `type:"string"`
8022}
8023
8024// String returns the string representation
8025func (s ListDomainDeliverabilityCampaignsOutput) String() string {
8026	return awsutil.Prettify(s)
8027}
8028
8029// GoString returns the string representation
8030func (s ListDomainDeliverabilityCampaignsOutput) GoString() string {
8031	return s.String()
8032}
8033
8034// SetDomainDeliverabilityCampaigns sets the DomainDeliverabilityCampaigns field's value.
8035func (s *ListDomainDeliverabilityCampaignsOutput) SetDomainDeliverabilityCampaigns(v []*DomainDeliverabilityCampaign) *ListDomainDeliverabilityCampaignsOutput {
8036	s.DomainDeliverabilityCampaigns = v
8037	return s
8038}
8039
8040// SetNextToken sets the NextToken field's value.
8041func (s *ListDomainDeliverabilityCampaignsOutput) SetNextToken(v string) *ListDomainDeliverabilityCampaignsOutput {
8042	s.NextToken = &v
8043	return s
8044}
8045
8046// A request to list all of the email identities associated with your Amazon
8047// Pinpoint account. This list includes identities that you've already verified,
8048// identities that are unverified, and identities that were verified in the
8049// past, but are no longer verified.
8050type ListEmailIdentitiesInput struct {
8051	_ struct{} `type:"structure"`
8052
8053	// A token returned from a previous call to ListEmailIdentities to indicate
8054	// the position in the list of identities.
8055	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
8056
8057	// The number of results to show in a single call to ListEmailIdentities. If
8058	// the number of results is larger than the number you specified in this parameter,
8059	// then the response includes a NextToken element, which you can use to obtain
8060	// additional results.
8061	//
8062	// The value you specify has to be at least 0, and can be no more than 1000.
8063	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
8064}
8065
8066// String returns the string representation
8067func (s ListEmailIdentitiesInput) String() string {
8068	return awsutil.Prettify(s)
8069}
8070
8071// GoString returns the string representation
8072func (s ListEmailIdentitiesInput) GoString() string {
8073	return s.String()
8074}
8075
8076// SetNextToken sets the NextToken field's value.
8077func (s *ListEmailIdentitiesInput) SetNextToken(v string) *ListEmailIdentitiesInput {
8078	s.NextToken = &v
8079	return s
8080}
8081
8082// SetPageSize sets the PageSize field's value.
8083func (s *ListEmailIdentitiesInput) SetPageSize(v int64) *ListEmailIdentitiesInput {
8084	s.PageSize = &v
8085	return s
8086}
8087
8088// A list of all of the identities that you've attempted to verify for use with
8089// Amazon Pinpoint, regardless of whether or not those identities were successfully
8090// verified.
8091type ListEmailIdentitiesOutput struct {
8092	_ struct{} `type:"structure"`
8093
8094	// An array that includes all of the identities associated with your Amazon
8095	// Pinpoint account.
8096	EmailIdentities []*IdentityInfo `type:"list"`
8097
8098	// A token that indicates that there are additional configuration sets to list.
8099	// To view additional configuration sets, issue another request to ListEmailIdentities,
8100	// and pass this token in the NextToken parameter.
8101	NextToken *string `type:"string"`
8102}
8103
8104// String returns the string representation
8105func (s ListEmailIdentitiesOutput) String() string {
8106	return awsutil.Prettify(s)
8107}
8108
8109// GoString returns the string representation
8110func (s ListEmailIdentitiesOutput) GoString() string {
8111	return s.String()
8112}
8113
8114// SetEmailIdentities sets the EmailIdentities field's value.
8115func (s *ListEmailIdentitiesOutput) SetEmailIdentities(v []*IdentityInfo) *ListEmailIdentitiesOutput {
8116	s.EmailIdentities = v
8117	return s
8118}
8119
8120// SetNextToken sets the NextToken field's value.
8121func (s *ListEmailIdentitiesOutput) SetNextToken(v string) *ListEmailIdentitiesOutput {
8122	s.NextToken = &v
8123	return s
8124}
8125
8126type ListTagsForResourceInput struct {
8127	_ struct{} `type:"structure"`
8128
8129	// The Amazon Resource Name (ARN) of the resource that you want to retrieve
8130	// tag information for.
8131	//
8132	// ResourceArn is a required field
8133	ResourceArn *string `location:"querystring" locationName:"ResourceArn" type:"string" required:"true"`
8134}
8135
8136// String returns the string representation
8137func (s ListTagsForResourceInput) String() string {
8138	return awsutil.Prettify(s)
8139}
8140
8141// GoString returns the string representation
8142func (s ListTagsForResourceInput) GoString() string {
8143	return s.String()
8144}
8145
8146// Validate inspects the fields of the type to determine if they are valid.
8147func (s *ListTagsForResourceInput) Validate() error {
8148	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
8149	if s.ResourceArn == nil {
8150		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
8151	}
8152
8153	if invalidParams.Len() > 0 {
8154		return invalidParams
8155	}
8156	return nil
8157}
8158
8159// SetResourceArn sets the ResourceArn field's value.
8160func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
8161	s.ResourceArn = &v
8162	return s
8163}
8164
8165type ListTagsForResourceOutput struct {
8166	_ struct{} `type:"structure"`
8167
8168	// An array that lists all the tags that are associated with the resource. Each
8169	// tag consists of a required tag key (Key) and an associated tag value (Value)
8170	//
8171	// Tags is a required field
8172	Tags []*Tag `type:"list" required:"true"`
8173}
8174
8175// String returns the string representation
8176func (s ListTagsForResourceOutput) String() string {
8177	return awsutil.Prettify(s)
8178}
8179
8180// GoString returns the string representation
8181func (s ListTagsForResourceOutput) GoString() string {
8182	return s.String()
8183}
8184
8185// SetTags sets the Tags field's value.
8186func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
8187	s.Tags = v
8188	return s
8189}
8190
8191// A list of attributes that are associated with a MAIL FROM domain.
8192type MailFromAttributes struct {
8193	_ struct{} `type:"structure"`
8194
8195	// The action that Amazon Pinpoint to takes if it can't read the required MX
8196	// record for a custom MAIL FROM domain. When you set this value to UseDefaultValue,
8197	// Amazon Pinpoint uses amazonses.com as the MAIL FROM domain. When you set
8198	// this value to RejectMessage, Amazon Pinpoint returns a MailFromDomainNotVerified
8199	// error, and doesn't attempt to deliver the email.
8200	//
8201	// These behaviors are taken when the custom MAIL FROM domain configuration
8202	// is in the Pending, Failed, and TemporaryFailure states.
8203	//
8204	// BehaviorOnMxFailure is a required field
8205	BehaviorOnMxFailure *string `type:"string" required:"true" enum:"BehaviorOnMxFailure"`
8206
8207	// The name of a domain that an email identity uses as a custom MAIL FROM domain.
8208	//
8209	// MailFromDomain is a required field
8210	MailFromDomain *string `type:"string" required:"true"`
8211
8212	// The status of the MAIL FROM domain. This status can have the following values:
8213	//
8214	//    * PENDING – Amazon Pinpoint hasn't started searching for the MX record
8215	//    yet.
8216	//
8217	//    * SUCCESS – Amazon Pinpoint detected the required MX record for the
8218	//    MAIL FROM domain.
8219	//
8220	//    * FAILED – Amazon Pinpoint can't find the required MX record, or the
8221	//    record no longer exists.
8222	//
8223	//    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
8224	//    Pinpoint from determining the status of the MAIL FROM domain.
8225	//
8226	// MailFromDomainStatus is a required field
8227	MailFromDomainStatus *string `type:"string" required:"true" enum:"MailFromDomainStatus"`
8228}
8229
8230// String returns the string representation
8231func (s MailFromAttributes) String() string {
8232	return awsutil.Prettify(s)
8233}
8234
8235// GoString returns the string representation
8236func (s MailFromAttributes) GoString() string {
8237	return s.String()
8238}
8239
8240// SetBehaviorOnMxFailure sets the BehaviorOnMxFailure field's value.
8241func (s *MailFromAttributes) SetBehaviorOnMxFailure(v string) *MailFromAttributes {
8242	s.BehaviorOnMxFailure = &v
8243	return s
8244}
8245
8246// SetMailFromDomain sets the MailFromDomain field's value.
8247func (s *MailFromAttributes) SetMailFromDomain(v string) *MailFromAttributes {
8248	s.MailFromDomain = &v
8249	return s
8250}
8251
8252// SetMailFromDomainStatus sets the MailFromDomainStatus field's value.
8253func (s *MailFromAttributes) SetMailFromDomainStatus(v string) *MailFromAttributes {
8254	s.MailFromDomainStatus = &v
8255	return s
8256}
8257
8258// The message can't be sent because the sending domain isn't verified.
8259type MailFromDomainNotVerifiedException struct {
8260	_            struct{}                  `type:"structure"`
8261	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8262
8263	Message_ *string `locationName:"message" type:"string"`
8264}
8265
8266// String returns the string representation
8267func (s MailFromDomainNotVerifiedException) String() string {
8268	return awsutil.Prettify(s)
8269}
8270
8271// GoString returns the string representation
8272func (s MailFromDomainNotVerifiedException) GoString() string {
8273	return s.String()
8274}
8275
8276func newErrorMailFromDomainNotVerifiedException(v protocol.ResponseMetadata) error {
8277	return &MailFromDomainNotVerifiedException{
8278		RespMetadata: v,
8279	}
8280}
8281
8282// Code returns the exception type name.
8283func (s *MailFromDomainNotVerifiedException) Code() string {
8284	return "MailFromDomainNotVerifiedException"
8285}
8286
8287// Message returns the exception's message.
8288func (s *MailFromDomainNotVerifiedException) Message() string {
8289	if s.Message_ != nil {
8290		return *s.Message_
8291	}
8292	return ""
8293}
8294
8295// OrigErr always returns nil, satisfies awserr.Error interface.
8296func (s *MailFromDomainNotVerifiedException) OrigErr() error {
8297	return nil
8298}
8299
8300func (s *MailFromDomainNotVerifiedException) Error() string {
8301	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8302}
8303
8304// Status code returns the HTTP status code for the request's response error.
8305func (s *MailFromDomainNotVerifiedException) StatusCode() int {
8306	return s.RespMetadata.StatusCode
8307}
8308
8309// RequestID returns the service's response RequestID for request.
8310func (s *MailFromDomainNotVerifiedException) RequestID() string {
8311	return s.RespMetadata.RequestID
8312}
8313
8314// Represents the email message that you're sending. The Message object consists
8315// of a subject line and a message body.
8316type Message struct {
8317	_ struct{} `type:"structure"`
8318
8319	// The body of the message. You can specify an HTML version of the message,
8320	// a text-only version of the message, or both.
8321	//
8322	// Body is a required field
8323	Body *Body `type:"structure" required:"true"`
8324
8325	// The subject line of the email. The subject line can only contain 7-bit ASCII
8326	// characters. However, you can specify non-ASCII characters in the subject
8327	// line by using encoded-word syntax, as described in RFC 2047 (https://tools.ietf.org/html/rfc2047).
8328	//
8329	// Subject is a required field
8330	Subject *Content `type:"structure" required:"true"`
8331}
8332
8333// String returns the string representation
8334func (s Message) String() string {
8335	return awsutil.Prettify(s)
8336}
8337
8338// GoString returns the string representation
8339func (s Message) GoString() string {
8340	return s.String()
8341}
8342
8343// Validate inspects the fields of the type to determine if they are valid.
8344func (s *Message) Validate() error {
8345	invalidParams := request.ErrInvalidParams{Context: "Message"}
8346	if s.Body == nil {
8347		invalidParams.Add(request.NewErrParamRequired("Body"))
8348	}
8349	if s.Subject == nil {
8350		invalidParams.Add(request.NewErrParamRequired("Subject"))
8351	}
8352	if s.Body != nil {
8353		if err := s.Body.Validate(); err != nil {
8354			invalidParams.AddNested("Body", err.(request.ErrInvalidParams))
8355		}
8356	}
8357	if s.Subject != nil {
8358		if err := s.Subject.Validate(); err != nil {
8359			invalidParams.AddNested("Subject", err.(request.ErrInvalidParams))
8360		}
8361	}
8362
8363	if invalidParams.Len() > 0 {
8364		return invalidParams
8365	}
8366	return nil
8367}
8368
8369// SetBody sets the Body field's value.
8370func (s *Message) SetBody(v *Body) *Message {
8371	s.Body = v
8372	return s
8373}
8374
8375// SetSubject sets the Subject field's value.
8376func (s *Message) SetSubject(v *Content) *Message {
8377	s.Subject = v
8378	return s
8379}
8380
8381// The message can't be sent because it contains invalid content.
8382type MessageRejected struct {
8383	_            struct{}                  `type:"structure"`
8384	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8385
8386	Message_ *string `locationName:"message" type:"string"`
8387}
8388
8389// String returns the string representation
8390func (s MessageRejected) String() string {
8391	return awsutil.Prettify(s)
8392}
8393
8394// GoString returns the string representation
8395func (s MessageRejected) GoString() string {
8396	return s.String()
8397}
8398
8399func newErrorMessageRejected(v protocol.ResponseMetadata) error {
8400	return &MessageRejected{
8401		RespMetadata: v,
8402	}
8403}
8404
8405// Code returns the exception type name.
8406func (s *MessageRejected) Code() string {
8407	return "MessageRejected"
8408}
8409
8410// Message returns the exception's message.
8411func (s *MessageRejected) Message() string {
8412	if s.Message_ != nil {
8413		return *s.Message_
8414	}
8415	return ""
8416}
8417
8418// OrigErr always returns nil, satisfies awserr.Error interface.
8419func (s *MessageRejected) OrigErr() error {
8420	return nil
8421}
8422
8423func (s *MessageRejected) Error() string {
8424	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8425}
8426
8427// Status code returns the HTTP status code for the request's response error.
8428func (s *MessageRejected) StatusCode() int {
8429	return s.RespMetadata.StatusCode
8430}
8431
8432// RequestID returns the service's response RequestID for request.
8433func (s *MessageRejected) RequestID() string {
8434	return s.RespMetadata.RequestID
8435}
8436
8437// Contains the name and value of a tag that you apply to an email. You can
8438// use message tags when you publish email sending events.
8439type MessageTag struct {
8440	_ struct{} `type:"structure"`
8441
8442	// The name of the message tag. The message tag name has to meet the following
8443	// criteria:
8444	//
8445	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
8446	//    (_), or dashes (-).
8447	//
8448	//    * It can contain no more than 256 characters.
8449	//
8450	// Name is a required field
8451	Name *string `type:"string" required:"true"`
8452
8453	// The value of the message tag. The message tag value has to meet the following
8454	// criteria:
8455	//
8456	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
8457	//    (_), or dashes (-).
8458	//
8459	//    * It can contain no more than 256 characters.
8460	//
8461	// Value is a required field
8462	Value *string `type:"string" required:"true"`
8463}
8464
8465// String returns the string representation
8466func (s MessageTag) String() string {
8467	return awsutil.Prettify(s)
8468}
8469
8470// GoString returns the string representation
8471func (s MessageTag) GoString() string {
8472	return s.String()
8473}
8474
8475// Validate inspects the fields of the type to determine if they are valid.
8476func (s *MessageTag) Validate() error {
8477	invalidParams := request.ErrInvalidParams{Context: "MessageTag"}
8478	if s.Name == nil {
8479		invalidParams.Add(request.NewErrParamRequired("Name"))
8480	}
8481	if s.Value == nil {
8482		invalidParams.Add(request.NewErrParamRequired("Value"))
8483	}
8484
8485	if invalidParams.Len() > 0 {
8486		return invalidParams
8487	}
8488	return nil
8489}
8490
8491// SetName sets the Name field's value.
8492func (s *MessageTag) SetName(v string) *MessageTag {
8493	s.Name = &v
8494	return s
8495}
8496
8497// SetValue sets the Value field's value.
8498func (s *MessageTag) SetValue(v string) *MessageTag {
8499	s.Value = &v
8500	return s
8501}
8502
8503// The resource you attempted to access doesn't exist.
8504type NotFoundException struct {
8505	_            struct{}                  `type:"structure"`
8506	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8507
8508	Message_ *string `locationName:"message" type:"string"`
8509}
8510
8511// String returns the string representation
8512func (s NotFoundException) String() string {
8513	return awsutil.Prettify(s)
8514}
8515
8516// GoString returns the string representation
8517func (s NotFoundException) GoString() string {
8518	return s.String()
8519}
8520
8521func newErrorNotFoundException(v protocol.ResponseMetadata) error {
8522	return &NotFoundException{
8523		RespMetadata: v,
8524	}
8525}
8526
8527// Code returns the exception type name.
8528func (s *NotFoundException) Code() string {
8529	return "NotFoundException"
8530}
8531
8532// Message returns the exception's message.
8533func (s *NotFoundException) Message() string {
8534	if s.Message_ != nil {
8535		return *s.Message_
8536	}
8537	return ""
8538}
8539
8540// OrigErr always returns nil, satisfies awserr.Error interface.
8541func (s *NotFoundException) OrigErr() error {
8542	return nil
8543}
8544
8545func (s *NotFoundException) Error() string {
8546	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8547}
8548
8549// Status code returns the HTTP status code for the request's response error.
8550func (s *NotFoundException) StatusCode() int {
8551	return s.RespMetadata.StatusCode
8552}
8553
8554// RequestID returns the service's response RequestID for request.
8555func (s *NotFoundException) RequestID() string {
8556	return s.RespMetadata.RequestID
8557}
8558
8559// An object that contains information about email that was sent from the selected
8560// domain.
8561type OverallVolume struct {
8562	_ struct{} `type:"structure"`
8563
8564	// An object that contains inbox and junk mail placement metrics for individual
8565	// email providers.
8566	DomainIspPlacements []*DomainIspPlacement `type:"list"`
8567
8568	// The percentage of emails that were sent from the domain that were read by
8569	// their recipients.
8570	ReadRatePercent *float64 `type:"double"`
8571
8572	// An object that contains information about the numbers of messages that arrived
8573	// in recipients' inboxes and junk mail folders.
8574	VolumeStatistics *VolumeStatistics `type:"structure"`
8575}
8576
8577// String returns the string representation
8578func (s OverallVolume) String() string {
8579	return awsutil.Prettify(s)
8580}
8581
8582// GoString returns the string representation
8583func (s OverallVolume) GoString() string {
8584	return s.String()
8585}
8586
8587// SetDomainIspPlacements sets the DomainIspPlacements field's value.
8588func (s *OverallVolume) SetDomainIspPlacements(v []*DomainIspPlacement) *OverallVolume {
8589	s.DomainIspPlacements = v
8590	return s
8591}
8592
8593// SetReadRatePercent sets the ReadRatePercent field's value.
8594func (s *OverallVolume) SetReadRatePercent(v float64) *OverallVolume {
8595	s.ReadRatePercent = &v
8596	return s
8597}
8598
8599// SetVolumeStatistics sets the VolumeStatistics field's value.
8600func (s *OverallVolume) SetVolumeStatistics(v *VolumeStatistics) *OverallVolume {
8601	s.VolumeStatistics = v
8602	return s
8603}
8604
8605// An object that defines a Amazon Pinpoint destination for email events. You
8606// can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects.
8607// You can use these attributes to create segments for your campaigns.
8608type PinpointDestination struct {
8609	_ struct{} `type:"structure"`
8610
8611	// The Amazon Resource Name (ARN) of the Amazon Pinpoint project that you want
8612	// to send email events to.
8613	ApplicationArn *string `type:"string"`
8614}
8615
8616// String returns the string representation
8617func (s PinpointDestination) String() string {
8618	return awsutil.Prettify(s)
8619}
8620
8621// GoString returns the string representation
8622func (s PinpointDestination) GoString() string {
8623	return s.String()
8624}
8625
8626// SetApplicationArn sets the ApplicationArn field's value.
8627func (s *PinpointDestination) SetApplicationArn(v string) *PinpointDestination {
8628	s.ApplicationArn = &v
8629	return s
8630}
8631
8632// An object that contains inbox placement data for an email provider.
8633type PlacementStatistics struct {
8634	_ struct{} `type:"structure"`
8635
8636	// The percentage of emails that were authenticated by using DomainKeys Identified
8637	// Mail (DKIM) during the predictive inbox placement test.
8638	DkimPercentage *float64 `type:"double"`
8639
8640	// The percentage of emails that arrived in recipients' inboxes during the predictive
8641	// inbox placement test.
8642	InboxPercentage *float64 `type:"double"`
8643
8644	// The percentage of emails that didn't arrive in recipients' inboxes at all
8645	// during the predictive inbox placement test.
8646	MissingPercentage *float64 `type:"double"`
8647
8648	// The percentage of emails that arrived in recipients' spam or junk mail folders
8649	// during the predictive inbox placement test.
8650	SpamPercentage *float64 `type:"double"`
8651
8652	// The percentage of emails that were authenticated by using Sender Policy Framework
8653	// (SPF) during the predictive inbox placement test.
8654	SpfPercentage *float64 `type:"double"`
8655}
8656
8657// String returns the string representation
8658func (s PlacementStatistics) String() string {
8659	return awsutil.Prettify(s)
8660}
8661
8662// GoString returns the string representation
8663func (s PlacementStatistics) GoString() string {
8664	return s.String()
8665}
8666
8667// SetDkimPercentage sets the DkimPercentage field's value.
8668func (s *PlacementStatistics) SetDkimPercentage(v float64) *PlacementStatistics {
8669	s.DkimPercentage = &v
8670	return s
8671}
8672
8673// SetInboxPercentage sets the InboxPercentage field's value.
8674func (s *PlacementStatistics) SetInboxPercentage(v float64) *PlacementStatistics {
8675	s.InboxPercentage = &v
8676	return s
8677}
8678
8679// SetMissingPercentage sets the MissingPercentage field's value.
8680func (s *PlacementStatistics) SetMissingPercentage(v float64) *PlacementStatistics {
8681	s.MissingPercentage = &v
8682	return s
8683}
8684
8685// SetSpamPercentage sets the SpamPercentage field's value.
8686func (s *PlacementStatistics) SetSpamPercentage(v float64) *PlacementStatistics {
8687	s.SpamPercentage = &v
8688	return s
8689}
8690
8691// SetSpfPercentage sets the SpfPercentage field's value.
8692func (s *PlacementStatistics) SetSpfPercentage(v float64) *PlacementStatistics {
8693	s.SpfPercentage = &v
8694	return s
8695}
8696
8697// A request to enable or disable the automatic IP address warm-up feature.
8698type PutAccountDedicatedIpWarmupAttributesInput struct {
8699	_ struct{} `type:"structure"`
8700
8701	// Enables or disables the automatic warm-up feature for dedicated IP addresses
8702	// that are associated with your Amazon Pinpoint account in the current AWS
8703	// Region. Set to true to enable the automatic warm-up feature, or set to false
8704	// to disable it.
8705	AutoWarmupEnabled *bool `type:"boolean"`
8706}
8707
8708// String returns the string representation
8709func (s PutAccountDedicatedIpWarmupAttributesInput) String() string {
8710	return awsutil.Prettify(s)
8711}
8712
8713// GoString returns the string representation
8714func (s PutAccountDedicatedIpWarmupAttributesInput) GoString() string {
8715	return s.String()
8716}
8717
8718// SetAutoWarmupEnabled sets the AutoWarmupEnabled field's value.
8719func (s *PutAccountDedicatedIpWarmupAttributesInput) SetAutoWarmupEnabled(v bool) *PutAccountDedicatedIpWarmupAttributesInput {
8720	s.AutoWarmupEnabled = &v
8721	return s
8722}
8723
8724// An HTTP 200 response if the request succeeds, or an error message if the
8725// request fails.
8726type PutAccountDedicatedIpWarmupAttributesOutput struct {
8727	_ struct{} `type:"structure"`
8728}
8729
8730// String returns the string representation
8731func (s PutAccountDedicatedIpWarmupAttributesOutput) String() string {
8732	return awsutil.Prettify(s)
8733}
8734
8735// GoString returns the string representation
8736func (s PutAccountDedicatedIpWarmupAttributesOutput) GoString() string {
8737	return s.String()
8738}
8739
8740// A request to change the ability of your account to send email.
8741type PutAccountSendingAttributesInput struct {
8742	_ struct{} `type:"structure"`
8743
8744	// Enables or disables your account's ability to send email. Set to true to
8745	// enable email sending, or set to false to disable email sending.
8746	//
8747	// If AWS paused your account's ability to send email, you can't use this operation
8748	// to resume your account's ability to send email.
8749	SendingEnabled *bool `type:"boolean"`
8750}
8751
8752// String returns the string representation
8753func (s PutAccountSendingAttributesInput) String() string {
8754	return awsutil.Prettify(s)
8755}
8756
8757// GoString returns the string representation
8758func (s PutAccountSendingAttributesInput) GoString() string {
8759	return s.String()
8760}
8761
8762// SetSendingEnabled sets the SendingEnabled field's value.
8763func (s *PutAccountSendingAttributesInput) SetSendingEnabled(v bool) *PutAccountSendingAttributesInput {
8764	s.SendingEnabled = &v
8765	return s
8766}
8767
8768// An HTTP 200 response if the request succeeds, or an error message if the
8769// request fails.
8770type PutAccountSendingAttributesOutput struct {
8771	_ struct{} `type:"structure"`
8772}
8773
8774// String returns the string representation
8775func (s PutAccountSendingAttributesOutput) String() string {
8776	return awsutil.Prettify(s)
8777}
8778
8779// GoString returns the string representation
8780func (s PutAccountSendingAttributesOutput) GoString() string {
8781	return s.String()
8782}
8783
8784// A request to associate a configuration set with a dedicated IP pool.
8785type PutConfigurationSetDeliveryOptionsInput struct {
8786	_ struct{} `type:"structure"`
8787
8788	// The name of the configuration set that you want to associate with a dedicated
8789	// IP pool.
8790	//
8791	// ConfigurationSetName is a required field
8792	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
8793
8794	// The name of the dedicated IP pool that you want to associate with the configuration
8795	// set.
8796	SendingPoolName *string `type:"string"`
8797
8798	// Specifies whether messages that use the configuration set are required to
8799	// use Transport Layer Security (TLS). If the value is Require, messages are
8800	// only delivered if a TLS connection can be established. If the value is Optional,
8801	// messages can be delivered in plain text if a TLS connection can't be established.
8802	TlsPolicy *string `type:"string" enum:"TlsPolicy"`
8803}
8804
8805// String returns the string representation
8806func (s PutConfigurationSetDeliveryOptionsInput) String() string {
8807	return awsutil.Prettify(s)
8808}
8809
8810// GoString returns the string representation
8811func (s PutConfigurationSetDeliveryOptionsInput) GoString() string {
8812	return s.String()
8813}
8814
8815// Validate inspects the fields of the type to determine if they are valid.
8816func (s *PutConfigurationSetDeliveryOptionsInput) Validate() error {
8817	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetDeliveryOptionsInput"}
8818	if s.ConfigurationSetName == nil {
8819		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
8820	}
8821	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
8822		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
8823	}
8824
8825	if invalidParams.Len() > 0 {
8826		return invalidParams
8827	}
8828	return nil
8829}
8830
8831// SetConfigurationSetName sets the ConfigurationSetName field's value.
8832func (s *PutConfigurationSetDeliveryOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetDeliveryOptionsInput {
8833	s.ConfigurationSetName = &v
8834	return s
8835}
8836
8837// SetSendingPoolName sets the SendingPoolName field's value.
8838func (s *PutConfigurationSetDeliveryOptionsInput) SetSendingPoolName(v string) *PutConfigurationSetDeliveryOptionsInput {
8839	s.SendingPoolName = &v
8840	return s
8841}
8842
8843// SetTlsPolicy sets the TlsPolicy field's value.
8844func (s *PutConfigurationSetDeliveryOptionsInput) SetTlsPolicy(v string) *PutConfigurationSetDeliveryOptionsInput {
8845	s.TlsPolicy = &v
8846	return s
8847}
8848
8849// An HTTP 200 response if the request succeeds, or an error message if the
8850// request fails.
8851type PutConfigurationSetDeliveryOptionsOutput struct {
8852	_ struct{} `type:"structure"`
8853}
8854
8855// String returns the string representation
8856func (s PutConfigurationSetDeliveryOptionsOutput) String() string {
8857	return awsutil.Prettify(s)
8858}
8859
8860// GoString returns the string representation
8861func (s PutConfigurationSetDeliveryOptionsOutput) GoString() string {
8862	return s.String()
8863}
8864
8865// A request to enable or disable tracking of reputation metrics for a configuration
8866// set.
8867type PutConfigurationSetReputationOptionsInput struct {
8868	_ struct{} `type:"structure"`
8869
8870	// The name of the configuration set that you want to enable or disable reputation
8871	// metric tracking for.
8872	//
8873	// ConfigurationSetName is a required field
8874	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
8875
8876	// If true, tracking of reputation metrics is enabled for the configuration
8877	// set. If false, tracking of reputation metrics is disabled for the configuration
8878	// set.
8879	ReputationMetricsEnabled *bool `type:"boolean"`
8880}
8881
8882// String returns the string representation
8883func (s PutConfigurationSetReputationOptionsInput) String() string {
8884	return awsutil.Prettify(s)
8885}
8886
8887// GoString returns the string representation
8888func (s PutConfigurationSetReputationOptionsInput) GoString() string {
8889	return s.String()
8890}
8891
8892// Validate inspects the fields of the type to determine if they are valid.
8893func (s *PutConfigurationSetReputationOptionsInput) Validate() error {
8894	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetReputationOptionsInput"}
8895	if s.ConfigurationSetName == nil {
8896		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
8897	}
8898	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
8899		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
8900	}
8901
8902	if invalidParams.Len() > 0 {
8903		return invalidParams
8904	}
8905	return nil
8906}
8907
8908// SetConfigurationSetName sets the ConfigurationSetName field's value.
8909func (s *PutConfigurationSetReputationOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetReputationOptionsInput {
8910	s.ConfigurationSetName = &v
8911	return s
8912}
8913
8914// SetReputationMetricsEnabled sets the ReputationMetricsEnabled field's value.
8915func (s *PutConfigurationSetReputationOptionsInput) SetReputationMetricsEnabled(v bool) *PutConfigurationSetReputationOptionsInput {
8916	s.ReputationMetricsEnabled = &v
8917	return s
8918}
8919
8920// An HTTP 200 response if the request succeeds, or an error message if the
8921// request fails.
8922type PutConfigurationSetReputationOptionsOutput struct {
8923	_ struct{} `type:"structure"`
8924}
8925
8926// String returns the string representation
8927func (s PutConfigurationSetReputationOptionsOutput) String() string {
8928	return awsutil.Prettify(s)
8929}
8930
8931// GoString returns the string representation
8932func (s PutConfigurationSetReputationOptionsOutput) GoString() string {
8933	return s.String()
8934}
8935
8936// A request to enable or disable the ability of Amazon Pinpoint to send emails
8937// that use a specific configuration set.
8938type PutConfigurationSetSendingOptionsInput struct {
8939	_ struct{} `type:"structure"`
8940
8941	// The name of the configuration set that you want to enable or disable email
8942	// sending for.
8943	//
8944	// ConfigurationSetName is a required field
8945	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
8946
8947	// If true, email sending is enabled for the configuration set. If false, email
8948	// sending is disabled for the configuration set.
8949	SendingEnabled *bool `type:"boolean"`
8950}
8951
8952// String returns the string representation
8953func (s PutConfigurationSetSendingOptionsInput) String() string {
8954	return awsutil.Prettify(s)
8955}
8956
8957// GoString returns the string representation
8958func (s PutConfigurationSetSendingOptionsInput) GoString() string {
8959	return s.String()
8960}
8961
8962// Validate inspects the fields of the type to determine if they are valid.
8963func (s *PutConfigurationSetSendingOptionsInput) Validate() error {
8964	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetSendingOptionsInput"}
8965	if s.ConfigurationSetName == nil {
8966		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
8967	}
8968	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
8969		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
8970	}
8971
8972	if invalidParams.Len() > 0 {
8973		return invalidParams
8974	}
8975	return nil
8976}
8977
8978// SetConfigurationSetName sets the ConfigurationSetName field's value.
8979func (s *PutConfigurationSetSendingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetSendingOptionsInput {
8980	s.ConfigurationSetName = &v
8981	return s
8982}
8983
8984// SetSendingEnabled sets the SendingEnabled field's value.
8985func (s *PutConfigurationSetSendingOptionsInput) SetSendingEnabled(v bool) *PutConfigurationSetSendingOptionsInput {
8986	s.SendingEnabled = &v
8987	return s
8988}
8989
8990// An HTTP 200 response if the request succeeds, or an error message if the
8991// request fails.
8992type PutConfigurationSetSendingOptionsOutput struct {
8993	_ struct{} `type:"structure"`
8994}
8995
8996// String returns the string representation
8997func (s PutConfigurationSetSendingOptionsOutput) String() string {
8998	return awsutil.Prettify(s)
8999}
9000
9001// GoString returns the string representation
9002func (s PutConfigurationSetSendingOptionsOutput) GoString() string {
9003	return s.String()
9004}
9005
9006// A request to add a custom domain for tracking open and click events to a
9007// configuration set.
9008type PutConfigurationSetTrackingOptionsInput struct {
9009	_ struct{} `type:"structure"`
9010
9011	// The name of the configuration set that you want to add a custom tracking
9012	// domain to.
9013	//
9014	// ConfigurationSetName is a required field
9015	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
9016
9017	// The domain that you want to use to track open and click events.
9018	CustomRedirectDomain *string `type:"string"`
9019}
9020
9021// String returns the string representation
9022func (s PutConfigurationSetTrackingOptionsInput) String() string {
9023	return awsutil.Prettify(s)
9024}
9025
9026// GoString returns the string representation
9027func (s PutConfigurationSetTrackingOptionsInput) GoString() string {
9028	return s.String()
9029}
9030
9031// Validate inspects the fields of the type to determine if they are valid.
9032func (s *PutConfigurationSetTrackingOptionsInput) Validate() error {
9033	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetTrackingOptionsInput"}
9034	if s.ConfigurationSetName == nil {
9035		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
9036	}
9037	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
9038		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
9039	}
9040
9041	if invalidParams.Len() > 0 {
9042		return invalidParams
9043	}
9044	return nil
9045}
9046
9047// SetConfigurationSetName sets the ConfigurationSetName field's value.
9048func (s *PutConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetTrackingOptionsInput {
9049	s.ConfigurationSetName = &v
9050	return s
9051}
9052
9053// SetCustomRedirectDomain sets the CustomRedirectDomain field's value.
9054func (s *PutConfigurationSetTrackingOptionsInput) SetCustomRedirectDomain(v string) *PutConfigurationSetTrackingOptionsInput {
9055	s.CustomRedirectDomain = &v
9056	return s
9057}
9058
9059// An HTTP 200 response if the request succeeds, or an error message if the
9060// request fails.
9061type PutConfigurationSetTrackingOptionsOutput struct {
9062	_ struct{} `type:"structure"`
9063}
9064
9065// String returns the string representation
9066func (s PutConfigurationSetTrackingOptionsOutput) String() string {
9067	return awsutil.Prettify(s)
9068}
9069
9070// GoString returns the string representation
9071func (s PutConfigurationSetTrackingOptionsOutput) GoString() string {
9072	return s.String()
9073}
9074
9075// A request to move a dedicated IP address to a dedicated IP pool.
9076type PutDedicatedIpInPoolInput struct {
9077	_ struct{} `type:"structure"`
9078
9079	// The name of the IP pool that you want to add the dedicated IP address to.
9080	// You have to specify an IP pool that already exists.
9081	//
9082	// DestinationPoolName is a required field
9083	DestinationPoolName *string `type:"string" required:"true"`
9084
9085	// The IP address that you want to move to the dedicated IP pool. The value
9086	// you specify has to be a dedicated IP address that's associated with your
9087	// Amazon Pinpoint account.
9088	//
9089	// Ip is a required field
9090	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
9091}
9092
9093// String returns the string representation
9094func (s PutDedicatedIpInPoolInput) String() string {
9095	return awsutil.Prettify(s)
9096}
9097
9098// GoString returns the string representation
9099func (s PutDedicatedIpInPoolInput) GoString() string {
9100	return s.String()
9101}
9102
9103// Validate inspects the fields of the type to determine if they are valid.
9104func (s *PutDedicatedIpInPoolInput) Validate() error {
9105	invalidParams := request.ErrInvalidParams{Context: "PutDedicatedIpInPoolInput"}
9106	if s.DestinationPoolName == nil {
9107		invalidParams.Add(request.NewErrParamRequired("DestinationPoolName"))
9108	}
9109	if s.Ip == nil {
9110		invalidParams.Add(request.NewErrParamRequired("Ip"))
9111	}
9112	if s.Ip != nil && len(*s.Ip) < 1 {
9113		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
9114	}
9115
9116	if invalidParams.Len() > 0 {
9117		return invalidParams
9118	}
9119	return nil
9120}
9121
9122// SetDestinationPoolName sets the DestinationPoolName field's value.
9123func (s *PutDedicatedIpInPoolInput) SetDestinationPoolName(v string) *PutDedicatedIpInPoolInput {
9124	s.DestinationPoolName = &v
9125	return s
9126}
9127
9128// SetIp sets the Ip field's value.
9129func (s *PutDedicatedIpInPoolInput) SetIp(v string) *PutDedicatedIpInPoolInput {
9130	s.Ip = &v
9131	return s
9132}
9133
9134// An HTTP 200 response if the request succeeds, or an error message if the
9135// request fails.
9136type PutDedicatedIpInPoolOutput struct {
9137	_ struct{} `type:"structure"`
9138}
9139
9140// String returns the string representation
9141func (s PutDedicatedIpInPoolOutput) String() string {
9142	return awsutil.Prettify(s)
9143}
9144
9145// GoString returns the string representation
9146func (s PutDedicatedIpInPoolOutput) GoString() string {
9147	return s.String()
9148}
9149
9150// A request to change the warm-up attributes for a dedicated IP address. This
9151// operation is useful when you want to resume the warm-up process for an existing
9152// IP address.
9153type PutDedicatedIpWarmupAttributesInput struct {
9154	_ struct{} `type:"structure"`
9155
9156	// The dedicated IP address that you want to update the warm-up attributes for.
9157	//
9158	// Ip is a required field
9159	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
9160
9161	// The warm-up percentage that you want to associate with the dedicated IP address.
9162	//
9163	// WarmupPercentage is a required field
9164	WarmupPercentage *int64 `type:"integer" required:"true"`
9165}
9166
9167// String returns the string representation
9168func (s PutDedicatedIpWarmupAttributesInput) String() string {
9169	return awsutil.Prettify(s)
9170}
9171
9172// GoString returns the string representation
9173func (s PutDedicatedIpWarmupAttributesInput) GoString() string {
9174	return s.String()
9175}
9176
9177// Validate inspects the fields of the type to determine if they are valid.
9178func (s *PutDedicatedIpWarmupAttributesInput) Validate() error {
9179	invalidParams := request.ErrInvalidParams{Context: "PutDedicatedIpWarmupAttributesInput"}
9180	if s.Ip == nil {
9181		invalidParams.Add(request.NewErrParamRequired("Ip"))
9182	}
9183	if s.Ip != nil && len(*s.Ip) < 1 {
9184		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
9185	}
9186	if s.WarmupPercentage == nil {
9187		invalidParams.Add(request.NewErrParamRequired("WarmupPercentage"))
9188	}
9189
9190	if invalidParams.Len() > 0 {
9191		return invalidParams
9192	}
9193	return nil
9194}
9195
9196// SetIp sets the Ip field's value.
9197func (s *PutDedicatedIpWarmupAttributesInput) SetIp(v string) *PutDedicatedIpWarmupAttributesInput {
9198	s.Ip = &v
9199	return s
9200}
9201
9202// SetWarmupPercentage sets the WarmupPercentage field's value.
9203func (s *PutDedicatedIpWarmupAttributesInput) SetWarmupPercentage(v int64) *PutDedicatedIpWarmupAttributesInput {
9204	s.WarmupPercentage = &v
9205	return s
9206}
9207
9208// An HTTP 200 response if the request succeeds, or an error message if the
9209// request fails.
9210type PutDedicatedIpWarmupAttributesOutput struct {
9211	_ struct{} `type:"structure"`
9212}
9213
9214// String returns the string representation
9215func (s PutDedicatedIpWarmupAttributesOutput) String() string {
9216	return awsutil.Prettify(s)
9217}
9218
9219// GoString returns the string representation
9220func (s PutDedicatedIpWarmupAttributesOutput) GoString() string {
9221	return s.String()
9222}
9223
9224// Enable or disable the Deliverability dashboard for your Amazon Pinpoint account.
9225// When you enable the Deliverability dashboard, you gain access to reputation,
9226// deliverability, and other metrics for the domains that you use to send email
9227// using Amazon Pinpoint. You also gain the ability to perform predictive inbox
9228// placement tests.
9229//
9230// When you use the Deliverability dashboard, you pay a monthly subscription
9231// charge, in addition to any other fees that you accrue by using Amazon Pinpoint.
9232// For more information about the features and cost of a Deliverability dashboard
9233// subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
9234type PutDeliverabilityDashboardOptionInput struct {
9235	_ struct{} `type:"structure"`
9236
9237	// Specifies whether to enable the Deliverability dashboard for your Amazon
9238	// Pinpoint account. To enable the dashboard, set this value to true.
9239	//
9240	// DashboardEnabled is a required field
9241	DashboardEnabled *bool `type:"boolean" required:"true"`
9242
9243	// An array of objects, one for each verified domain that you use to send email
9244	// and enabled the Deliverability dashboard for.
9245	SubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
9246}
9247
9248// String returns the string representation
9249func (s PutDeliverabilityDashboardOptionInput) String() string {
9250	return awsutil.Prettify(s)
9251}
9252
9253// GoString returns the string representation
9254func (s PutDeliverabilityDashboardOptionInput) GoString() string {
9255	return s.String()
9256}
9257
9258// Validate inspects the fields of the type to determine if they are valid.
9259func (s *PutDeliverabilityDashboardOptionInput) Validate() error {
9260	invalidParams := request.ErrInvalidParams{Context: "PutDeliverabilityDashboardOptionInput"}
9261	if s.DashboardEnabled == nil {
9262		invalidParams.Add(request.NewErrParamRequired("DashboardEnabled"))
9263	}
9264
9265	if invalidParams.Len() > 0 {
9266		return invalidParams
9267	}
9268	return nil
9269}
9270
9271// SetDashboardEnabled sets the DashboardEnabled field's value.
9272func (s *PutDeliverabilityDashboardOptionInput) SetDashboardEnabled(v bool) *PutDeliverabilityDashboardOptionInput {
9273	s.DashboardEnabled = &v
9274	return s
9275}
9276
9277// SetSubscribedDomains sets the SubscribedDomains field's value.
9278func (s *PutDeliverabilityDashboardOptionInput) SetSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *PutDeliverabilityDashboardOptionInput {
9279	s.SubscribedDomains = v
9280	return s
9281}
9282
9283// A response that indicates whether the Deliverability dashboard is enabled
9284// for your Amazon Pinpoint account.
9285type PutDeliverabilityDashboardOptionOutput struct {
9286	_ struct{} `type:"structure"`
9287}
9288
9289// String returns the string representation
9290func (s PutDeliverabilityDashboardOptionOutput) String() string {
9291	return awsutil.Prettify(s)
9292}
9293
9294// GoString returns the string representation
9295func (s PutDeliverabilityDashboardOptionOutput) GoString() string {
9296	return s.String()
9297}
9298
9299// A request to enable or disable DKIM signing of email that you send from an
9300// email identity.
9301type PutEmailIdentityDkimAttributesInput struct {
9302	_ struct{} `type:"structure"`
9303
9304	// The email identity that you want to change the DKIM settings for.
9305	//
9306	// EmailIdentity is a required field
9307	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
9308
9309	// Sets the DKIM signing configuration for the identity.
9310	//
9311	// When you set this value true, then the messages that Amazon Pinpoint sends
9312	// from the identity are DKIM-signed. When you set this value to false, then
9313	// the messages that Amazon Pinpoint sends from the identity aren't DKIM-signed.
9314	SigningEnabled *bool `type:"boolean"`
9315}
9316
9317// String returns the string representation
9318func (s PutEmailIdentityDkimAttributesInput) String() string {
9319	return awsutil.Prettify(s)
9320}
9321
9322// GoString returns the string representation
9323func (s PutEmailIdentityDkimAttributesInput) GoString() string {
9324	return s.String()
9325}
9326
9327// Validate inspects the fields of the type to determine if they are valid.
9328func (s *PutEmailIdentityDkimAttributesInput) Validate() error {
9329	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityDkimAttributesInput"}
9330	if s.EmailIdentity == nil {
9331		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
9332	}
9333	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
9334		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
9335	}
9336
9337	if invalidParams.Len() > 0 {
9338		return invalidParams
9339	}
9340	return nil
9341}
9342
9343// SetEmailIdentity sets the EmailIdentity field's value.
9344func (s *PutEmailIdentityDkimAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityDkimAttributesInput {
9345	s.EmailIdentity = &v
9346	return s
9347}
9348
9349// SetSigningEnabled sets the SigningEnabled field's value.
9350func (s *PutEmailIdentityDkimAttributesInput) SetSigningEnabled(v bool) *PutEmailIdentityDkimAttributesInput {
9351	s.SigningEnabled = &v
9352	return s
9353}
9354
9355// An HTTP 200 response if the request succeeds, or an error message if the
9356// request fails.
9357type PutEmailIdentityDkimAttributesOutput struct {
9358	_ struct{} `type:"structure"`
9359}
9360
9361// String returns the string representation
9362func (s PutEmailIdentityDkimAttributesOutput) String() string {
9363	return awsutil.Prettify(s)
9364}
9365
9366// GoString returns the string representation
9367func (s PutEmailIdentityDkimAttributesOutput) GoString() string {
9368	return s.String()
9369}
9370
9371// A request to set the attributes that control how bounce and complaint events
9372// are processed.
9373type PutEmailIdentityFeedbackAttributesInput struct {
9374	_ struct{} `type:"structure"`
9375
9376	// Sets the feedback forwarding configuration for the identity.
9377	//
9378	// If the value is true, Amazon Pinpoint sends you email notifications when
9379	// bounce or complaint events occur. Amazon Pinpoint sends this notification
9380	// to the address that you specified in the Return-Path header of the original
9381	// email.
9382	//
9383	// When you set this value to false, Amazon Pinpoint sends notifications through
9384	// other mechanisms, such as by notifying an Amazon SNS topic or another event
9385	// destination. You're required to have a method of tracking bounces and complaints.
9386	// If you haven't set up another mechanism for receiving bounce or complaint
9387	// notifications, Amazon Pinpoint sends an email notification when these events
9388	// occur (even if this setting is disabled).
9389	EmailForwardingEnabled *bool `type:"boolean"`
9390
9391	// The email identity that you want to configure bounce and complaint feedback
9392	// forwarding for.
9393	//
9394	// EmailIdentity is a required field
9395	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
9396}
9397
9398// String returns the string representation
9399func (s PutEmailIdentityFeedbackAttributesInput) String() string {
9400	return awsutil.Prettify(s)
9401}
9402
9403// GoString returns the string representation
9404func (s PutEmailIdentityFeedbackAttributesInput) GoString() string {
9405	return s.String()
9406}
9407
9408// Validate inspects the fields of the type to determine if they are valid.
9409func (s *PutEmailIdentityFeedbackAttributesInput) Validate() error {
9410	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityFeedbackAttributesInput"}
9411	if s.EmailIdentity == nil {
9412		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
9413	}
9414	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
9415		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
9416	}
9417
9418	if invalidParams.Len() > 0 {
9419		return invalidParams
9420	}
9421	return nil
9422}
9423
9424// SetEmailForwardingEnabled sets the EmailForwardingEnabled field's value.
9425func (s *PutEmailIdentityFeedbackAttributesInput) SetEmailForwardingEnabled(v bool) *PutEmailIdentityFeedbackAttributesInput {
9426	s.EmailForwardingEnabled = &v
9427	return s
9428}
9429
9430// SetEmailIdentity sets the EmailIdentity field's value.
9431func (s *PutEmailIdentityFeedbackAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityFeedbackAttributesInput {
9432	s.EmailIdentity = &v
9433	return s
9434}
9435
9436// An HTTP 200 response if the request succeeds, or an error message if the
9437// request fails.
9438type PutEmailIdentityFeedbackAttributesOutput struct {
9439	_ struct{} `type:"structure"`
9440}
9441
9442// String returns the string representation
9443func (s PutEmailIdentityFeedbackAttributesOutput) String() string {
9444	return awsutil.Prettify(s)
9445}
9446
9447// GoString returns the string representation
9448func (s PutEmailIdentityFeedbackAttributesOutput) GoString() string {
9449	return s.String()
9450}
9451
9452// A request to configure the custom MAIL FROM domain for a verified identity.
9453type PutEmailIdentityMailFromAttributesInput struct {
9454	_ struct{} `type:"structure"`
9455
9456	// The action that you want Amazon Pinpoint to take if it can't read the required
9457	// MX record when you send an email. When you set this value to UseDefaultValue,
9458	// Amazon Pinpoint uses amazonses.com as the MAIL FROM domain. When you set
9459	// this value to RejectMessage, Amazon Pinpoint returns a MailFromDomainNotVerified
9460	// error, and doesn't attempt to deliver the email.
9461	//
9462	// These behaviors are taken when the custom MAIL FROM domain configuration
9463	// is in the Pending, Failed, and TemporaryFailure states.
9464	BehaviorOnMxFailure *string `type:"string" enum:"BehaviorOnMxFailure"`
9465
9466	// The verified email identity that you want to set up the custom MAIL FROM
9467	// domain for.
9468	//
9469	// EmailIdentity is a required field
9470	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
9471
9472	// The custom MAIL FROM domain that you want the verified identity to use. The
9473	// MAIL FROM domain must meet the following criteria:
9474	//
9475	//    * It has to be a subdomain of the verified identity.
9476	//
9477	//    * It can't be used to receive email.
9478	//
9479	//    * It can't be used in a "From" address if the MAIL FROM domain is a destination
9480	//    for feedback forwarding emails.
9481	MailFromDomain *string `type:"string"`
9482}
9483
9484// String returns the string representation
9485func (s PutEmailIdentityMailFromAttributesInput) String() string {
9486	return awsutil.Prettify(s)
9487}
9488
9489// GoString returns the string representation
9490func (s PutEmailIdentityMailFromAttributesInput) GoString() string {
9491	return s.String()
9492}
9493
9494// Validate inspects the fields of the type to determine if they are valid.
9495func (s *PutEmailIdentityMailFromAttributesInput) Validate() error {
9496	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityMailFromAttributesInput"}
9497	if s.EmailIdentity == nil {
9498		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
9499	}
9500	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
9501		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
9502	}
9503
9504	if invalidParams.Len() > 0 {
9505		return invalidParams
9506	}
9507	return nil
9508}
9509
9510// SetBehaviorOnMxFailure sets the BehaviorOnMxFailure field's value.
9511func (s *PutEmailIdentityMailFromAttributesInput) SetBehaviorOnMxFailure(v string) *PutEmailIdentityMailFromAttributesInput {
9512	s.BehaviorOnMxFailure = &v
9513	return s
9514}
9515
9516// SetEmailIdentity sets the EmailIdentity field's value.
9517func (s *PutEmailIdentityMailFromAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityMailFromAttributesInput {
9518	s.EmailIdentity = &v
9519	return s
9520}
9521
9522// SetMailFromDomain sets the MailFromDomain field's value.
9523func (s *PutEmailIdentityMailFromAttributesInput) SetMailFromDomain(v string) *PutEmailIdentityMailFromAttributesInput {
9524	s.MailFromDomain = &v
9525	return s
9526}
9527
9528// An HTTP 200 response if the request succeeds, or an error message if the
9529// request fails.
9530type PutEmailIdentityMailFromAttributesOutput struct {
9531	_ struct{} `type:"structure"`
9532}
9533
9534// String returns the string representation
9535func (s PutEmailIdentityMailFromAttributesOutput) String() string {
9536	return awsutil.Prettify(s)
9537}
9538
9539// GoString returns the string representation
9540func (s PutEmailIdentityMailFromAttributesOutput) GoString() string {
9541	return s.String()
9542}
9543
9544// The raw email message.
9545type RawMessage struct {
9546	_ struct{} `type:"structure"`
9547
9548	// The raw email message. The message has to meet the following criteria:
9549	//
9550	//    * The message has to contain a header and a body, separated by one blank
9551	//    line.
9552	//
9553	//    * All of the required header fields must be present in the message.
9554	//
9555	//    * Each part of a multipart MIME message must be formatted properly.
9556	//
9557	//    * Attachments must be in a file format that Amazon Pinpoint supports.
9558	//
9559	//    * The entire message must be Base64 encoded.
9560	//
9561	//    * If any of the MIME parts in your message contain content that is outside
9562	//    of the 7-bit ASCII character range, you should encode that content to
9563	//    ensure that recipients' email clients render the message properly.
9564	//
9565	//    * The length of any single line of text in the message can't exceed 1,000
9566	//    characters. This restriction is defined in RFC 5321 (https://tools.ietf.org/html/rfc5321).
9567	//
9568	// Data is automatically base64 encoded/decoded by the SDK.
9569	//
9570	// Data is a required field
9571	Data []byte `type:"blob" required:"true"`
9572}
9573
9574// String returns the string representation
9575func (s RawMessage) String() string {
9576	return awsutil.Prettify(s)
9577}
9578
9579// GoString returns the string representation
9580func (s RawMessage) GoString() string {
9581	return s.String()
9582}
9583
9584// Validate inspects the fields of the type to determine if they are valid.
9585func (s *RawMessage) Validate() error {
9586	invalidParams := request.ErrInvalidParams{Context: "RawMessage"}
9587	if s.Data == nil {
9588		invalidParams.Add(request.NewErrParamRequired("Data"))
9589	}
9590
9591	if invalidParams.Len() > 0 {
9592		return invalidParams
9593	}
9594	return nil
9595}
9596
9597// SetData sets the Data field's value.
9598func (s *RawMessage) SetData(v []byte) *RawMessage {
9599	s.Data = v
9600	return s
9601}
9602
9603// Enable or disable collection of reputation metrics for emails that you send
9604// using this configuration set in the current AWS Region.
9605type ReputationOptions struct {
9606	_ struct{} `type:"structure"`
9607
9608	// The date and time (in Unix time) when the reputation metrics were last given
9609	// a fresh start. When your account is given a fresh start, your reputation
9610	// metrics are calculated starting from the date of the fresh start.
9611	LastFreshStart *time.Time `type:"timestamp"`
9612
9613	// If true, tracking of reputation metrics is enabled for the configuration
9614	// set. If false, tracking of reputation metrics is disabled for the configuration
9615	// set.
9616	ReputationMetricsEnabled *bool `type:"boolean"`
9617}
9618
9619// String returns the string representation
9620func (s ReputationOptions) String() string {
9621	return awsutil.Prettify(s)
9622}
9623
9624// GoString returns the string representation
9625func (s ReputationOptions) GoString() string {
9626	return s.String()
9627}
9628
9629// SetLastFreshStart sets the LastFreshStart field's value.
9630func (s *ReputationOptions) SetLastFreshStart(v time.Time) *ReputationOptions {
9631	s.LastFreshStart = &v
9632	return s
9633}
9634
9635// SetReputationMetricsEnabled sets the ReputationMetricsEnabled field's value.
9636func (s *ReputationOptions) SetReputationMetricsEnabled(v bool) *ReputationOptions {
9637	s.ReputationMetricsEnabled = &v
9638	return s
9639}
9640
9641// A request to send an email message.
9642type SendEmailInput struct {
9643	_ struct{} `type:"structure"`
9644
9645	// The name of the configuration set that you want to use when sending the email.
9646	ConfigurationSetName *string `type:"string"`
9647
9648	// An object that contains the body of the message. You can send either a Simple
9649	// message or a Raw message.
9650	//
9651	// Content is a required field
9652	Content *EmailContent `type:"structure" required:"true"`
9653
9654	// An object that contains the recipients of the email message.
9655	//
9656	// Destination is a required field
9657	Destination *Destination `type:"structure" required:"true"`
9658
9659	// A list of tags, in the form of name/value pairs, to apply to an email that
9660	// you send using the SendEmail operation. Tags correspond to characteristics
9661	// of the email that you define, so that you can publish email sending events.
9662	EmailTags []*MessageTag `type:"list"`
9663
9664	// The address that Amazon Pinpoint should send bounce and complaint notifications
9665	// to.
9666	FeedbackForwardingEmailAddress *string `type:"string"`
9667
9668	// The email address that you want to use as the "From" address for the email.
9669	// The address that you specify has to be verified.
9670	FromEmailAddress *string `type:"string"`
9671
9672	// The "Reply-to" email addresses for the message. When the recipient replies
9673	// to the message, each Reply-to address receives the reply.
9674	ReplyToAddresses []*string `type:"list"`
9675}
9676
9677// String returns the string representation
9678func (s SendEmailInput) String() string {
9679	return awsutil.Prettify(s)
9680}
9681
9682// GoString returns the string representation
9683func (s SendEmailInput) GoString() string {
9684	return s.String()
9685}
9686
9687// Validate inspects the fields of the type to determine if they are valid.
9688func (s *SendEmailInput) Validate() error {
9689	invalidParams := request.ErrInvalidParams{Context: "SendEmailInput"}
9690	if s.Content == nil {
9691		invalidParams.Add(request.NewErrParamRequired("Content"))
9692	}
9693	if s.Destination == nil {
9694		invalidParams.Add(request.NewErrParamRequired("Destination"))
9695	}
9696	if s.Content != nil {
9697		if err := s.Content.Validate(); err != nil {
9698			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
9699		}
9700	}
9701	if s.EmailTags != nil {
9702		for i, v := range s.EmailTags {
9703			if v == nil {
9704				continue
9705			}
9706			if err := v.Validate(); err != nil {
9707				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmailTags", i), err.(request.ErrInvalidParams))
9708			}
9709		}
9710	}
9711
9712	if invalidParams.Len() > 0 {
9713		return invalidParams
9714	}
9715	return nil
9716}
9717
9718// SetConfigurationSetName sets the ConfigurationSetName field's value.
9719func (s *SendEmailInput) SetConfigurationSetName(v string) *SendEmailInput {
9720	s.ConfigurationSetName = &v
9721	return s
9722}
9723
9724// SetContent sets the Content field's value.
9725func (s *SendEmailInput) SetContent(v *EmailContent) *SendEmailInput {
9726	s.Content = v
9727	return s
9728}
9729
9730// SetDestination sets the Destination field's value.
9731func (s *SendEmailInput) SetDestination(v *Destination) *SendEmailInput {
9732	s.Destination = v
9733	return s
9734}
9735
9736// SetEmailTags sets the EmailTags field's value.
9737func (s *SendEmailInput) SetEmailTags(v []*MessageTag) *SendEmailInput {
9738	s.EmailTags = v
9739	return s
9740}
9741
9742// SetFeedbackForwardingEmailAddress sets the FeedbackForwardingEmailAddress field's value.
9743func (s *SendEmailInput) SetFeedbackForwardingEmailAddress(v string) *SendEmailInput {
9744	s.FeedbackForwardingEmailAddress = &v
9745	return s
9746}
9747
9748// SetFromEmailAddress sets the FromEmailAddress field's value.
9749func (s *SendEmailInput) SetFromEmailAddress(v string) *SendEmailInput {
9750	s.FromEmailAddress = &v
9751	return s
9752}
9753
9754// SetReplyToAddresses sets the ReplyToAddresses field's value.
9755func (s *SendEmailInput) SetReplyToAddresses(v []*string) *SendEmailInput {
9756	s.ReplyToAddresses = v
9757	return s
9758}
9759
9760// A unique message ID that you receive when Amazon Pinpoint accepts an email
9761// for sending.
9762type SendEmailOutput struct {
9763	_ struct{} `type:"structure"`
9764
9765	// A unique identifier for the message that is generated when Amazon Pinpoint
9766	// accepts the message.
9767	//
9768	// It is possible for Amazon Pinpoint to accept a message without sending it.
9769	// This can happen when the message you're trying to send has an attachment
9770	// doesn't pass a virus check, or when you send a templated email that contains
9771	// invalid personalization content, for example.
9772	MessageId *string `type:"string"`
9773}
9774
9775// String returns the string representation
9776func (s SendEmailOutput) String() string {
9777	return awsutil.Prettify(s)
9778}
9779
9780// GoString returns the string representation
9781func (s SendEmailOutput) GoString() string {
9782	return s.String()
9783}
9784
9785// SetMessageId sets the MessageId field's value.
9786func (s *SendEmailOutput) SetMessageId(v string) *SendEmailOutput {
9787	s.MessageId = &v
9788	return s
9789}
9790
9791// An object that contains information about the per-day and per-second sending
9792// limits for your Amazon Pinpoint account in the current AWS Region.
9793type SendQuota struct {
9794	_ struct{} `type:"structure"`
9795
9796	// The maximum number of emails that you can send in the current AWS Region
9797	// over a 24-hour period. This value is also called your sending quota.
9798	Max24HourSend *float64 `type:"double"`
9799
9800	// The maximum number of emails that you can send per second in the current
9801	// AWS Region. This value is also called your maximum sending rate or your maximum
9802	// TPS (transactions per second) rate.
9803	MaxSendRate *float64 `type:"double"`
9804
9805	// The number of emails sent from your Amazon Pinpoint account in the current
9806	// AWS Region over the past 24 hours.
9807	SentLast24Hours *float64 `type:"double"`
9808}
9809
9810// String returns the string representation
9811func (s SendQuota) String() string {
9812	return awsutil.Prettify(s)
9813}
9814
9815// GoString returns the string representation
9816func (s SendQuota) GoString() string {
9817	return s.String()
9818}
9819
9820// SetMax24HourSend sets the Max24HourSend field's value.
9821func (s *SendQuota) SetMax24HourSend(v float64) *SendQuota {
9822	s.Max24HourSend = &v
9823	return s
9824}
9825
9826// SetMaxSendRate sets the MaxSendRate field's value.
9827func (s *SendQuota) SetMaxSendRate(v float64) *SendQuota {
9828	s.MaxSendRate = &v
9829	return s
9830}
9831
9832// SetSentLast24Hours sets the SentLast24Hours field's value.
9833func (s *SendQuota) SetSentLast24Hours(v float64) *SendQuota {
9834	s.SentLast24Hours = &v
9835	return s
9836}
9837
9838// Used to enable or disable email sending for messages that use this configuration
9839// set in the current AWS Region.
9840type SendingOptions struct {
9841	_ struct{} `type:"structure"`
9842
9843	// If true, email sending is enabled for the configuration set. If false, email
9844	// sending is disabled for the configuration set.
9845	SendingEnabled *bool `type:"boolean"`
9846}
9847
9848// String returns the string representation
9849func (s SendingOptions) String() string {
9850	return awsutil.Prettify(s)
9851}
9852
9853// GoString returns the string representation
9854func (s SendingOptions) GoString() string {
9855	return s.String()
9856}
9857
9858// SetSendingEnabled sets the SendingEnabled field's value.
9859func (s *SendingOptions) SetSendingEnabled(v bool) *SendingOptions {
9860	s.SendingEnabled = &v
9861	return s
9862}
9863
9864// The message can't be sent because the account's ability to send email is
9865// currently paused.
9866type SendingPausedException struct {
9867	_            struct{}                  `type:"structure"`
9868	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9869
9870	Message_ *string `locationName:"message" type:"string"`
9871}
9872
9873// String returns the string representation
9874func (s SendingPausedException) String() string {
9875	return awsutil.Prettify(s)
9876}
9877
9878// GoString returns the string representation
9879func (s SendingPausedException) GoString() string {
9880	return s.String()
9881}
9882
9883func newErrorSendingPausedException(v protocol.ResponseMetadata) error {
9884	return &SendingPausedException{
9885		RespMetadata: v,
9886	}
9887}
9888
9889// Code returns the exception type name.
9890func (s *SendingPausedException) Code() string {
9891	return "SendingPausedException"
9892}
9893
9894// Message returns the exception's message.
9895func (s *SendingPausedException) Message() string {
9896	if s.Message_ != nil {
9897		return *s.Message_
9898	}
9899	return ""
9900}
9901
9902// OrigErr always returns nil, satisfies awserr.Error interface.
9903func (s *SendingPausedException) OrigErr() error {
9904	return nil
9905}
9906
9907func (s *SendingPausedException) Error() string {
9908	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9909}
9910
9911// Status code returns the HTTP status code for the request's response error.
9912func (s *SendingPausedException) StatusCode() int {
9913	return s.RespMetadata.StatusCode
9914}
9915
9916// RequestID returns the service's response RequestID for request.
9917func (s *SendingPausedException) RequestID() string {
9918	return s.RespMetadata.RequestID
9919}
9920
9921// An object that defines an Amazon SNS destination for email events. You can
9922// use Amazon SNS to send notification when certain email events occur.
9923type SnsDestination struct {
9924	_ struct{} `type:"structure"`
9925
9926	// The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish
9927	// email events to. For more information about Amazon SNS topics, see the Amazon
9928	// SNS Developer Guide (https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
9929	//
9930	// TopicArn is a required field
9931	TopicArn *string `type:"string" required:"true"`
9932}
9933
9934// String returns the string representation
9935func (s SnsDestination) String() string {
9936	return awsutil.Prettify(s)
9937}
9938
9939// GoString returns the string representation
9940func (s SnsDestination) GoString() string {
9941	return s.String()
9942}
9943
9944// Validate inspects the fields of the type to determine if they are valid.
9945func (s *SnsDestination) Validate() error {
9946	invalidParams := request.ErrInvalidParams{Context: "SnsDestination"}
9947	if s.TopicArn == nil {
9948		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
9949	}
9950
9951	if invalidParams.Len() > 0 {
9952		return invalidParams
9953	}
9954	return nil
9955}
9956
9957// SetTopicArn sets the TopicArn field's value.
9958func (s *SnsDestination) SetTopicArn(v string) *SnsDestination {
9959	s.TopicArn = &v
9960	return s
9961}
9962
9963// An object that defines the tags that are associated with a resource. A tag
9964// is a label that you optionally define and associate with a resource in Amazon
9965// Pinpoint. Tags can help you categorize and manage resources in different
9966// ways, such as by purpose, owner, environment, or other criteria. A resource
9967// can have as many as 50 tags.
9968//
9969// Each tag consists of a required tag key and an associated tag value, both
9970// of which you define. A tag key is a general label that acts as a category
9971// for a more specific tag value. A tag value acts as a descriptor within a
9972// tag key. A tag key can contain as many as 128 characters. A tag value can
9973// contain as many as 256 characters. The characters can be Unicode letters,
9974// digits, white space, or one of the following symbols: _ . : / = + -. The
9975// following additional restrictions apply to tags:
9976//
9977//    * Tag keys and values are case sensitive.
9978//
9979//    * For each associated resource, each tag key must be unique and it can
9980//    have only one value.
9981//
9982//    * The aws: prefix is reserved for use by AWS; you can’t use it in any
9983//    tag keys or values that you define. In addition, you can't edit or remove
9984//    tag keys or values that use this prefix. Tags that use this prefix don’t
9985//    count against the limit of 50 tags per resource.
9986//
9987//    * You can associate tags with public or shared resources, but the tags
9988//    are available only for your AWS account, not any other accounts that share
9989//    the resource. In addition, the tags are available only for resources that
9990//    are located in the specified AWS Region for your AWS account.
9991type Tag struct {
9992	_ struct{} `type:"structure"`
9993
9994	// One part of a key-value pair that defines a tag. The maximum length of a
9995	// tag key is 128 characters. The minimum length is 1 character.
9996	//
9997	// Key is a required field
9998	Key *string `type:"string" required:"true"`
9999
10000	// The optional part of a key-value pair that defines a tag. The maximum length
10001	// of a tag value is 256 characters. The minimum length is 0 characters. If
10002	// you don’t want a resource to have a specific tag value, don’t specify
10003	// a value for this parameter. Amazon Pinpoint will set the value to an empty
10004	// string.
10005	//
10006	// Value is a required field
10007	Value *string `type:"string" required:"true"`
10008}
10009
10010// String returns the string representation
10011func (s Tag) String() string {
10012	return awsutil.Prettify(s)
10013}
10014
10015// GoString returns the string representation
10016func (s Tag) GoString() string {
10017	return s.String()
10018}
10019
10020// Validate inspects the fields of the type to determine if they are valid.
10021func (s *Tag) Validate() error {
10022	invalidParams := request.ErrInvalidParams{Context: "Tag"}
10023	if s.Key == nil {
10024		invalidParams.Add(request.NewErrParamRequired("Key"))
10025	}
10026	if s.Value == nil {
10027		invalidParams.Add(request.NewErrParamRequired("Value"))
10028	}
10029
10030	if invalidParams.Len() > 0 {
10031		return invalidParams
10032	}
10033	return nil
10034}
10035
10036// SetKey sets the Key field's value.
10037func (s *Tag) SetKey(v string) *Tag {
10038	s.Key = &v
10039	return s
10040}
10041
10042// SetValue sets the Value field's value.
10043func (s *Tag) SetValue(v string) *Tag {
10044	s.Value = &v
10045	return s
10046}
10047
10048type TagResourceInput struct {
10049	_ struct{} `type:"structure"`
10050
10051	// The Amazon Resource Name (ARN) of the resource that you want to add one or
10052	// more tags to.
10053	//
10054	// ResourceArn is a required field
10055	ResourceArn *string `type:"string" required:"true"`
10056
10057	// A list of the tags that you want to add to the resource. A tag consists of
10058	// a required tag key (Key) and an associated tag value (Value). The maximum
10059	// length of a tag key is 128 characters. The maximum length of a tag value
10060	// is 256 characters.
10061	//
10062	// Tags is a required field
10063	Tags []*Tag `type:"list" required:"true"`
10064}
10065
10066// String returns the string representation
10067func (s TagResourceInput) String() string {
10068	return awsutil.Prettify(s)
10069}
10070
10071// GoString returns the string representation
10072func (s TagResourceInput) GoString() string {
10073	return s.String()
10074}
10075
10076// Validate inspects the fields of the type to determine if they are valid.
10077func (s *TagResourceInput) Validate() error {
10078	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
10079	if s.ResourceArn == nil {
10080		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10081	}
10082	if s.Tags == nil {
10083		invalidParams.Add(request.NewErrParamRequired("Tags"))
10084	}
10085	if s.Tags != nil {
10086		for i, v := range s.Tags {
10087			if v == nil {
10088				continue
10089			}
10090			if err := v.Validate(); err != nil {
10091				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10092			}
10093		}
10094	}
10095
10096	if invalidParams.Len() > 0 {
10097		return invalidParams
10098	}
10099	return nil
10100}
10101
10102// SetResourceArn sets the ResourceArn field's value.
10103func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
10104	s.ResourceArn = &v
10105	return s
10106}
10107
10108// SetTags sets the Tags field's value.
10109func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
10110	s.Tags = v
10111	return s
10112}
10113
10114type TagResourceOutput struct {
10115	_ struct{} `type:"structure"`
10116}
10117
10118// String returns the string representation
10119func (s TagResourceOutput) String() string {
10120	return awsutil.Prettify(s)
10121}
10122
10123// GoString returns the string representation
10124func (s TagResourceOutput) GoString() string {
10125	return s.String()
10126}
10127
10128type Template struct {
10129	_ struct{} `type:"structure"`
10130
10131	// The Amazon Resource Name (ARN) of the template.
10132	TemplateArn *string `type:"string"`
10133
10134	// An object that defines the values to use for message variables in the template.
10135	// This object is a set of key-value pairs. Each key defines a message variable
10136	// in the template. The corresponding value defines the value to use for that
10137	// variable.
10138	TemplateData *string `type:"string"`
10139}
10140
10141// String returns the string representation
10142func (s Template) String() string {
10143	return awsutil.Prettify(s)
10144}
10145
10146// GoString returns the string representation
10147func (s Template) GoString() string {
10148	return s.String()
10149}
10150
10151// SetTemplateArn sets the TemplateArn field's value.
10152func (s *Template) SetTemplateArn(v string) *Template {
10153	s.TemplateArn = &v
10154	return s
10155}
10156
10157// SetTemplateData sets the TemplateData field's value.
10158func (s *Template) SetTemplateData(v string) *Template {
10159	s.TemplateData = &v
10160	return s
10161}
10162
10163// Too many requests have been made to the operation.
10164type TooManyRequestsException struct {
10165	_            struct{}                  `type:"structure"`
10166	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10167
10168	Message_ *string `locationName:"message" type:"string"`
10169}
10170
10171// String returns the string representation
10172func (s TooManyRequestsException) String() string {
10173	return awsutil.Prettify(s)
10174}
10175
10176// GoString returns the string representation
10177func (s TooManyRequestsException) GoString() string {
10178	return s.String()
10179}
10180
10181func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
10182	return &TooManyRequestsException{
10183		RespMetadata: v,
10184	}
10185}
10186
10187// Code returns the exception type name.
10188func (s *TooManyRequestsException) Code() string {
10189	return "TooManyRequestsException"
10190}
10191
10192// Message returns the exception's message.
10193func (s *TooManyRequestsException) Message() string {
10194	if s.Message_ != nil {
10195		return *s.Message_
10196	}
10197	return ""
10198}
10199
10200// OrigErr always returns nil, satisfies awserr.Error interface.
10201func (s *TooManyRequestsException) OrigErr() error {
10202	return nil
10203}
10204
10205func (s *TooManyRequestsException) Error() string {
10206	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10207}
10208
10209// Status code returns the HTTP status code for the request's response error.
10210func (s *TooManyRequestsException) StatusCode() int {
10211	return s.RespMetadata.StatusCode
10212}
10213
10214// RequestID returns the service's response RequestID for request.
10215func (s *TooManyRequestsException) RequestID() string {
10216	return s.RespMetadata.RequestID
10217}
10218
10219// An object that defines the tracking options for a configuration set. When
10220// you use Amazon Pinpoint to send an email, it contains an invisible image
10221// that's used to track when recipients open your email. If your email contains
10222// links, those links are changed slightly in order to track when recipients
10223// click them.
10224//
10225// These images and links include references to a domain operated by AWS. You
10226// can optionally configure Amazon Pinpoint to use a domain that you operate
10227// for these images and links.
10228type TrackingOptions struct {
10229	_ struct{} `type:"structure"`
10230
10231	// The domain that you want to use for tracking open and click events.
10232	//
10233	// CustomRedirectDomain is a required field
10234	CustomRedirectDomain *string `type:"string" required:"true"`
10235}
10236
10237// String returns the string representation
10238func (s TrackingOptions) String() string {
10239	return awsutil.Prettify(s)
10240}
10241
10242// GoString returns the string representation
10243func (s TrackingOptions) GoString() string {
10244	return s.String()
10245}
10246
10247// Validate inspects the fields of the type to determine if they are valid.
10248func (s *TrackingOptions) Validate() error {
10249	invalidParams := request.ErrInvalidParams{Context: "TrackingOptions"}
10250	if s.CustomRedirectDomain == nil {
10251		invalidParams.Add(request.NewErrParamRequired("CustomRedirectDomain"))
10252	}
10253
10254	if invalidParams.Len() > 0 {
10255		return invalidParams
10256	}
10257	return nil
10258}
10259
10260// SetCustomRedirectDomain sets the CustomRedirectDomain field's value.
10261func (s *TrackingOptions) SetCustomRedirectDomain(v string) *TrackingOptions {
10262	s.CustomRedirectDomain = &v
10263	return s
10264}
10265
10266type UntagResourceInput struct {
10267	_ struct{} `type:"structure"`
10268
10269	// The Amazon Resource Name (ARN) of the resource that you want to remove one
10270	// or more tags from.
10271	//
10272	// ResourceArn is a required field
10273	ResourceArn *string `location:"querystring" locationName:"ResourceArn" type:"string" required:"true"`
10274
10275	// The tags (tag keys) that you want to remove from the resource. When you specify
10276	// a tag key, the action removes both that key and its associated tag value.
10277	//
10278	// To remove more than one tag from the resource, append the TagKeys parameter
10279	// and argument for each additional tag to remove, separated by an ampersand.
10280	// For example: /v1/email/tags?ResourceArn=ResourceArn&TagKeys=Key1&TagKeys=Key2
10281	//
10282	// TagKeys is a required field
10283	TagKeys []*string `location:"querystring" locationName:"TagKeys" type:"list" required:"true"`
10284}
10285
10286// String returns the string representation
10287func (s UntagResourceInput) String() string {
10288	return awsutil.Prettify(s)
10289}
10290
10291// GoString returns the string representation
10292func (s UntagResourceInput) GoString() string {
10293	return s.String()
10294}
10295
10296// Validate inspects the fields of the type to determine if they are valid.
10297func (s *UntagResourceInput) Validate() error {
10298	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
10299	if s.ResourceArn == nil {
10300		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10301	}
10302	if s.TagKeys == nil {
10303		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
10304	}
10305
10306	if invalidParams.Len() > 0 {
10307		return invalidParams
10308	}
10309	return nil
10310}
10311
10312// SetResourceArn sets the ResourceArn field's value.
10313func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
10314	s.ResourceArn = &v
10315	return s
10316}
10317
10318// SetTagKeys sets the TagKeys field's value.
10319func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
10320	s.TagKeys = v
10321	return s
10322}
10323
10324type UntagResourceOutput struct {
10325	_ struct{} `type:"structure"`
10326}
10327
10328// String returns the string representation
10329func (s UntagResourceOutput) String() string {
10330	return awsutil.Prettify(s)
10331}
10332
10333// GoString returns the string representation
10334func (s UntagResourceOutput) GoString() string {
10335	return s.String()
10336}
10337
10338// A request to change the settings for an event destination for a configuration
10339// set.
10340type UpdateConfigurationSetEventDestinationInput struct {
10341	_ struct{} `type:"structure"`
10342
10343	// The name of the configuration set that contains the event destination that
10344	// you want to modify.
10345	//
10346	// ConfigurationSetName is a required field
10347	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
10348
10349	// An object that defines the event destination.
10350	//
10351	// EventDestination is a required field
10352	EventDestination *EventDestinationDefinition `type:"structure" required:"true"`
10353
10354	// The name of the event destination that you want to modify.
10355	//
10356	// EventDestinationName is a required field
10357	EventDestinationName *string `location:"uri" locationName:"EventDestinationName" type:"string" required:"true"`
10358}
10359
10360// String returns the string representation
10361func (s UpdateConfigurationSetEventDestinationInput) String() string {
10362	return awsutil.Prettify(s)
10363}
10364
10365// GoString returns the string representation
10366func (s UpdateConfigurationSetEventDestinationInput) GoString() string {
10367	return s.String()
10368}
10369
10370// Validate inspects the fields of the type to determine if they are valid.
10371func (s *UpdateConfigurationSetEventDestinationInput) Validate() error {
10372	invalidParams := request.ErrInvalidParams{Context: "UpdateConfigurationSetEventDestinationInput"}
10373	if s.ConfigurationSetName == nil {
10374		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
10375	}
10376	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
10377		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
10378	}
10379	if s.EventDestination == nil {
10380		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
10381	}
10382	if s.EventDestinationName == nil {
10383		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
10384	}
10385	if s.EventDestinationName != nil && len(*s.EventDestinationName) < 1 {
10386		invalidParams.Add(request.NewErrParamMinLen("EventDestinationName", 1))
10387	}
10388	if s.EventDestination != nil {
10389		if err := s.EventDestination.Validate(); err != nil {
10390			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
10391		}
10392	}
10393
10394	if invalidParams.Len() > 0 {
10395		return invalidParams
10396	}
10397	return nil
10398}
10399
10400// SetConfigurationSetName sets the ConfigurationSetName field's value.
10401func (s *UpdateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *UpdateConfigurationSetEventDestinationInput {
10402	s.ConfigurationSetName = &v
10403	return s
10404}
10405
10406// SetEventDestination sets the EventDestination field's value.
10407func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestinationDefinition) *UpdateConfigurationSetEventDestinationInput {
10408	s.EventDestination = v
10409	return s
10410}
10411
10412// SetEventDestinationName sets the EventDestinationName field's value.
10413func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *UpdateConfigurationSetEventDestinationInput {
10414	s.EventDestinationName = &v
10415	return s
10416}
10417
10418// An HTTP 200 response if the request succeeds, or an error message if the
10419// request fails.
10420type UpdateConfigurationSetEventDestinationOutput struct {
10421	_ struct{} `type:"structure"`
10422}
10423
10424// String returns the string representation
10425func (s UpdateConfigurationSetEventDestinationOutput) String() string {
10426	return awsutil.Prettify(s)
10427}
10428
10429// GoString returns the string representation
10430func (s UpdateConfigurationSetEventDestinationOutput) GoString() string {
10431	return s.String()
10432}
10433
10434// An object that contains information about the amount of email that was delivered
10435// to recipients.
10436type VolumeStatistics struct {
10437	_ struct{} `type:"structure"`
10438
10439	// The total number of emails that arrived in recipients' inboxes.
10440	InboxRawCount *int64 `type:"long"`
10441
10442	// An estimate of the percentage of emails sent from the current domain that
10443	// will arrive in recipients' inboxes.
10444	ProjectedInbox *int64 `type:"long"`
10445
10446	// An estimate of the percentage of emails sent from the current domain that
10447	// will arrive in recipients' spam or junk mail folders.
10448	ProjectedSpam *int64 `type:"long"`
10449
10450	// The total number of emails that arrived in recipients' spam or junk mail
10451	// folders.
10452	SpamRawCount *int64 `type:"long"`
10453}
10454
10455// String returns the string representation
10456func (s VolumeStatistics) String() string {
10457	return awsutil.Prettify(s)
10458}
10459
10460// GoString returns the string representation
10461func (s VolumeStatistics) GoString() string {
10462	return s.String()
10463}
10464
10465// SetInboxRawCount sets the InboxRawCount field's value.
10466func (s *VolumeStatistics) SetInboxRawCount(v int64) *VolumeStatistics {
10467	s.InboxRawCount = &v
10468	return s
10469}
10470
10471// SetProjectedInbox sets the ProjectedInbox field's value.
10472func (s *VolumeStatistics) SetProjectedInbox(v int64) *VolumeStatistics {
10473	s.ProjectedInbox = &v
10474	return s
10475}
10476
10477// SetProjectedSpam sets the ProjectedSpam field's value.
10478func (s *VolumeStatistics) SetProjectedSpam(v int64) *VolumeStatistics {
10479	s.ProjectedSpam = &v
10480	return s
10481}
10482
10483// SetSpamRawCount sets the SpamRawCount field's value.
10484func (s *VolumeStatistics) SetSpamRawCount(v int64) *VolumeStatistics {
10485	s.SpamRawCount = &v
10486	return s
10487}
10488
10489// The action that you want Amazon Pinpoint to take if it can't read the required
10490// MX record for a custom MAIL FROM domain. When you set this value to UseDefaultValue,
10491// Amazon Pinpoint uses amazonses.com as the MAIL FROM domain. When you set
10492// this value to RejectMessage, Amazon Pinpoint returns a MailFromDomainNotVerified
10493// error, and doesn't attempt to deliver the email.
10494//
10495// These behaviors are taken when the custom MAIL FROM domain configuration
10496// is in the Pending, Failed, and TemporaryFailure states.
10497const (
10498	// BehaviorOnMxFailureUseDefaultValue is a BehaviorOnMxFailure enum value
10499	BehaviorOnMxFailureUseDefaultValue = "USE_DEFAULT_VALUE"
10500
10501	// BehaviorOnMxFailureRejectMessage is a BehaviorOnMxFailure enum value
10502	BehaviorOnMxFailureRejectMessage = "REJECT_MESSAGE"
10503)
10504
10505// BehaviorOnMxFailure_Values returns all elements of the BehaviorOnMxFailure enum
10506func BehaviorOnMxFailure_Values() []string {
10507	return []string{
10508		BehaviorOnMxFailureUseDefaultValue,
10509		BehaviorOnMxFailureRejectMessage,
10510	}
10511}
10512
10513// The current status of your Deliverability dashboard subscription. If this
10514// value is PENDING_EXPIRATION, your subscription is scheduled to expire at
10515// the end of the current calendar month.
10516const (
10517	// DeliverabilityDashboardAccountStatusActive is a DeliverabilityDashboardAccountStatus enum value
10518	DeliverabilityDashboardAccountStatusActive = "ACTIVE"
10519
10520	// DeliverabilityDashboardAccountStatusPendingExpiration is a DeliverabilityDashboardAccountStatus enum value
10521	DeliverabilityDashboardAccountStatusPendingExpiration = "PENDING_EXPIRATION"
10522
10523	// DeliverabilityDashboardAccountStatusDisabled is a DeliverabilityDashboardAccountStatus enum value
10524	DeliverabilityDashboardAccountStatusDisabled = "DISABLED"
10525)
10526
10527// DeliverabilityDashboardAccountStatus_Values returns all elements of the DeliverabilityDashboardAccountStatus enum
10528func DeliverabilityDashboardAccountStatus_Values() []string {
10529	return []string{
10530		DeliverabilityDashboardAccountStatusActive,
10531		DeliverabilityDashboardAccountStatusPendingExpiration,
10532		DeliverabilityDashboardAccountStatusDisabled,
10533	}
10534}
10535
10536// The status of a predictive inbox placement test. If the status is IN_PROGRESS,
10537// then the predictive inbox placement test is currently running. Predictive
10538// inbox placement tests are usually complete within 24 hours of creating the
10539// test. If the status is COMPLETE, then the test is finished, and you can use
10540// the GetDeliverabilityTestReport operation to view the results of the test.
10541const (
10542	// DeliverabilityTestStatusInProgress is a DeliverabilityTestStatus enum value
10543	DeliverabilityTestStatusInProgress = "IN_PROGRESS"
10544
10545	// DeliverabilityTestStatusCompleted is a DeliverabilityTestStatus enum value
10546	DeliverabilityTestStatusCompleted = "COMPLETED"
10547)
10548
10549// DeliverabilityTestStatus_Values returns all elements of the DeliverabilityTestStatus enum
10550func DeliverabilityTestStatus_Values() []string {
10551	return []string{
10552		DeliverabilityTestStatusInProgress,
10553		DeliverabilityTestStatusCompleted,
10554	}
10555}
10556
10557// The location where Amazon Pinpoint finds the value of a dimension to publish
10558// to Amazon CloudWatch. If you want Amazon Pinpoint to use the message tags
10559// that you specify using an X-SES-MESSAGE-TAGS header or a parameter to the
10560// SendEmail/SendRawEmail API, choose messageTag. If you want Amazon Pinpoint
10561// to use your own email headers, choose emailHeader. If you want Amazon Pinpoint
10562// to use link tags, choose linkTags.
10563const (
10564	// DimensionValueSourceMessageTag is a DimensionValueSource enum value
10565	DimensionValueSourceMessageTag = "MESSAGE_TAG"
10566
10567	// DimensionValueSourceEmailHeader is a DimensionValueSource enum value
10568	DimensionValueSourceEmailHeader = "EMAIL_HEADER"
10569
10570	// DimensionValueSourceLinkTag is a DimensionValueSource enum value
10571	DimensionValueSourceLinkTag = "LINK_TAG"
10572)
10573
10574// DimensionValueSource_Values returns all elements of the DimensionValueSource enum
10575func DimensionValueSource_Values() []string {
10576	return []string{
10577		DimensionValueSourceMessageTag,
10578		DimensionValueSourceEmailHeader,
10579		DimensionValueSourceLinkTag,
10580	}
10581}
10582
10583// The DKIM authentication status of the identity. The status can be one of
10584// the following:
10585//
10586//    * PENDING – The DKIM verification process was initiated, and Amazon
10587//    Pinpoint is still waiting for the required CNAME records to appear in
10588//    the DNS configuration for the domain.
10589//
10590//    * SUCCESS – The DKIM authentication process completed successfully.
10591//
10592//    * FAILED – The DKIM authentication process failed. This can happen when
10593//    Amazon Pinpoint fails to find the required CNAME records in the DNS configuration
10594//    of the domain.
10595//
10596//    * TEMPORARY_FAILURE – A temporary issue is preventing Amazon Pinpoint
10597//    from determining the DKIM authentication status of the domain.
10598//
10599//    * NOT_STARTED – The DKIM verification process hasn't been initiated
10600//    for the domain.
10601const (
10602	// DkimStatusPending is a DkimStatus enum value
10603	DkimStatusPending = "PENDING"
10604
10605	// DkimStatusSuccess is a DkimStatus enum value
10606	DkimStatusSuccess = "SUCCESS"
10607
10608	// DkimStatusFailed is a DkimStatus enum value
10609	DkimStatusFailed = "FAILED"
10610
10611	// DkimStatusTemporaryFailure is a DkimStatus enum value
10612	DkimStatusTemporaryFailure = "TEMPORARY_FAILURE"
10613
10614	// DkimStatusNotStarted is a DkimStatus enum value
10615	DkimStatusNotStarted = "NOT_STARTED"
10616)
10617
10618// DkimStatus_Values returns all elements of the DkimStatus enum
10619func DkimStatus_Values() []string {
10620	return []string{
10621		DkimStatusPending,
10622		DkimStatusSuccess,
10623		DkimStatusFailed,
10624		DkimStatusTemporaryFailure,
10625		DkimStatusNotStarted,
10626	}
10627}
10628
10629// An email sending event type. For example, email sends, opens, and bounces
10630// are all email events.
10631const (
10632	// EventTypeSend is a EventType enum value
10633	EventTypeSend = "SEND"
10634
10635	// EventTypeReject is a EventType enum value
10636	EventTypeReject = "REJECT"
10637
10638	// EventTypeBounce is a EventType enum value
10639	EventTypeBounce = "BOUNCE"
10640
10641	// EventTypeComplaint is a EventType enum value
10642	EventTypeComplaint = "COMPLAINT"
10643
10644	// EventTypeDelivery is a EventType enum value
10645	EventTypeDelivery = "DELIVERY"
10646
10647	// EventTypeOpen is a EventType enum value
10648	EventTypeOpen = "OPEN"
10649
10650	// EventTypeClick is a EventType enum value
10651	EventTypeClick = "CLICK"
10652
10653	// EventTypeRenderingFailure is a EventType enum value
10654	EventTypeRenderingFailure = "RENDERING_FAILURE"
10655)
10656
10657// EventType_Values returns all elements of the EventType enum
10658func EventType_Values() []string {
10659	return []string{
10660		EventTypeSend,
10661		EventTypeReject,
10662		EventTypeBounce,
10663		EventTypeComplaint,
10664		EventTypeDelivery,
10665		EventTypeOpen,
10666		EventTypeClick,
10667		EventTypeRenderingFailure,
10668	}
10669}
10670
10671// The email identity type. The identity type can be one of the following:
10672//
10673//    * EMAIL_ADDRESS – The identity is an email address.
10674//
10675//    * DOMAIN – The identity is a domain.
10676const (
10677	// IdentityTypeEmailAddress is a IdentityType enum value
10678	IdentityTypeEmailAddress = "EMAIL_ADDRESS"
10679
10680	// IdentityTypeDomain is a IdentityType enum value
10681	IdentityTypeDomain = "DOMAIN"
10682
10683	// IdentityTypeManagedDomain is a IdentityType enum value
10684	IdentityTypeManagedDomain = "MANAGED_DOMAIN"
10685)
10686
10687// IdentityType_Values returns all elements of the IdentityType enum
10688func IdentityType_Values() []string {
10689	return []string{
10690		IdentityTypeEmailAddress,
10691		IdentityTypeDomain,
10692		IdentityTypeManagedDomain,
10693	}
10694}
10695
10696// The status of the MAIL FROM domain. This status can have the following values:
10697//
10698//    * PENDING – Amazon Pinpoint hasn't started searching for the MX record
10699//    yet.
10700//
10701//    * SUCCESS – Amazon Pinpoint detected the required MX record for the
10702//    MAIL FROM domain.
10703//
10704//    * FAILED – Amazon Pinpoint can't find the required MX record, or the
10705//    record no longer exists.
10706//
10707//    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
10708//    Pinpoint from determining the status of the MAIL FROM domain.
10709const (
10710	// MailFromDomainStatusPending is a MailFromDomainStatus enum value
10711	MailFromDomainStatusPending = "PENDING"
10712
10713	// MailFromDomainStatusSuccess is a MailFromDomainStatus enum value
10714	MailFromDomainStatusSuccess = "SUCCESS"
10715
10716	// MailFromDomainStatusFailed is a MailFromDomainStatus enum value
10717	MailFromDomainStatusFailed = "FAILED"
10718
10719	// MailFromDomainStatusTemporaryFailure is a MailFromDomainStatus enum value
10720	MailFromDomainStatusTemporaryFailure = "TEMPORARY_FAILURE"
10721)
10722
10723// MailFromDomainStatus_Values returns all elements of the MailFromDomainStatus enum
10724func MailFromDomainStatus_Values() []string {
10725	return []string{
10726		MailFromDomainStatusPending,
10727		MailFromDomainStatusSuccess,
10728		MailFromDomainStatusFailed,
10729		MailFromDomainStatusTemporaryFailure,
10730	}
10731}
10732
10733// Specifies whether messages that use the configuration set are required to
10734// use Transport Layer Security (TLS). If the value is Require, messages are
10735// only delivered if a TLS connection can be established. If the value is Optional,
10736// messages can be delivered in plain text if a TLS connection can't be established.
10737const (
10738	// TlsPolicyRequire is a TlsPolicy enum value
10739	TlsPolicyRequire = "REQUIRE"
10740
10741	// TlsPolicyOptional is a TlsPolicy enum value
10742	TlsPolicyOptional = "OPTIONAL"
10743)
10744
10745// TlsPolicy_Values returns all elements of the TlsPolicy enum
10746func TlsPolicy_Values() []string {
10747	return []string{
10748		TlsPolicyRequire,
10749		TlsPolicyOptional,
10750	}
10751}
10752
10753// The warmup status of a dedicated IP.
10754const (
10755	// WarmupStatusInProgress is a WarmupStatus enum value
10756	WarmupStatusInProgress = "IN_PROGRESS"
10757
10758	// WarmupStatusDone is a WarmupStatus enum value
10759	WarmupStatusDone = "DONE"
10760)
10761
10762// WarmupStatus_Values returns all elements of the WarmupStatus enum
10763func WarmupStatus_Values() []string {
10764	return []string{
10765		WarmupStatusInProgress,
10766		WarmupStatusDone,
10767	}
10768}
10769