github.com/aavshr/aws-sdk-go@v1.41.3/service/pinpointemail/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package pinpointemail
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    14  )
    15  
    16  const 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
    42  func (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
    94  func (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.
   108  func (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  
   115  const 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
   141  func (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
   193  func (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.
   207  func (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  
   214  const 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
   240  func (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
   289  func (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.
   303  func (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  
   310  const 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
   336  func (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
   401  func (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.
   415  func (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  
   422  const 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
   448  func (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
   504  func (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.
   518  func (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  
   525  const 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
   551  func (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
   599  func (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.
   613  func (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  
   620  const 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
   646  func (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
   692  func (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.
   706  func (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  
   713  const 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
   739  func (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
   781  func (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.
   795  func (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  
   802  const 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
   828  func (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
   871  func (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.
   885  func (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  
   892  const 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
   918  func (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
   954  func (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.
   968  func (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  
   975  const 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
  1001  func (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
  1040  func (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.
  1054  func (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  
  1061  const 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
  1087  func (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
  1133  func (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.
  1147  func (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  
  1154  const 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
  1180  func (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
  1226  func (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.
  1240  func (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  
  1247  const 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
  1273  func (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
  1313  func (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.
  1327  func (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  
  1334  const 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
  1360  func (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
  1405  func (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.
  1419  func (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  //
  1443  func (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.
  1454  func (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  
  1478  const 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
  1504  func (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
  1551  func (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.
  1565  func (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  
  1572  const 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
  1598  func (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
  1636  func (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.
  1650  func (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  
  1657  const 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
  1683  func (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
  1724  func (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.
  1738  func (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  
  1745  const 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
  1771  func (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
  1810  func (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.
  1824  func (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  
  1831  const 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
  1857  func (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
  1897  func (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.
  1911  func (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  
  1918  const 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
  1944  func (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
  1992  func (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.
  2006  func (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  //
  2030  func (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.
  2041  func (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  
  2065  const 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
  2091  func (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
  2133  func (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.
  2147  func (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  //
  2171  func (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.
  2182  func (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  
  2206  const 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
  2232  func (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
  2279  func (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.
  2293  func (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  //
  2317  func (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.
  2328  func (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  
  2352  const 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
  2378  func (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
  2425  func (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.
  2439  func (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  //
  2463  func (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.
  2474  func (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  
  2498  const 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
  2524  func (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
  2568  func (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.
  2582  func (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  //
  2606  func (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.
  2617  func (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  
  2641  const 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
  2667  func (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
  2710  func (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.
  2724  func (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  
  2731  const 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
  2757  func (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
  2793  func (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.
  2807  func (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  
  2814  const 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
  2840  func (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
  2876  func (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.
  2890  func (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  
  2897  const 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
  2923  func (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
  2964  func (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.
  2978  func (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  
  2985  const 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
  3011  func (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
  3051  func (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.
  3065  func (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  
  3072  const 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
  3098  func (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
  3138  func (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.
  3152  func (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  
  3159  const 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
  3185  func (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
  3225  func (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.
  3239  func (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  
  3246  const 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
  3272  func (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
  3317  func (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.
  3331  func (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  
  3338  const 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
  3364  func (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
  3401  func (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.
  3415  func (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  
  3422  const 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
  3448  func (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
  3502  func (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.
  3516  func (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  
  3523  const 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
  3549  func (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
  3588  func (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.
  3602  func (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  
  3609  const 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
  3635  func (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
  3688  func (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.
  3702  func (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  
  3709  const 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
  3735  func (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
  3775  func (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.
  3789  func (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  
  3796  const 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
  3822  func (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
  3887  func (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.
  3901  func (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  
  3908  const 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
  3934  func (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
  3985  func (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.
  3999  func (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  
  4006  const 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
  4032  func (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
  4074  func (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.
  4088  func (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  
  4095  const 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
  4121  func (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
  4167  func (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.
  4181  func (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.
  4190  type 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.
  4198  //
  4199  // API parameter values that are decorated as "sensitive" in the API will not
  4200  // be included in the string output. The member name will be present, but the
  4201  // value will be replaced with "sensitive".
  4202  func (s AccountSuspendedException) String() string {
  4203  	return awsutil.Prettify(s)
  4204  }
  4205  
  4206  // GoString returns the string representation.
  4207  //
  4208  // API parameter values that are decorated as "sensitive" in the API will not
  4209  // be included in the string output. The member name will be present, but the
  4210  // value will be replaced with "sensitive".
  4211  func (s AccountSuspendedException) GoString() string {
  4212  	return s.String()
  4213  }
  4214  
  4215  func newErrorAccountSuspendedException(v protocol.ResponseMetadata) error {
  4216  	return &AccountSuspendedException{
  4217  		RespMetadata: v,
  4218  	}
  4219  }
  4220  
  4221  // Code returns the exception type name.
  4222  func (s *AccountSuspendedException) Code() string {
  4223  	return "AccountSuspendedException"
  4224  }
  4225  
  4226  // Message returns the exception's message.
  4227  func (s *AccountSuspendedException) Message() string {
  4228  	if s.Message_ != nil {
  4229  		return *s.Message_
  4230  	}
  4231  	return ""
  4232  }
  4233  
  4234  // OrigErr always returns nil, satisfies awserr.Error interface.
  4235  func (s *AccountSuspendedException) OrigErr() error {
  4236  	return nil
  4237  }
  4238  
  4239  func (s *AccountSuspendedException) Error() string {
  4240  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4241  }
  4242  
  4243  // Status code returns the HTTP status code for the request's response error.
  4244  func (s *AccountSuspendedException) StatusCode() int {
  4245  	return s.RespMetadata.StatusCode
  4246  }
  4247  
  4248  // RequestID returns the service's response RequestID for request.
  4249  func (s *AccountSuspendedException) RequestID() string {
  4250  	return s.RespMetadata.RequestID
  4251  }
  4252  
  4253  // The resource specified in your request already exists.
  4254  type AlreadyExistsException struct {
  4255  	_            struct{}                  `type:"structure"`
  4256  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4257  
  4258  	Message_ *string `locationName:"message" type:"string"`
  4259  }
  4260  
  4261  // String returns the string representation.
  4262  //
  4263  // API parameter values that are decorated as "sensitive" in the API will not
  4264  // be included in the string output. The member name will be present, but the
  4265  // value will be replaced with "sensitive".
  4266  func (s AlreadyExistsException) String() string {
  4267  	return awsutil.Prettify(s)
  4268  }
  4269  
  4270  // GoString returns the string representation.
  4271  //
  4272  // API parameter values that are decorated as "sensitive" in the API will not
  4273  // be included in the string output. The member name will be present, but the
  4274  // value will be replaced with "sensitive".
  4275  func (s AlreadyExistsException) GoString() string {
  4276  	return s.String()
  4277  }
  4278  
  4279  func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error {
  4280  	return &AlreadyExistsException{
  4281  		RespMetadata: v,
  4282  	}
  4283  }
  4284  
  4285  // Code returns the exception type name.
  4286  func (s *AlreadyExistsException) Code() string {
  4287  	return "AlreadyExistsException"
  4288  }
  4289  
  4290  // Message returns the exception's message.
  4291  func (s *AlreadyExistsException) Message() string {
  4292  	if s.Message_ != nil {
  4293  		return *s.Message_
  4294  	}
  4295  	return ""
  4296  }
  4297  
  4298  // OrigErr always returns nil, satisfies awserr.Error interface.
  4299  func (s *AlreadyExistsException) OrigErr() error {
  4300  	return nil
  4301  }
  4302  
  4303  func (s *AlreadyExistsException) Error() string {
  4304  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4305  }
  4306  
  4307  // Status code returns the HTTP status code for the request's response error.
  4308  func (s *AlreadyExistsException) StatusCode() int {
  4309  	return s.RespMetadata.StatusCode
  4310  }
  4311  
  4312  // RequestID returns the service's response RequestID for request.
  4313  func (s *AlreadyExistsException) RequestID() string {
  4314  	return s.RespMetadata.RequestID
  4315  }
  4316  
  4317  // The input you provided is invalid.
  4318  type BadRequestException struct {
  4319  	_            struct{}                  `type:"structure"`
  4320  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4321  
  4322  	Message_ *string `locationName:"message" type:"string"`
  4323  }
  4324  
  4325  // String returns the string representation.
  4326  //
  4327  // API parameter values that are decorated as "sensitive" in the API will not
  4328  // be included in the string output. The member name will be present, but the
  4329  // value will be replaced with "sensitive".
  4330  func (s BadRequestException) String() string {
  4331  	return awsutil.Prettify(s)
  4332  }
  4333  
  4334  // GoString returns the string representation.
  4335  //
  4336  // API parameter values that are decorated as "sensitive" in the API will not
  4337  // be included in the string output. The member name will be present, but the
  4338  // value will be replaced with "sensitive".
  4339  func (s BadRequestException) GoString() string {
  4340  	return s.String()
  4341  }
  4342  
  4343  func newErrorBadRequestException(v protocol.ResponseMetadata) error {
  4344  	return &BadRequestException{
  4345  		RespMetadata: v,
  4346  	}
  4347  }
  4348  
  4349  // Code returns the exception type name.
  4350  func (s *BadRequestException) Code() string {
  4351  	return "BadRequestException"
  4352  }
  4353  
  4354  // Message returns the exception's message.
  4355  func (s *BadRequestException) Message() string {
  4356  	if s.Message_ != nil {
  4357  		return *s.Message_
  4358  	}
  4359  	return ""
  4360  }
  4361  
  4362  // OrigErr always returns nil, satisfies awserr.Error interface.
  4363  func (s *BadRequestException) OrigErr() error {
  4364  	return nil
  4365  }
  4366  
  4367  func (s *BadRequestException) Error() string {
  4368  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4369  }
  4370  
  4371  // Status code returns the HTTP status code for the request's response error.
  4372  func (s *BadRequestException) StatusCode() int {
  4373  	return s.RespMetadata.StatusCode
  4374  }
  4375  
  4376  // RequestID returns the service's response RequestID for request.
  4377  func (s *BadRequestException) RequestID() string {
  4378  	return s.RespMetadata.RequestID
  4379  }
  4380  
  4381  // An object that contains information about a blacklisting event that impacts
  4382  // one of the dedicated IP addresses that is associated with your account.
  4383  type BlacklistEntry struct {
  4384  	_ struct{} `type:"structure"`
  4385  
  4386  	// Additional information about the blacklisting event, as provided by the blacklist
  4387  	// maintainer.
  4388  	Description *string `type:"string"`
  4389  
  4390  	// The time when the blacklisting event occurred, shown in Unix time format.
  4391  	ListingTime *time.Time `type:"timestamp"`
  4392  
  4393  	// The name of the blacklist that the IP address appears on.
  4394  	RblName *string `type:"string"`
  4395  }
  4396  
  4397  // String returns the string representation.
  4398  //
  4399  // API parameter values that are decorated as "sensitive" in the API will not
  4400  // be included in the string output. The member name will be present, but the
  4401  // value will be replaced with "sensitive".
  4402  func (s BlacklistEntry) String() string {
  4403  	return awsutil.Prettify(s)
  4404  }
  4405  
  4406  // GoString returns the string representation.
  4407  //
  4408  // API parameter values that are decorated as "sensitive" in the API will not
  4409  // be included in the string output. The member name will be present, but the
  4410  // value will be replaced with "sensitive".
  4411  func (s BlacklistEntry) GoString() string {
  4412  	return s.String()
  4413  }
  4414  
  4415  // SetDescription sets the Description field's value.
  4416  func (s *BlacklistEntry) SetDescription(v string) *BlacklistEntry {
  4417  	s.Description = &v
  4418  	return s
  4419  }
  4420  
  4421  // SetListingTime sets the ListingTime field's value.
  4422  func (s *BlacklistEntry) SetListingTime(v time.Time) *BlacklistEntry {
  4423  	s.ListingTime = &v
  4424  	return s
  4425  }
  4426  
  4427  // SetRblName sets the RblName field's value.
  4428  func (s *BlacklistEntry) SetRblName(v string) *BlacklistEntry {
  4429  	s.RblName = &v
  4430  	return s
  4431  }
  4432  
  4433  // Represents the body of the email message.
  4434  type Body struct {
  4435  	_ struct{} `type:"structure"`
  4436  
  4437  	// An object that represents the version of the message that is displayed in
  4438  	// email clients that support HTML. HTML messages can include formatted text,
  4439  	// hyperlinks, images, and more.
  4440  	Html *Content `type:"structure"`
  4441  
  4442  	// An object that represents the version of the message that is displayed in
  4443  	// email clients that don't support HTML, or clients where the recipient has
  4444  	// disabled HTML rendering.
  4445  	Text *Content `type:"structure"`
  4446  }
  4447  
  4448  // String returns the string representation.
  4449  //
  4450  // API parameter values that are decorated as "sensitive" in the API will not
  4451  // be included in the string output. The member name will be present, but the
  4452  // value will be replaced with "sensitive".
  4453  func (s Body) String() string {
  4454  	return awsutil.Prettify(s)
  4455  }
  4456  
  4457  // GoString returns the string representation.
  4458  //
  4459  // API parameter values that are decorated as "sensitive" in the API will not
  4460  // be included in the string output. The member name will be present, but the
  4461  // value will be replaced with "sensitive".
  4462  func (s Body) GoString() string {
  4463  	return s.String()
  4464  }
  4465  
  4466  // Validate inspects the fields of the type to determine if they are valid.
  4467  func (s *Body) Validate() error {
  4468  	invalidParams := request.ErrInvalidParams{Context: "Body"}
  4469  	if s.Html != nil {
  4470  		if err := s.Html.Validate(); err != nil {
  4471  			invalidParams.AddNested("Html", err.(request.ErrInvalidParams))
  4472  		}
  4473  	}
  4474  	if s.Text != nil {
  4475  		if err := s.Text.Validate(); err != nil {
  4476  			invalidParams.AddNested("Text", err.(request.ErrInvalidParams))
  4477  		}
  4478  	}
  4479  
  4480  	if invalidParams.Len() > 0 {
  4481  		return invalidParams
  4482  	}
  4483  	return nil
  4484  }
  4485  
  4486  // SetHtml sets the Html field's value.
  4487  func (s *Body) SetHtml(v *Content) *Body {
  4488  	s.Html = v
  4489  	return s
  4490  }
  4491  
  4492  // SetText sets the Text field's value.
  4493  func (s *Body) SetText(v *Content) *Body {
  4494  	s.Text = v
  4495  	return s
  4496  }
  4497  
  4498  // An object that defines an Amazon CloudWatch destination for email events.
  4499  // You can use Amazon CloudWatch to monitor and gain insights on your email
  4500  // sending metrics.
  4501  type CloudWatchDestination struct {
  4502  	_ struct{} `type:"structure"`
  4503  
  4504  	// An array of objects that define the dimensions to use when you send email
  4505  	// events to Amazon CloudWatch.
  4506  	//
  4507  	// DimensionConfigurations is a required field
  4508  	DimensionConfigurations []*CloudWatchDimensionConfiguration `type:"list" required:"true"`
  4509  }
  4510  
  4511  // String returns the string representation.
  4512  //
  4513  // API parameter values that are decorated as "sensitive" in the API will not
  4514  // be included in the string output. The member name will be present, but the
  4515  // value will be replaced with "sensitive".
  4516  func (s CloudWatchDestination) String() string {
  4517  	return awsutil.Prettify(s)
  4518  }
  4519  
  4520  // GoString returns the string representation.
  4521  //
  4522  // API parameter values that are decorated as "sensitive" in the API will not
  4523  // be included in the string output. The member name will be present, but the
  4524  // value will be replaced with "sensitive".
  4525  func (s CloudWatchDestination) GoString() string {
  4526  	return s.String()
  4527  }
  4528  
  4529  // Validate inspects the fields of the type to determine if they are valid.
  4530  func (s *CloudWatchDestination) Validate() error {
  4531  	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDestination"}
  4532  	if s.DimensionConfigurations == nil {
  4533  		invalidParams.Add(request.NewErrParamRequired("DimensionConfigurations"))
  4534  	}
  4535  	if s.DimensionConfigurations != nil {
  4536  		for i, v := range s.DimensionConfigurations {
  4537  			if v == nil {
  4538  				continue
  4539  			}
  4540  			if err := v.Validate(); err != nil {
  4541  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DimensionConfigurations", i), err.(request.ErrInvalidParams))
  4542  			}
  4543  		}
  4544  	}
  4545  
  4546  	if invalidParams.Len() > 0 {
  4547  		return invalidParams
  4548  	}
  4549  	return nil
  4550  }
  4551  
  4552  // SetDimensionConfigurations sets the DimensionConfigurations field's value.
  4553  func (s *CloudWatchDestination) SetDimensionConfigurations(v []*CloudWatchDimensionConfiguration) *CloudWatchDestination {
  4554  	s.DimensionConfigurations = v
  4555  	return s
  4556  }
  4557  
  4558  // An object that defines the dimension configuration to use when you send Amazon
  4559  // Pinpoint email events to Amazon CloudWatch.
  4560  type CloudWatchDimensionConfiguration struct {
  4561  	_ struct{} `type:"structure"`
  4562  
  4563  	// The default value of the dimension that is published to Amazon CloudWatch
  4564  	// if you don't provide the value of the dimension when you send an email. This
  4565  	// value has to meet the following criteria:
  4566  	//
  4567  	//    * It can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores
  4568  	//    (_), or dashes (-).
  4569  	//
  4570  	//    * It can contain no more than 256 characters.
  4571  	//
  4572  	// DefaultDimensionValue is a required field
  4573  	DefaultDimensionValue *string `type:"string" required:"true"`
  4574  
  4575  	// The name of an Amazon CloudWatch dimension associated with an email sending
  4576  	// metric. The name has to meet the following criteria:
  4577  	//
  4578  	//    * It can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores
  4579  	//    (_), or dashes (-).
  4580  	//
  4581  	//    * It can contain no more than 256 characters.
  4582  	//
  4583  	// DimensionName is a required field
  4584  	DimensionName *string `type:"string" required:"true"`
  4585  
  4586  	// The location where Amazon Pinpoint finds the value of a dimension to publish
  4587  	// to Amazon CloudWatch. If you want Amazon Pinpoint to use the message tags
  4588  	// that you specify using an X-SES-MESSAGE-TAGS header or a parameter to the
  4589  	// SendEmail/SendRawEmail API, choose messageTag. If you want Amazon Pinpoint
  4590  	// to use your own email headers, choose emailHeader. If you want Amazon Pinpoint
  4591  	// to use link tags, choose linkTags.
  4592  	//
  4593  	// DimensionValueSource is a required field
  4594  	DimensionValueSource *string `type:"string" required:"true" enum:"DimensionValueSource"`
  4595  }
  4596  
  4597  // String returns the string representation.
  4598  //
  4599  // API parameter values that are decorated as "sensitive" in the API will not
  4600  // be included in the string output. The member name will be present, but the
  4601  // value will be replaced with "sensitive".
  4602  func (s CloudWatchDimensionConfiguration) String() string {
  4603  	return awsutil.Prettify(s)
  4604  }
  4605  
  4606  // GoString returns the string representation.
  4607  //
  4608  // API parameter values that are decorated as "sensitive" in the API will not
  4609  // be included in the string output. The member name will be present, but the
  4610  // value will be replaced with "sensitive".
  4611  func (s CloudWatchDimensionConfiguration) GoString() string {
  4612  	return s.String()
  4613  }
  4614  
  4615  // Validate inspects the fields of the type to determine if they are valid.
  4616  func (s *CloudWatchDimensionConfiguration) Validate() error {
  4617  	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDimensionConfiguration"}
  4618  	if s.DefaultDimensionValue == nil {
  4619  		invalidParams.Add(request.NewErrParamRequired("DefaultDimensionValue"))
  4620  	}
  4621  	if s.DimensionName == nil {
  4622  		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
  4623  	}
  4624  	if s.DimensionValueSource == nil {
  4625  		invalidParams.Add(request.NewErrParamRequired("DimensionValueSource"))
  4626  	}
  4627  
  4628  	if invalidParams.Len() > 0 {
  4629  		return invalidParams
  4630  	}
  4631  	return nil
  4632  }
  4633  
  4634  // SetDefaultDimensionValue sets the DefaultDimensionValue field's value.
  4635  func (s *CloudWatchDimensionConfiguration) SetDefaultDimensionValue(v string) *CloudWatchDimensionConfiguration {
  4636  	s.DefaultDimensionValue = &v
  4637  	return s
  4638  }
  4639  
  4640  // SetDimensionName sets the DimensionName field's value.
  4641  func (s *CloudWatchDimensionConfiguration) SetDimensionName(v string) *CloudWatchDimensionConfiguration {
  4642  	s.DimensionName = &v
  4643  	return s
  4644  }
  4645  
  4646  // SetDimensionValueSource sets the DimensionValueSource field's value.
  4647  func (s *CloudWatchDimensionConfiguration) SetDimensionValueSource(v string) *CloudWatchDimensionConfiguration {
  4648  	s.DimensionValueSource = &v
  4649  	return s
  4650  }
  4651  
  4652  // The resource is being modified by another operation or thread.
  4653  type ConcurrentModificationException struct {
  4654  	_            struct{}                  `type:"structure"`
  4655  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4656  
  4657  	Message_ *string `locationName:"message" type:"string"`
  4658  }
  4659  
  4660  // String returns the string representation.
  4661  //
  4662  // API parameter values that are decorated as "sensitive" in the API will not
  4663  // be included in the string output. The member name will be present, but the
  4664  // value will be replaced with "sensitive".
  4665  func (s ConcurrentModificationException) String() string {
  4666  	return awsutil.Prettify(s)
  4667  }
  4668  
  4669  // GoString returns the string representation.
  4670  //
  4671  // API parameter values that are decorated as "sensitive" in the API will not
  4672  // be included in the string output. The member name will be present, but the
  4673  // value will be replaced with "sensitive".
  4674  func (s ConcurrentModificationException) GoString() string {
  4675  	return s.String()
  4676  }
  4677  
  4678  func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
  4679  	return &ConcurrentModificationException{
  4680  		RespMetadata: v,
  4681  	}
  4682  }
  4683  
  4684  // Code returns the exception type name.
  4685  func (s *ConcurrentModificationException) Code() string {
  4686  	return "ConcurrentModificationException"
  4687  }
  4688  
  4689  // Message returns the exception's message.
  4690  func (s *ConcurrentModificationException) Message() string {
  4691  	if s.Message_ != nil {
  4692  		return *s.Message_
  4693  	}
  4694  	return ""
  4695  }
  4696  
  4697  // OrigErr always returns nil, satisfies awserr.Error interface.
  4698  func (s *ConcurrentModificationException) OrigErr() error {
  4699  	return nil
  4700  }
  4701  
  4702  func (s *ConcurrentModificationException) Error() string {
  4703  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4704  }
  4705  
  4706  // Status code returns the HTTP status code for the request's response error.
  4707  func (s *ConcurrentModificationException) StatusCode() int {
  4708  	return s.RespMetadata.StatusCode
  4709  }
  4710  
  4711  // RequestID returns the service's response RequestID for request.
  4712  func (s *ConcurrentModificationException) RequestID() string {
  4713  	return s.RespMetadata.RequestID
  4714  }
  4715  
  4716  // An object that represents the content of the email, and optionally a character
  4717  // set specification.
  4718  type Content struct {
  4719  	_ struct{} `type:"structure"`
  4720  
  4721  	// The character set for the content. Because of the constraints of the SMTP
  4722  	// protocol, Amazon Pinpoint uses 7-bit ASCII by default. If the text includes
  4723  	// characters outside of the ASCII range, you have to specify a character set.
  4724  	// For example, you could specify UTF-8, ISO-8859-1, or Shift_JIS.
  4725  	Charset *string `type:"string"`
  4726  
  4727  	// The content of the message itself.
  4728  	//
  4729  	// Data is a required field
  4730  	Data *string `type:"string" required:"true"`
  4731  }
  4732  
  4733  // String returns the string representation.
  4734  //
  4735  // API parameter values that are decorated as "sensitive" in the API will not
  4736  // be included in the string output. The member name will be present, but the
  4737  // value will be replaced with "sensitive".
  4738  func (s Content) String() string {
  4739  	return awsutil.Prettify(s)
  4740  }
  4741  
  4742  // GoString returns the string representation.
  4743  //
  4744  // API parameter values that are decorated as "sensitive" in the API will not
  4745  // be included in the string output. The member name will be present, but the
  4746  // value will be replaced with "sensitive".
  4747  func (s Content) GoString() string {
  4748  	return s.String()
  4749  }
  4750  
  4751  // Validate inspects the fields of the type to determine if they are valid.
  4752  func (s *Content) Validate() error {
  4753  	invalidParams := request.ErrInvalidParams{Context: "Content"}
  4754  	if s.Data == nil {
  4755  		invalidParams.Add(request.NewErrParamRequired("Data"))
  4756  	}
  4757  
  4758  	if invalidParams.Len() > 0 {
  4759  		return invalidParams
  4760  	}
  4761  	return nil
  4762  }
  4763  
  4764  // SetCharset sets the Charset field's value.
  4765  func (s *Content) SetCharset(v string) *Content {
  4766  	s.Charset = &v
  4767  	return s
  4768  }
  4769  
  4770  // SetData sets the Data field's value.
  4771  func (s *Content) SetData(v string) *Content {
  4772  	s.Data = &v
  4773  	return s
  4774  }
  4775  
  4776  // A request to add an event destination to a configuration set.
  4777  type CreateConfigurationSetEventDestinationInput struct {
  4778  	_ struct{} `type:"structure"`
  4779  
  4780  	// The name of the configuration set that you want to add an event destination
  4781  	// to.
  4782  	//
  4783  	// ConfigurationSetName is a required field
  4784  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  4785  
  4786  	// An object that defines the event destination.
  4787  	//
  4788  	// EventDestination is a required field
  4789  	EventDestination *EventDestinationDefinition `type:"structure" required:"true"`
  4790  
  4791  	// A name that identifies the event destination within the configuration set.
  4792  	//
  4793  	// EventDestinationName is a required field
  4794  	EventDestinationName *string `type:"string" required:"true"`
  4795  }
  4796  
  4797  // String returns the string representation.
  4798  //
  4799  // API parameter values that are decorated as "sensitive" in the API will not
  4800  // be included in the string output. The member name will be present, but the
  4801  // value will be replaced with "sensitive".
  4802  func (s CreateConfigurationSetEventDestinationInput) String() string {
  4803  	return awsutil.Prettify(s)
  4804  }
  4805  
  4806  // GoString returns the string representation.
  4807  //
  4808  // API parameter values that are decorated as "sensitive" in the API will not
  4809  // be included in the string output. The member name will be present, but the
  4810  // value will be replaced with "sensitive".
  4811  func (s CreateConfigurationSetEventDestinationInput) GoString() string {
  4812  	return s.String()
  4813  }
  4814  
  4815  // Validate inspects the fields of the type to determine if they are valid.
  4816  func (s *CreateConfigurationSetEventDestinationInput) Validate() error {
  4817  	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetEventDestinationInput"}
  4818  	if s.ConfigurationSetName == nil {
  4819  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  4820  	}
  4821  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  4822  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  4823  	}
  4824  	if s.EventDestination == nil {
  4825  		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
  4826  	}
  4827  	if s.EventDestinationName == nil {
  4828  		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
  4829  	}
  4830  	if s.EventDestination != nil {
  4831  		if err := s.EventDestination.Validate(); err != nil {
  4832  			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
  4833  		}
  4834  	}
  4835  
  4836  	if invalidParams.Len() > 0 {
  4837  		return invalidParams
  4838  	}
  4839  	return nil
  4840  }
  4841  
  4842  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  4843  func (s *CreateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *CreateConfigurationSetEventDestinationInput {
  4844  	s.ConfigurationSetName = &v
  4845  	return s
  4846  }
  4847  
  4848  // SetEventDestination sets the EventDestination field's value.
  4849  func (s *CreateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestinationDefinition) *CreateConfigurationSetEventDestinationInput {
  4850  	s.EventDestination = v
  4851  	return s
  4852  }
  4853  
  4854  // SetEventDestinationName sets the EventDestinationName field's value.
  4855  func (s *CreateConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *CreateConfigurationSetEventDestinationInput {
  4856  	s.EventDestinationName = &v
  4857  	return s
  4858  }
  4859  
  4860  // An HTTP 200 response if the request succeeds, or an error message if the
  4861  // request fails.
  4862  type CreateConfigurationSetEventDestinationOutput struct {
  4863  	_ struct{} `type:"structure" nopayload:"true"`
  4864  }
  4865  
  4866  // String returns the string representation.
  4867  //
  4868  // API parameter values that are decorated as "sensitive" in the API will not
  4869  // be included in the string output. The member name will be present, but the
  4870  // value will be replaced with "sensitive".
  4871  func (s CreateConfigurationSetEventDestinationOutput) String() string {
  4872  	return awsutil.Prettify(s)
  4873  }
  4874  
  4875  // GoString returns the string representation.
  4876  //
  4877  // API parameter values that are decorated as "sensitive" in the API will not
  4878  // be included in the string output. The member name will be present, but the
  4879  // value will be replaced with "sensitive".
  4880  func (s CreateConfigurationSetEventDestinationOutput) GoString() string {
  4881  	return s.String()
  4882  }
  4883  
  4884  // A request to create a configuration set.
  4885  type CreateConfigurationSetInput struct {
  4886  	_ struct{} `type:"structure"`
  4887  
  4888  	// The name of the configuration set.
  4889  	//
  4890  	// ConfigurationSetName is a required field
  4891  	ConfigurationSetName *string `type:"string" required:"true"`
  4892  
  4893  	// An object that defines the dedicated IP pool that is used to send emails
  4894  	// that you send using the configuration set.
  4895  	DeliveryOptions *DeliveryOptions `type:"structure"`
  4896  
  4897  	// An object that defines whether or not Amazon Pinpoint collects reputation
  4898  	// metrics for the emails that you send that use the configuration set.
  4899  	ReputationOptions *ReputationOptions `type:"structure"`
  4900  
  4901  	// An object that defines whether or not Amazon Pinpoint can send email that
  4902  	// you send using the configuration set.
  4903  	SendingOptions *SendingOptions `type:"structure"`
  4904  
  4905  	// An array of objects that define the tags (keys and values) that you want
  4906  	// to associate with the configuration set.
  4907  	Tags []*Tag `type:"list"`
  4908  
  4909  	// An object that defines the open and click tracking options for emails that
  4910  	// you send using the configuration set.
  4911  	TrackingOptions *TrackingOptions `type:"structure"`
  4912  }
  4913  
  4914  // String returns the string representation.
  4915  //
  4916  // API parameter values that are decorated as "sensitive" in the API will not
  4917  // be included in the string output. The member name will be present, but the
  4918  // value will be replaced with "sensitive".
  4919  func (s CreateConfigurationSetInput) String() string {
  4920  	return awsutil.Prettify(s)
  4921  }
  4922  
  4923  // GoString returns the string representation.
  4924  //
  4925  // API parameter values that are decorated as "sensitive" in the API will not
  4926  // be included in the string output. The member name will be present, but the
  4927  // value will be replaced with "sensitive".
  4928  func (s CreateConfigurationSetInput) GoString() string {
  4929  	return s.String()
  4930  }
  4931  
  4932  // Validate inspects the fields of the type to determine if they are valid.
  4933  func (s *CreateConfigurationSetInput) Validate() error {
  4934  	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetInput"}
  4935  	if s.ConfigurationSetName == nil {
  4936  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  4937  	}
  4938  	if s.Tags != nil {
  4939  		for i, v := range s.Tags {
  4940  			if v == nil {
  4941  				continue
  4942  			}
  4943  			if err := v.Validate(); err != nil {
  4944  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  4945  			}
  4946  		}
  4947  	}
  4948  	if s.TrackingOptions != nil {
  4949  		if err := s.TrackingOptions.Validate(); err != nil {
  4950  			invalidParams.AddNested("TrackingOptions", err.(request.ErrInvalidParams))
  4951  		}
  4952  	}
  4953  
  4954  	if invalidParams.Len() > 0 {
  4955  		return invalidParams
  4956  	}
  4957  	return nil
  4958  }
  4959  
  4960  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  4961  func (s *CreateConfigurationSetInput) SetConfigurationSetName(v string) *CreateConfigurationSetInput {
  4962  	s.ConfigurationSetName = &v
  4963  	return s
  4964  }
  4965  
  4966  // SetDeliveryOptions sets the DeliveryOptions field's value.
  4967  func (s *CreateConfigurationSetInput) SetDeliveryOptions(v *DeliveryOptions) *CreateConfigurationSetInput {
  4968  	s.DeliveryOptions = v
  4969  	return s
  4970  }
  4971  
  4972  // SetReputationOptions sets the ReputationOptions field's value.
  4973  func (s *CreateConfigurationSetInput) SetReputationOptions(v *ReputationOptions) *CreateConfigurationSetInput {
  4974  	s.ReputationOptions = v
  4975  	return s
  4976  }
  4977  
  4978  // SetSendingOptions sets the SendingOptions field's value.
  4979  func (s *CreateConfigurationSetInput) SetSendingOptions(v *SendingOptions) *CreateConfigurationSetInput {
  4980  	s.SendingOptions = v
  4981  	return s
  4982  }
  4983  
  4984  // SetTags sets the Tags field's value.
  4985  func (s *CreateConfigurationSetInput) SetTags(v []*Tag) *CreateConfigurationSetInput {
  4986  	s.Tags = v
  4987  	return s
  4988  }
  4989  
  4990  // SetTrackingOptions sets the TrackingOptions field's value.
  4991  func (s *CreateConfigurationSetInput) SetTrackingOptions(v *TrackingOptions) *CreateConfigurationSetInput {
  4992  	s.TrackingOptions = v
  4993  	return s
  4994  }
  4995  
  4996  // An HTTP 200 response if the request succeeds, or an error message if the
  4997  // request fails.
  4998  type CreateConfigurationSetOutput struct {
  4999  	_ struct{} `type:"structure" nopayload:"true"`
  5000  }
  5001  
  5002  // String returns the string representation.
  5003  //
  5004  // API parameter values that are decorated as "sensitive" in the API will not
  5005  // be included in the string output. The member name will be present, but the
  5006  // value will be replaced with "sensitive".
  5007  func (s CreateConfigurationSetOutput) String() string {
  5008  	return awsutil.Prettify(s)
  5009  }
  5010  
  5011  // GoString returns the string representation.
  5012  //
  5013  // API parameter values that are decorated as "sensitive" in the API will not
  5014  // be included in the string output. The member name will be present, but the
  5015  // value will be replaced with "sensitive".
  5016  func (s CreateConfigurationSetOutput) GoString() string {
  5017  	return s.String()
  5018  }
  5019  
  5020  // A request to create a new dedicated IP pool.
  5021  type CreateDedicatedIpPoolInput struct {
  5022  	_ struct{} `type:"structure"`
  5023  
  5024  	// The name of the dedicated IP pool.
  5025  	//
  5026  	// PoolName is a required field
  5027  	PoolName *string `type:"string" required:"true"`
  5028  
  5029  	// An object that defines the tags (keys and values) that you want to associate
  5030  	// with the pool.
  5031  	Tags []*Tag `type:"list"`
  5032  }
  5033  
  5034  // String returns the string representation.
  5035  //
  5036  // API parameter values that are decorated as "sensitive" in the API will not
  5037  // be included in the string output. The member name will be present, but the
  5038  // value will be replaced with "sensitive".
  5039  func (s CreateDedicatedIpPoolInput) String() string {
  5040  	return awsutil.Prettify(s)
  5041  }
  5042  
  5043  // GoString returns the string representation.
  5044  //
  5045  // API parameter values that are decorated as "sensitive" in the API will not
  5046  // be included in the string output. The member name will be present, but the
  5047  // value will be replaced with "sensitive".
  5048  func (s CreateDedicatedIpPoolInput) GoString() string {
  5049  	return s.String()
  5050  }
  5051  
  5052  // Validate inspects the fields of the type to determine if they are valid.
  5053  func (s *CreateDedicatedIpPoolInput) Validate() error {
  5054  	invalidParams := request.ErrInvalidParams{Context: "CreateDedicatedIpPoolInput"}
  5055  	if s.PoolName == nil {
  5056  		invalidParams.Add(request.NewErrParamRequired("PoolName"))
  5057  	}
  5058  	if s.Tags != nil {
  5059  		for i, v := range s.Tags {
  5060  			if v == nil {
  5061  				continue
  5062  			}
  5063  			if err := v.Validate(); err != nil {
  5064  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  5065  			}
  5066  		}
  5067  	}
  5068  
  5069  	if invalidParams.Len() > 0 {
  5070  		return invalidParams
  5071  	}
  5072  	return nil
  5073  }
  5074  
  5075  // SetPoolName sets the PoolName field's value.
  5076  func (s *CreateDedicatedIpPoolInput) SetPoolName(v string) *CreateDedicatedIpPoolInput {
  5077  	s.PoolName = &v
  5078  	return s
  5079  }
  5080  
  5081  // SetTags sets the Tags field's value.
  5082  func (s *CreateDedicatedIpPoolInput) SetTags(v []*Tag) *CreateDedicatedIpPoolInput {
  5083  	s.Tags = v
  5084  	return s
  5085  }
  5086  
  5087  // An HTTP 200 response if the request succeeds, or an error message if the
  5088  // request fails.
  5089  type CreateDedicatedIpPoolOutput struct {
  5090  	_ struct{} `type:"structure" nopayload:"true"`
  5091  }
  5092  
  5093  // String returns the string representation.
  5094  //
  5095  // API parameter values that are decorated as "sensitive" in the API will not
  5096  // be included in the string output. The member name will be present, but the
  5097  // value will be replaced with "sensitive".
  5098  func (s CreateDedicatedIpPoolOutput) String() string {
  5099  	return awsutil.Prettify(s)
  5100  }
  5101  
  5102  // GoString returns the string representation.
  5103  //
  5104  // API parameter values that are decorated as "sensitive" in the API will not
  5105  // be included in the string output. The member name will be present, but the
  5106  // value will be replaced with "sensitive".
  5107  func (s CreateDedicatedIpPoolOutput) GoString() string {
  5108  	return s.String()
  5109  }
  5110  
  5111  // A request to perform a predictive inbox placement test. Predictive inbox
  5112  // placement tests can help you predict how your messages will be handled by
  5113  // various email providers around the world. When you perform a predictive inbox
  5114  // placement test, you provide a sample message that contains the content that
  5115  // you plan to send to your customers. Amazon Pinpoint then sends that message
  5116  // to special email addresses spread across several major email providers. After
  5117  // about 24 hours, the test is complete, and you can use the GetDeliverabilityTestReport
  5118  // operation to view the results of the test.
  5119  type CreateDeliverabilityTestReportInput struct {
  5120  	_ struct{} `type:"structure"`
  5121  
  5122  	// The HTML body of the message that you sent when you performed the predictive
  5123  	// inbox placement test.
  5124  	//
  5125  	// Content is a required field
  5126  	Content *EmailContent `type:"structure" required:"true"`
  5127  
  5128  	// The email address that the predictive inbox placement test email was sent
  5129  	// from.
  5130  	//
  5131  	// FromEmailAddress is a required field
  5132  	FromEmailAddress *string `type:"string" required:"true"`
  5133  
  5134  	// A unique name that helps you to identify the predictive inbox placement test
  5135  	// when you retrieve the results.
  5136  	ReportName *string `type:"string"`
  5137  
  5138  	// An array of objects that define the tags (keys and values) that you want
  5139  	// to associate with the predictive inbox placement test.
  5140  	Tags []*Tag `type:"list"`
  5141  }
  5142  
  5143  // String returns the string representation.
  5144  //
  5145  // API parameter values that are decorated as "sensitive" in the API will not
  5146  // be included in the string output. The member name will be present, but the
  5147  // value will be replaced with "sensitive".
  5148  func (s CreateDeliverabilityTestReportInput) String() string {
  5149  	return awsutil.Prettify(s)
  5150  }
  5151  
  5152  // GoString returns the string representation.
  5153  //
  5154  // API parameter values that are decorated as "sensitive" in the API will not
  5155  // be included in the string output. The member name will be present, but the
  5156  // value will be replaced with "sensitive".
  5157  func (s CreateDeliverabilityTestReportInput) GoString() string {
  5158  	return s.String()
  5159  }
  5160  
  5161  // Validate inspects the fields of the type to determine if they are valid.
  5162  func (s *CreateDeliverabilityTestReportInput) Validate() error {
  5163  	invalidParams := request.ErrInvalidParams{Context: "CreateDeliverabilityTestReportInput"}
  5164  	if s.Content == nil {
  5165  		invalidParams.Add(request.NewErrParamRequired("Content"))
  5166  	}
  5167  	if s.FromEmailAddress == nil {
  5168  		invalidParams.Add(request.NewErrParamRequired("FromEmailAddress"))
  5169  	}
  5170  	if s.Content != nil {
  5171  		if err := s.Content.Validate(); err != nil {
  5172  			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
  5173  		}
  5174  	}
  5175  	if s.Tags != nil {
  5176  		for i, v := range s.Tags {
  5177  			if v == nil {
  5178  				continue
  5179  			}
  5180  			if err := v.Validate(); err != nil {
  5181  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  5182  			}
  5183  		}
  5184  	}
  5185  
  5186  	if invalidParams.Len() > 0 {
  5187  		return invalidParams
  5188  	}
  5189  	return nil
  5190  }
  5191  
  5192  // SetContent sets the Content field's value.
  5193  func (s *CreateDeliverabilityTestReportInput) SetContent(v *EmailContent) *CreateDeliverabilityTestReportInput {
  5194  	s.Content = v
  5195  	return s
  5196  }
  5197  
  5198  // SetFromEmailAddress sets the FromEmailAddress field's value.
  5199  func (s *CreateDeliverabilityTestReportInput) SetFromEmailAddress(v string) *CreateDeliverabilityTestReportInput {
  5200  	s.FromEmailAddress = &v
  5201  	return s
  5202  }
  5203  
  5204  // SetReportName sets the ReportName field's value.
  5205  func (s *CreateDeliverabilityTestReportInput) SetReportName(v string) *CreateDeliverabilityTestReportInput {
  5206  	s.ReportName = &v
  5207  	return s
  5208  }
  5209  
  5210  // SetTags sets the Tags field's value.
  5211  func (s *CreateDeliverabilityTestReportInput) SetTags(v []*Tag) *CreateDeliverabilityTestReportInput {
  5212  	s.Tags = v
  5213  	return s
  5214  }
  5215  
  5216  // Information about the predictive inbox placement test that you created.
  5217  type CreateDeliverabilityTestReportOutput struct {
  5218  	_ struct{} `type:"structure"`
  5219  
  5220  	// The status of the predictive inbox placement test. If the status is IN_PROGRESS,
  5221  	// then the predictive inbox placement test is currently running. Predictive
  5222  	// inbox placement tests are usually complete within 24 hours of creating the
  5223  	// test. If the status is COMPLETE, then the test is finished, and you can use
  5224  	// the GetDeliverabilityTestReport to view the results of the test.
  5225  	//
  5226  	// DeliverabilityTestStatus is a required field
  5227  	DeliverabilityTestStatus *string `type:"string" required:"true" enum:"DeliverabilityTestStatus"`
  5228  
  5229  	// A unique string that identifies the predictive inbox placement test.
  5230  	//
  5231  	// ReportId is a required field
  5232  	ReportId *string `type:"string" required:"true"`
  5233  }
  5234  
  5235  // String returns the string representation.
  5236  //
  5237  // API parameter values that are decorated as "sensitive" in the API will not
  5238  // be included in the string output. The member name will be present, but the
  5239  // value will be replaced with "sensitive".
  5240  func (s CreateDeliverabilityTestReportOutput) String() string {
  5241  	return awsutil.Prettify(s)
  5242  }
  5243  
  5244  // GoString returns the string representation.
  5245  //
  5246  // API parameter values that are decorated as "sensitive" in the API will not
  5247  // be included in the string output. The member name will be present, but the
  5248  // value will be replaced with "sensitive".
  5249  func (s CreateDeliverabilityTestReportOutput) GoString() string {
  5250  	return s.String()
  5251  }
  5252  
  5253  // SetDeliverabilityTestStatus sets the DeliverabilityTestStatus field's value.
  5254  func (s *CreateDeliverabilityTestReportOutput) SetDeliverabilityTestStatus(v string) *CreateDeliverabilityTestReportOutput {
  5255  	s.DeliverabilityTestStatus = &v
  5256  	return s
  5257  }
  5258  
  5259  // SetReportId sets the ReportId field's value.
  5260  func (s *CreateDeliverabilityTestReportOutput) SetReportId(v string) *CreateDeliverabilityTestReportOutput {
  5261  	s.ReportId = &v
  5262  	return s
  5263  }
  5264  
  5265  // A request to begin the verification process for an email identity (an email
  5266  // address or domain).
  5267  type CreateEmailIdentityInput struct {
  5268  	_ struct{} `type:"structure"`
  5269  
  5270  	// The email address or domain that you want to verify.
  5271  	//
  5272  	// EmailIdentity is a required field
  5273  	EmailIdentity *string `type:"string" required:"true"`
  5274  
  5275  	// An array of objects that define the tags (keys and values) that you want
  5276  	// to associate with the email identity.
  5277  	Tags []*Tag `type:"list"`
  5278  }
  5279  
  5280  // String returns the string representation.
  5281  //
  5282  // API parameter values that are decorated as "sensitive" in the API will not
  5283  // be included in the string output. The member name will be present, but the
  5284  // value will be replaced with "sensitive".
  5285  func (s CreateEmailIdentityInput) String() string {
  5286  	return awsutil.Prettify(s)
  5287  }
  5288  
  5289  // GoString returns the string representation.
  5290  //
  5291  // API parameter values that are decorated as "sensitive" in the API will not
  5292  // be included in the string output. The member name will be present, but the
  5293  // value will be replaced with "sensitive".
  5294  func (s CreateEmailIdentityInput) GoString() string {
  5295  	return s.String()
  5296  }
  5297  
  5298  // Validate inspects the fields of the type to determine if they are valid.
  5299  func (s *CreateEmailIdentityInput) Validate() error {
  5300  	invalidParams := request.ErrInvalidParams{Context: "CreateEmailIdentityInput"}
  5301  	if s.EmailIdentity == nil {
  5302  		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
  5303  	}
  5304  	if s.Tags != nil {
  5305  		for i, v := range s.Tags {
  5306  			if v == nil {
  5307  				continue
  5308  			}
  5309  			if err := v.Validate(); err != nil {
  5310  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  5311  			}
  5312  		}
  5313  	}
  5314  
  5315  	if invalidParams.Len() > 0 {
  5316  		return invalidParams
  5317  	}
  5318  	return nil
  5319  }
  5320  
  5321  // SetEmailIdentity sets the EmailIdentity field's value.
  5322  func (s *CreateEmailIdentityInput) SetEmailIdentity(v string) *CreateEmailIdentityInput {
  5323  	s.EmailIdentity = &v
  5324  	return s
  5325  }
  5326  
  5327  // SetTags sets the Tags field's value.
  5328  func (s *CreateEmailIdentityInput) SetTags(v []*Tag) *CreateEmailIdentityInput {
  5329  	s.Tags = v
  5330  	return s
  5331  }
  5332  
  5333  // If the email identity is a domain, this object contains tokens that you can
  5334  // use to create a set of CNAME records. To sucessfully verify your domain,
  5335  // you have to add these records to the DNS configuration for your domain.
  5336  //
  5337  // If the email identity is an email address, this object is empty.
  5338  type CreateEmailIdentityOutput struct {
  5339  	_ struct{} `type:"structure"`
  5340  
  5341  	// An object that contains information about the DKIM attributes for the identity.
  5342  	// This object includes the tokens that you use to create the CNAME records
  5343  	// that are required to complete the DKIM verification process.
  5344  	DkimAttributes *DkimAttributes `type:"structure"`
  5345  
  5346  	// The email identity type.
  5347  	IdentityType *string `type:"string" enum:"IdentityType"`
  5348  
  5349  	// Specifies whether or not the identity is verified. In Amazon Pinpoint, you
  5350  	// can only send email from verified email addresses or domains. For more information
  5351  	// about verifying identities, see the Amazon Pinpoint User Guide (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html).
  5352  	VerifiedForSendingStatus *bool `type:"boolean"`
  5353  }
  5354  
  5355  // String returns the string representation.
  5356  //
  5357  // API parameter values that are decorated as "sensitive" in the API will not
  5358  // be included in the string output. The member name will be present, but the
  5359  // value will be replaced with "sensitive".
  5360  func (s CreateEmailIdentityOutput) String() string {
  5361  	return awsutil.Prettify(s)
  5362  }
  5363  
  5364  // GoString returns the string representation.
  5365  //
  5366  // API parameter values that are decorated as "sensitive" in the API will not
  5367  // be included in the string output. The member name will be present, but the
  5368  // value will be replaced with "sensitive".
  5369  func (s CreateEmailIdentityOutput) GoString() string {
  5370  	return s.String()
  5371  }
  5372  
  5373  // SetDkimAttributes sets the DkimAttributes field's value.
  5374  func (s *CreateEmailIdentityOutput) SetDkimAttributes(v *DkimAttributes) *CreateEmailIdentityOutput {
  5375  	s.DkimAttributes = v
  5376  	return s
  5377  }
  5378  
  5379  // SetIdentityType sets the IdentityType field's value.
  5380  func (s *CreateEmailIdentityOutput) SetIdentityType(v string) *CreateEmailIdentityOutput {
  5381  	s.IdentityType = &v
  5382  	return s
  5383  }
  5384  
  5385  // SetVerifiedForSendingStatus sets the VerifiedForSendingStatus field's value.
  5386  func (s *CreateEmailIdentityOutput) SetVerifiedForSendingStatus(v bool) *CreateEmailIdentityOutput {
  5387  	s.VerifiedForSendingStatus = &v
  5388  	return s
  5389  }
  5390  
  5391  // An object that contains information about the volume of email sent on each
  5392  // day of the analysis period.
  5393  type DailyVolume struct {
  5394  	_ struct{} `type:"structure"`
  5395  
  5396  	// An object that contains inbox placement metrics for a specified day in the
  5397  	// analysis period, broken out by the recipient's email provider.
  5398  	DomainIspPlacements []*DomainIspPlacement `type:"list"`
  5399  
  5400  	// The date that the DailyVolume metrics apply to, in Unix time.
  5401  	StartDate *time.Time `type:"timestamp"`
  5402  
  5403  	// An object that contains inbox placement metrics for a specific day in the
  5404  	// analysis period.
  5405  	VolumeStatistics *VolumeStatistics `type:"structure"`
  5406  }
  5407  
  5408  // String returns the string representation.
  5409  //
  5410  // API parameter values that are decorated as "sensitive" in the API will not
  5411  // be included in the string output. The member name will be present, but the
  5412  // value will be replaced with "sensitive".
  5413  func (s DailyVolume) String() string {
  5414  	return awsutil.Prettify(s)
  5415  }
  5416  
  5417  // GoString returns the string representation.
  5418  //
  5419  // API parameter values that are decorated as "sensitive" in the API will not
  5420  // be included in the string output. The member name will be present, but the
  5421  // value will be replaced with "sensitive".
  5422  func (s DailyVolume) GoString() string {
  5423  	return s.String()
  5424  }
  5425  
  5426  // SetDomainIspPlacements sets the DomainIspPlacements field's value.
  5427  func (s *DailyVolume) SetDomainIspPlacements(v []*DomainIspPlacement) *DailyVolume {
  5428  	s.DomainIspPlacements = v
  5429  	return s
  5430  }
  5431  
  5432  // SetStartDate sets the StartDate field's value.
  5433  func (s *DailyVolume) SetStartDate(v time.Time) *DailyVolume {
  5434  	s.StartDate = &v
  5435  	return s
  5436  }
  5437  
  5438  // SetVolumeStatistics sets the VolumeStatistics field's value.
  5439  func (s *DailyVolume) SetVolumeStatistics(v *VolumeStatistics) *DailyVolume {
  5440  	s.VolumeStatistics = v
  5441  	return s
  5442  }
  5443  
  5444  // Contains information about a dedicated IP address that is associated with
  5445  // your Amazon Pinpoint account.
  5446  type DedicatedIp struct {
  5447  	_ struct{} `type:"structure"`
  5448  
  5449  	// An IP address that is reserved for use by your Amazon Pinpoint account.
  5450  	//
  5451  	// Ip is a required field
  5452  	Ip *string `type:"string" required:"true"`
  5453  
  5454  	// The name of the dedicated IP pool that the IP address is associated with.
  5455  	PoolName *string `type:"string"`
  5456  
  5457  	// Indicates how complete the dedicated IP warm-up process is. When this value
  5458  	// equals 1, the address has completed the warm-up process and is ready for
  5459  	// use.
  5460  	//
  5461  	// WarmupPercentage is a required field
  5462  	WarmupPercentage *int64 `type:"integer" required:"true"`
  5463  
  5464  	// The warm-up status of a dedicated IP address. The status can have one of
  5465  	// the following values:
  5466  	//
  5467  	//    * IN_PROGRESS – The IP address isn't ready to use because the dedicated
  5468  	//    IP warm-up process is ongoing.
  5469  	//
  5470  	//    * DONE – The dedicated IP warm-up process is complete, and the IP address
  5471  	//    is ready to use.
  5472  	//
  5473  	// WarmupStatus is a required field
  5474  	WarmupStatus *string `type:"string" required:"true" enum:"WarmupStatus"`
  5475  }
  5476  
  5477  // String returns the string representation.
  5478  //
  5479  // API parameter values that are decorated as "sensitive" in the API will not
  5480  // be included in the string output. The member name will be present, but the
  5481  // value will be replaced with "sensitive".
  5482  func (s DedicatedIp) String() string {
  5483  	return awsutil.Prettify(s)
  5484  }
  5485  
  5486  // GoString returns the string representation.
  5487  //
  5488  // API parameter values that are decorated as "sensitive" in the API will not
  5489  // be included in the string output. The member name will be present, but the
  5490  // value will be replaced with "sensitive".
  5491  func (s DedicatedIp) GoString() string {
  5492  	return s.String()
  5493  }
  5494  
  5495  // SetIp sets the Ip field's value.
  5496  func (s *DedicatedIp) SetIp(v string) *DedicatedIp {
  5497  	s.Ip = &v
  5498  	return s
  5499  }
  5500  
  5501  // SetPoolName sets the PoolName field's value.
  5502  func (s *DedicatedIp) SetPoolName(v string) *DedicatedIp {
  5503  	s.PoolName = &v
  5504  	return s
  5505  }
  5506  
  5507  // SetWarmupPercentage sets the WarmupPercentage field's value.
  5508  func (s *DedicatedIp) SetWarmupPercentage(v int64) *DedicatedIp {
  5509  	s.WarmupPercentage = &v
  5510  	return s
  5511  }
  5512  
  5513  // SetWarmupStatus sets the WarmupStatus field's value.
  5514  func (s *DedicatedIp) SetWarmupStatus(v string) *DedicatedIp {
  5515  	s.WarmupStatus = &v
  5516  	return s
  5517  }
  5518  
  5519  // A request to delete an event destination from a configuration set.
  5520  type DeleteConfigurationSetEventDestinationInput struct {
  5521  	_ struct{} `type:"structure" nopayload:"true"`
  5522  
  5523  	// The name of the configuration set that contains the event destination that
  5524  	// you want to delete.
  5525  	//
  5526  	// ConfigurationSetName is a required field
  5527  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  5528  
  5529  	// The name of the event destination that you want to delete.
  5530  	//
  5531  	// EventDestinationName is a required field
  5532  	EventDestinationName *string `location:"uri" locationName:"EventDestinationName" type:"string" required:"true"`
  5533  }
  5534  
  5535  // String returns the string representation.
  5536  //
  5537  // API parameter values that are decorated as "sensitive" in the API will not
  5538  // be included in the string output. The member name will be present, but the
  5539  // value will be replaced with "sensitive".
  5540  func (s DeleteConfigurationSetEventDestinationInput) String() string {
  5541  	return awsutil.Prettify(s)
  5542  }
  5543  
  5544  // GoString returns the string representation.
  5545  //
  5546  // API parameter values that are decorated as "sensitive" in the API will not
  5547  // be included in the string output. The member name will be present, but the
  5548  // value will be replaced with "sensitive".
  5549  func (s DeleteConfigurationSetEventDestinationInput) GoString() string {
  5550  	return s.String()
  5551  }
  5552  
  5553  // Validate inspects the fields of the type to determine if they are valid.
  5554  func (s *DeleteConfigurationSetEventDestinationInput) Validate() error {
  5555  	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetEventDestinationInput"}
  5556  	if s.ConfigurationSetName == nil {
  5557  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  5558  	}
  5559  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  5560  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  5561  	}
  5562  	if s.EventDestinationName == nil {
  5563  		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
  5564  	}
  5565  	if s.EventDestinationName != nil && len(*s.EventDestinationName) < 1 {
  5566  		invalidParams.Add(request.NewErrParamMinLen("EventDestinationName", 1))
  5567  	}
  5568  
  5569  	if invalidParams.Len() > 0 {
  5570  		return invalidParams
  5571  	}
  5572  	return nil
  5573  }
  5574  
  5575  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  5576  func (s *DeleteConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *DeleteConfigurationSetEventDestinationInput {
  5577  	s.ConfigurationSetName = &v
  5578  	return s
  5579  }
  5580  
  5581  // SetEventDestinationName sets the EventDestinationName field's value.
  5582  func (s *DeleteConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *DeleteConfigurationSetEventDestinationInput {
  5583  	s.EventDestinationName = &v
  5584  	return s
  5585  }
  5586  
  5587  // An HTTP 200 response if the request succeeds, or an error message if the
  5588  // request fails.
  5589  type DeleteConfigurationSetEventDestinationOutput struct {
  5590  	_ struct{} `type:"structure" nopayload:"true"`
  5591  }
  5592  
  5593  // String returns the string representation.
  5594  //
  5595  // API parameter values that are decorated as "sensitive" in the API will not
  5596  // be included in the string output. The member name will be present, but the
  5597  // value will be replaced with "sensitive".
  5598  func (s DeleteConfigurationSetEventDestinationOutput) String() string {
  5599  	return awsutil.Prettify(s)
  5600  }
  5601  
  5602  // GoString returns the string representation.
  5603  //
  5604  // API parameter values that are decorated as "sensitive" in the API will not
  5605  // be included in the string output. The member name will be present, but the
  5606  // value will be replaced with "sensitive".
  5607  func (s DeleteConfigurationSetEventDestinationOutput) GoString() string {
  5608  	return s.String()
  5609  }
  5610  
  5611  // A request to delete a configuration set.
  5612  type DeleteConfigurationSetInput struct {
  5613  	_ struct{} `type:"structure" nopayload:"true"`
  5614  
  5615  	// The name of the configuration set that you want to delete.
  5616  	//
  5617  	// ConfigurationSetName is a required field
  5618  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  5619  }
  5620  
  5621  // String returns the string representation.
  5622  //
  5623  // API parameter values that are decorated as "sensitive" in the API will not
  5624  // be included in the string output. The member name will be present, but the
  5625  // value will be replaced with "sensitive".
  5626  func (s DeleteConfigurationSetInput) String() string {
  5627  	return awsutil.Prettify(s)
  5628  }
  5629  
  5630  // GoString returns the string representation.
  5631  //
  5632  // API parameter values that are decorated as "sensitive" in the API will not
  5633  // be included in the string output. The member name will be present, but the
  5634  // value will be replaced with "sensitive".
  5635  func (s DeleteConfigurationSetInput) GoString() string {
  5636  	return s.String()
  5637  }
  5638  
  5639  // Validate inspects the fields of the type to determine if they are valid.
  5640  func (s *DeleteConfigurationSetInput) Validate() error {
  5641  	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetInput"}
  5642  	if s.ConfigurationSetName == nil {
  5643  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  5644  	}
  5645  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  5646  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  5647  	}
  5648  
  5649  	if invalidParams.Len() > 0 {
  5650  		return invalidParams
  5651  	}
  5652  	return nil
  5653  }
  5654  
  5655  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  5656  func (s *DeleteConfigurationSetInput) SetConfigurationSetName(v string) *DeleteConfigurationSetInput {
  5657  	s.ConfigurationSetName = &v
  5658  	return s
  5659  }
  5660  
  5661  // An HTTP 200 response if the request succeeds, or an error message if the
  5662  // request fails.
  5663  type DeleteConfigurationSetOutput struct {
  5664  	_ struct{} `type:"structure" nopayload:"true"`
  5665  }
  5666  
  5667  // String returns the string representation.
  5668  //
  5669  // API parameter values that are decorated as "sensitive" in the API will not
  5670  // be included in the string output. The member name will be present, but the
  5671  // value will be replaced with "sensitive".
  5672  func (s DeleteConfigurationSetOutput) String() string {
  5673  	return awsutil.Prettify(s)
  5674  }
  5675  
  5676  // GoString returns the string representation.
  5677  //
  5678  // API parameter values that are decorated as "sensitive" in the API will not
  5679  // be included in the string output. The member name will be present, but the
  5680  // value will be replaced with "sensitive".
  5681  func (s DeleteConfigurationSetOutput) GoString() string {
  5682  	return s.String()
  5683  }
  5684  
  5685  // A request to delete a dedicated IP pool.
  5686  type DeleteDedicatedIpPoolInput struct {
  5687  	_ struct{} `type:"structure" nopayload:"true"`
  5688  
  5689  	// The name of the dedicated IP pool that you want to delete.
  5690  	//
  5691  	// PoolName is a required field
  5692  	PoolName *string `location:"uri" locationName:"PoolName" type:"string" required:"true"`
  5693  }
  5694  
  5695  // String returns the string representation.
  5696  //
  5697  // API parameter values that are decorated as "sensitive" in the API will not
  5698  // be included in the string output. The member name will be present, but the
  5699  // value will be replaced with "sensitive".
  5700  func (s DeleteDedicatedIpPoolInput) String() string {
  5701  	return awsutil.Prettify(s)
  5702  }
  5703  
  5704  // GoString returns the string representation.
  5705  //
  5706  // API parameter values that are decorated as "sensitive" in the API will not
  5707  // be included in the string output. The member name will be present, but the
  5708  // value will be replaced with "sensitive".
  5709  func (s DeleteDedicatedIpPoolInput) GoString() string {
  5710  	return s.String()
  5711  }
  5712  
  5713  // Validate inspects the fields of the type to determine if they are valid.
  5714  func (s *DeleteDedicatedIpPoolInput) Validate() error {
  5715  	invalidParams := request.ErrInvalidParams{Context: "DeleteDedicatedIpPoolInput"}
  5716  	if s.PoolName == nil {
  5717  		invalidParams.Add(request.NewErrParamRequired("PoolName"))
  5718  	}
  5719  	if s.PoolName != nil && len(*s.PoolName) < 1 {
  5720  		invalidParams.Add(request.NewErrParamMinLen("PoolName", 1))
  5721  	}
  5722  
  5723  	if invalidParams.Len() > 0 {
  5724  		return invalidParams
  5725  	}
  5726  	return nil
  5727  }
  5728  
  5729  // SetPoolName sets the PoolName field's value.
  5730  func (s *DeleteDedicatedIpPoolInput) SetPoolName(v string) *DeleteDedicatedIpPoolInput {
  5731  	s.PoolName = &v
  5732  	return s
  5733  }
  5734  
  5735  // An HTTP 200 response if the request succeeds, or an error message if the
  5736  // request fails.
  5737  type DeleteDedicatedIpPoolOutput struct {
  5738  	_ struct{} `type:"structure" nopayload:"true"`
  5739  }
  5740  
  5741  // String returns the string representation.
  5742  //
  5743  // API parameter values that are decorated as "sensitive" in the API will not
  5744  // be included in the string output. The member name will be present, but the
  5745  // value will be replaced with "sensitive".
  5746  func (s DeleteDedicatedIpPoolOutput) String() string {
  5747  	return awsutil.Prettify(s)
  5748  }
  5749  
  5750  // GoString returns the string representation.
  5751  //
  5752  // API parameter values that are decorated as "sensitive" in the API will not
  5753  // be included in the string output. The member name will be present, but the
  5754  // value will be replaced with "sensitive".
  5755  func (s DeleteDedicatedIpPoolOutput) GoString() string {
  5756  	return s.String()
  5757  }
  5758  
  5759  // A request to delete an existing email identity. When you delete an identity,
  5760  // you lose the ability to use Amazon Pinpoint to send email from that identity.
  5761  // You can restore your ability to send email by completing the verification
  5762  // process for the identity again.
  5763  type DeleteEmailIdentityInput struct {
  5764  	_ struct{} `type:"structure" nopayload:"true"`
  5765  
  5766  	// The identity (that is, the email address or domain) that you want to delete
  5767  	// from your Amazon Pinpoint account.
  5768  	//
  5769  	// EmailIdentity is a required field
  5770  	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
  5771  }
  5772  
  5773  // String returns the string representation.
  5774  //
  5775  // API parameter values that are decorated as "sensitive" in the API will not
  5776  // be included in the string output. The member name will be present, but the
  5777  // value will be replaced with "sensitive".
  5778  func (s DeleteEmailIdentityInput) String() string {
  5779  	return awsutil.Prettify(s)
  5780  }
  5781  
  5782  // GoString returns the string representation.
  5783  //
  5784  // API parameter values that are decorated as "sensitive" in the API will not
  5785  // be included in the string output. The member name will be present, but the
  5786  // value will be replaced with "sensitive".
  5787  func (s DeleteEmailIdentityInput) GoString() string {
  5788  	return s.String()
  5789  }
  5790  
  5791  // Validate inspects the fields of the type to determine if they are valid.
  5792  func (s *DeleteEmailIdentityInput) Validate() error {
  5793  	invalidParams := request.ErrInvalidParams{Context: "DeleteEmailIdentityInput"}
  5794  	if s.EmailIdentity == nil {
  5795  		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
  5796  	}
  5797  	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
  5798  		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
  5799  	}
  5800  
  5801  	if invalidParams.Len() > 0 {
  5802  		return invalidParams
  5803  	}
  5804  	return nil
  5805  }
  5806  
  5807  // SetEmailIdentity sets the EmailIdentity field's value.
  5808  func (s *DeleteEmailIdentityInput) SetEmailIdentity(v string) *DeleteEmailIdentityInput {
  5809  	s.EmailIdentity = &v
  5810  	return s
  5811  }
  5812  
  5813  // An HTTP 200 response if the request succeeds, or an error message if the
  5814  // request fails.
  5815  type DeleteEmailIdentityOutput struct {
  5816  	_ struct{} `type:"structure" nopayload:"true"`
  5817  }
  5818  
  5819  // String returns the string representation.
  5820  //
  5821  // API parameter values that are decorated as "sensitive" in the API will not
  5822  // be included in the string output. The member name will be present, but the
  5823  // value will be replaced with "sensitive".
  5824  func (s DeleteEmailIdentityOutput) String() string {
  5825  	return awsutil.Prettify(s)
  5826  }
  5827  
  5828  // GoString returns the string representation.
  5829  //
  5830  // API parameter values that are decorated as "sensitive" in the API will not
  5831  // be included in the string output. The member name will be present, but the
  5832  // value will be replaced with "sensitive".
  5833  func (s DeleteEmailIdentityOutput) GoString() string {
  5834  	return s.String()
  5835  }
  5836  
  5837  // An object that contains metadata related to a predictive inbox placement
  5838  // test.
  5839  type DeliverabilityTestReport struct {
  5840  	_ struct{} `type:"structure"`
  5841  
  5842  	// The date and time when the predictive inbox placement test was created, in
  5843  	// Unix time format.
  5844  	CreateDate *time.Time `type:"timestamp"`
  5845  
  5846  	// The status of the predictive inbox placement test. If the status is IN_PROGRESS,
  5847  	// then the predictive inbox placement test is currently running. Predictive
  5848  	// inbox placement tests are usually complete within 24 hours of creating the
  5849  	// test. If the status is COMPLETE, then the test is finished, and you can use
  5850  	// the GetDeliverabilityTestReport to view the results of the test.
  5851  	DeliverabilityTestStatus *string `type:"string" enum:"DeliverabilityTestStatus"`
  5852  
  5853  	// The sender address that you specified for the predictive inbox placement
  5854  	// test.
  5855  	FromEmailAddress *string `type:"string"`
  5856  
  5857  	// A unique string that identifies the predictive inbox placement test.
  5858  	ReportId *string `type:"string"`
  5859  
  5860  	// A name that helps you identify a predictive inbox placement test report.
  5861  	ReportName *string `type:"string"`
  5862  
  5863  	// The subject line for an email that you submitted in a predictive inbox placement
  5864  	// test.
  5865  	Subject *string `type:"string"`
  5866  }
  5867  
  5868  // String returns the string representation.
  5869  //
  5870  // API parameter values that are decorated as "sensitive" in the API will not
  5871  // be included in the string output. The member name will be present, but the
  5872  // value will be replaced with "sensitive".
  5873  func (s DeliverabilityTestReport) String() string {
  5874  	return awsutil.Prettify(s)
  5875  }
  5876  
  5877  // GoString returns the string representation.
  5878  //
  5879  // API parameter values that are decorated as "sensitive" in the API will not
  5880  // be included in the string output. The member name will be present, but the
  5881  // value will be replaced with "sensitive".
  5882  func (s DeliverabilityTestReport) GoString() string {
  5883  	return s.String()
  5884  }
  5885  
  5886  // SetCreateDate sets the CreateDate field's value.
  5887  func (s *DeliverabilityTestReport) SetCreateDate(v time.Time) *DeliverabilityTestReport {
  5888  	s.CreateDate = &v
  5889  	return s
  5890  }
  5891  
  5892  // SetDeliverabilityTestStatus sets the DeliverabilityTestStatus field's value.
  5893  func (s *DeliverabilityTestReport) SetDeliverabilityTestStatus(v string) *DeliverabilityTestReport {
  5894  	s.DeliverabilityTestStatus = &v
  5895  	return s
  5896  }
  5897  
  5898  // SetFromEmailAddress sets the FromEmailAddress field's value.
  5899  func (s *DeliverabilityTestReport) SetFromEmailAddress(v string) *DeliverabilityTestReport {
  5900  	s.FromEmailAddress = &v
  5901  	return s
  5902  }
  5903  
  5904  // SetReportId sets the ReportId field's value.
  5905  func (s *DeliverabilityTestReport) SetReportId(v string) *DeliverabilityTestReport {
  5906  	s.ReportId = &v
  5907  	return s
  5908  }
  5909  
  5910  // SetReportName sets the ReportName field's value.
  5911  func (s *DeliverabilityTestReport) SetReportName(v string) *DeliverabilityTestReport {
  5912  	s.ReportName = &v
  5913  	return s
  5914  }
  5915  
  5916  // SetSubject sets the Subject field's value.
  5917  func (s *DeliverabilityTestReport) SetSubject(v string) *DeliverabilityTestReport {
  5918  	s.Subject = &v
  5919  	return s
  5920  }
  5921  
  5922  // Used to associate a configuration set with a dedicated IP pool.
  5923  type DeliveryOptions struct {
  5924  	_ struct{} `type:"structure"`
  5925  
  5926  	// The name of the dedicated IP pool that you want to associate with the configuration
  5927  	// set.
  5928  	SendingPoolName *string `type:"string"`
  5929  
  5930  	// Specifies whether messages that use the configuration set are required to
  5931  	// use Transport Layer Security (TLS). If the value is Require, messages are
  5932  	// only delivered if a TLS connection can be established. If the value is Optional,
  5933  	// messages can be delivered in plain text if a TLS connection can't be established.
  5934  	TlsPolicy *string `type:"string" enum:"TlsPolicy"`
  5935  }
  5936  
  5937  // String returns the string representation.
  5938  //
  5939  // API parameter values that are decorated as "sensitive" in the API will not
  5940  // be included in the string output. The member name will be present, but the
  5941  // value will be replaced with "sensitive".
  5942  func (s DeliveryOptions) String() string {
  5943  	return awsutil.Prettify(s)
  5944  }
  5945  
  5946  // GoString returns the string representation.
  5947  //
  5948  // API parameter values that are decorated as "sensitive" in the API will not
  5949  // be included in the string output. The member name will be present, but the
  5950  // value will be replaced with "sensitive".
  5951  func (s DeliveryOptions) GoString() string {
  5952  	return s.String()
  5953  }
  5954  
  5955  // SetSendingPoolName sets the SendingPoolName field's value.
  5956  func (s *DeliveryOptions) SetSendingPoolName(v string) *DeliveryOptions {
  5957  	s.SendingPoolName = &v
  5958  	return s
  5959  }
  5960  
  5961  // SetTlsPolicy sets the TlsPolicy field's value.
  5962  func (s *DeliveryOptions) SetTlsPolicy(v string) *DeliveryOptions {
  5963  	s.TlsPolicy = &v
  5964  	return s
  5965  }
  5966  
  5967  // An object that describes the recipients for an email.
  5968  type Destination struct {
  5969  	_ struct{} `type:"structure"`
  5970  
  5971  	// An array that contains the email addresses of the "BCC" (blind carbon copy)
  5972  	// recipients for the email.
  5973  	BccAddresses []*string `type:"list"`
  5974  
  5975  	// An array that contains the email addresses of the "CC" (carbon copy) recipients
  5976  	// for the email.
  5977  	CcAddresses []*string `type:"list"`
  5978  
  5979  	// An array that contains the email addresses of the "To" recipients for the
  5980  	// email.
  5981  	ToAddresses []*string `type:"list"`
  5982  }
  5983  
  5984  // String returns the string representation.
  5985  //
  5986  // API parameter values that are decorated as "sensitive" in the API will not
  5987  // be included in the string output. The member name will be present, but the
  5988  // value will be replaced with "sensitive".
  5989  func (s Destination) String() string {
  5990  	return awsutil.Prettify(s)
  5991  }
  5992  
  5993  // GoString returns the string representation.
  5994  //
  5995  // API parameter values that are decorated as "sensitive" in the API will not
  5996  // be included in the string output. The member name will be present, but the
  5997  // value will be replaced with "sensitive".
  5998  func (s Destination) GoString() string {
  5999  	return s.String()
  6000  }
  6001  
  6002  // SetBccAddresses sets the BccAddresses field's value.
  6003  func (s *Destination) SetBccAddresses(v []*string) *Destination {
  6004  	s.BccAddresses = v
  6005  	return s
  6006  }
  6007  
  6008  // SetCcAddresses sets the CcAddresses field's value.
  6009  func (s *Destination) SetCcAddresses(v []*string) *Destination {
  6010  	s.CcAddresses = v
  6011  	return s
  6012  }
  6013  
  6014  // SetToAddresses sets the ToAddresses field's value.
  6015  func (s *Destination) SetToAddresses(v []*string) *Destination {
  6016  	s.ToAddresses = v
  6017  	return s
  6018  }
  6019  
  6020  // An object that contains information about the DKIM configuration for an email
  6021  // identity.
  6022  type DkimAttributes struct {
  6023  	_ struct{} `type:"structure"`
  6024  
  6025  	// If the value is true, then the messages that Amazon Pinpoint sends from the
  6026  	// identity are DKIM-signed. If the value is false, then the messages that Amazon
  6027  	// Pinpoint sends from the identity aren't DKIM-signed.
  6028  	SigningEnabled *bool `type:"boolean"`
  6029  
  6030  	// Describes whether or not Amazon Pinpoint has successfully located the DKIM
  6031  	// records in the DNS records for the domain. The status can be one of the following:
  6032  	//
  6033  	//    * PENDING – Amazon Pinpoint hasn't yet located the DKIM records in the
  6034  	//    DNS configuration for the domain, but will continue to attempt to locate
  6035  	//    them.
  6036  	//
  6037  	//    * SUCCESS – Amazon Pinpoint located the DKIM records in the DNS configuration
  6038  	//    for the domain and determined that they're correct. Amazon Pinpoint can
  6039  	//    now send DKIM-signed email from the identity.
  6040  	//
  6041  	//    * FAILED – Amazon Pinpoint was unable to locate the DKIM records in
  6042  	//    the DNS settings for the domain, and won't continue to search for them.
  6043  	//
  6044  	//    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
  6045  	//    Pinpoint from determining the DKIM status for the domain.
  6046  	//
  6047  	//    * NOT_STARTED – Amazon Pinpoint hasn't yet started searching for the
  6048  	//    DKIM records in the DKIM records for the domain.
  6049  	Status *string `type:"string" enum:"DkimStatus"`
  6050  
  6051  	// A set of unique strings that you use to create a set of CNAME records that
  6052  	// you add to the DNS configuration for your domain. When Amazon Pinpoint detects
  6053  	// these records in the DNS configuration for your domain, the DKIM authentication
  6054  	// process is complete. Amazon Pinpoint usually detects these records within
  6055  	// about 72 hours of adding them to the DNS configuration for your domain.
  6056  	Tokens []*string `type:"list"`
  6057  }
  6058  
  6059  // String returns the string representation.
  6060  //
  6061  // API parameter values that are decorated as "sensitive" in the API will not
  6062  // be included in the string output. The member name will be present, but the
  6063  // value will be replaced with "sensitive".
  6064  func (s DkimAttributes) String() string {
  6065  	return awsutil.Prettify(s)
  6066  }
  6067  
  6068  // GoString returns the string representation.
  6069  //
  6070  // API parameter values that are decorated as "sensitive" in the API will not
  6071  // be included in the string output. The member name will be present, but the
  6072  // value will be replaced with "sensitive".
  6073  func (s DkimAttributes) GoString() string {
  6074  	return s.String()
  6075  }
  6076  
  6077  // SetSigningEnabled sets the SigningEnabled field's value.
  6078  func (s *DkimAttributes) SetSigningEnabled(v bool) *DkimAttributes {
  6079  	s.SigningEnabled = &v
  6080  	return s
  6081  }
  6082  
  6083  // SetStatus sets the Status field's value.
  6084  func (s *DkimAttributes) SetStatus(v string) *DkimAttributes {
  6085  	s.Status = &v
  6086  	return s
  6087  }
  6088  
  6089  // SetTokens sets the Tokens field's value.
  6090  func (s *DkimAttributes) SetTokens(v []*string) *DkimAttributes {
  6091  	s.Tokens = v
  6092  	return s
  6093  }
  6094  
  6095  // An object that contains the deliverability data for a specific campaign.
  6096  // This data is available for a campaign only if the campaign sent email by
  6097  // using a domain that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
  6098  // operation).
  6099  type DomainDeliverabilityCampaign struct {
  6100  	_ struct{} `type:"structure"`
  6101  
  6102  	// The unique identifier for the campaign. Amazon Pinpoint automatically generates
  6103  	// and assigns this identifier to a campaign. This value is not the same as
  6104  	// the campaign identifier that Amazon Pinpoint assigns to campaigns that you
  6105  	// create and manage by using the Amazon Pinpoint API or the Amazon Pinpoint
  6106  	// console.
  6107  	CampaignId *string `type:"string"`
  6108  
  6109  	// The percentage of email messages that were deleted by recipients, without
  6110  	// being opened first. Due to technical limitations, this value only includes
  6111  	// recipients who opened the message by using an email client that supports
  6112  	// images.
  6113  	DeleteRate *float64 `type:"double"`
  6114  
  6115  	// The major email providers who handled the email message.
  6116  	Esps []*string `type:"list"`
  6117  
  6118  	// The first time, in Unix time format, when the email message was delivered
  6119  	// to any recipient's inbox. This value can help you determine how long it took
  6120  	// for a campaign to deliver an email message.
  6121  	FirstSeenDateTime *time.Time `type:"timestamp"`
  6122  
  6123  	// The verified email address that the email message was sent from.
  6124  	FromAddress *string `type:"string"`
  6125  
  6126  	// The URL of an image that contains a snapshot of the email message that was
  6127  	// sent.
  6128  	ImageUrl *string `type:"string"`
  6129  
  6130  	// The number of email messages that were delivered to recipients’ inboxes.
  6131  	InboxCount *int64 `type:"long"`
  6132  
  6133  	// The last time, in Unix time format, when the email message was delivered
  6134  	// to any recipient's inbox. This value can help you determine how long it took
  6135  	// for a campaign to deliver an email message.
  6136  	LastSeenDateTime *time.Time `type:"timestamp"`
  6137  
  6138  	// The projected number of recipients that the email message was sent to.
  6139  	ProjectedVolume *int64 `type:"long"`
  6140  
  6141  	// The percentage of email messages that were opened and then deleted by recipients.
  6142  	// Due to technical limitations, this value only includes recipients who opened
  6143  	// the message by using an email client that supports images.
  6144  	ReadDeleteRate *float64 `type:"double"`
  6145  
  6146  	// The percentage of email messages that were opened by recipients. Due to technical
  6147  	// limitations, this value only includes recipients who opened the message by
  6148  	// using an email client that supports images.
  6149  	ReadRate *float64 `type:"double"`
  6150  
  6151  	// The IP addresses that were used to send the email message.
  6152  	SendingIps []*string `type:"list"`
  6153  
  6154  	// The number of email messages that were delivered to recipients' spam or junk
  6155  	// mail folders.
  6156  	SpamCount *int64 `type:"long"`
  6157  
  6158  	// The subject line, or title, of the email message.
  6159  	Subject *string `type:"string"`
  6160  }
  6161  
  6162  // String returns the string representation.
  6163  //
  6164  // API parameter values that are decorated as "sensitive" in the API will not
  6165  // be included in the string output. The member name will be present, but the
  6166  // value will be replaced with "sensitive".
  6167  func (s DomainDeliverabilityCampaign) String() string {
  6168  	return awsutil.Prettify(s)
  6169  }
  6170  
  6171  // GoString returns the string representation.
  6172  //
  6173  // API parameter values that are decorated as "sensitive" in the API will not
  6174  // be included in the string output. The member name will be present, but the
  6175  // value will be replaced with "sensitive".
  6176  func (s DomainDeliverabilityCampaign) GoString() string {
  6177  	return s.String()
  6178  }
  6179  
  6180  // SetCampaignId sets the CampaignId field's value.
  6181  func (s *DomainDeliverabilityCampaign) SetCampaignId(v string) *DomainDeliverabilityCampaign {
  6182  	s.CampaignId = &v
  6183  	return s
  6184  }
  6185  
  6186  // SetDeleteRate sets the DeleteRate field's value.
  6187  func (s *DomainDeliverabilityCampaign) SetDeleteRate(v float64) *DomainDeliverabilityCampaign {
  6188  	s.DeleteRate = &v
  6189  	return s
  6190  }
  6191  
  6192  // SetEsps sets the Esps field's value.
  6193  func (s *DomainDeliverabilityCampaign) SetEsps(v []*string) *DomainDeliverabilityCampaign {
  6194  	s.Esps = v
  6195  	return s
  6196  }
  6197  
  6198  // SetFirstSeenDateTime sets the FirstSeenDateTime field's value.
  6199  func (s *DomainDeliverabilityCampaign) SetFirstSeenDateTime(v time.Time) *DomainDeliverabilityCampaign {
  6200  	s.FirstSeenDateTime = &v
  6201  	return s
  6202  }
  6203  
  6204  // SetFromAddress sets the FromAddress field's value.
  6205  func (s *DomainDeliverabilityCampaign) SetFromAddress(v string) *DomainDeliverabilityCampaign {
  6206  	s.FromAddress = &v
  6207  	return s
  6208  }
  6209  
  6210  // SetImageUrl sets the ImageUrl field's value.
  6211  func (s *DomainDeliverabilityCampaign) SetImageUrl(v string) *DomainDeliverabilityCampaign {
  6212  	s.ImageUrl = &v
  6213  	return s
  6214  }
  6215  
  6216  // SetInboxCount sets the InboxCount field's value.
  6217  func (s *DomainDeliverabilityCampaign) SetInboxCount(v int64) *DomainDeliverabilityCampaign {
  6218  	s.InboxCount = &v
  6219  	return s
  6220  }
  6221  
  6222  // SetLastSeenDateTime sets the LastSeenDateTime field's value.
  6223  func (s *DomainDeliverabilityCampaign) SetLastSeenDateTime(v time.Time) *DomainDeliverabilityCampaign {
  6224  	s.LastSeenDateTime = &v
  6225  	return s
  6226  }
  6227  
  6228  // SetProjectedVolume sets the ProjectedVolume field's value.
  6229  func (s *DomainDeliverabilityCampaign) SetProjectedVolume(v int64) *DomainDeliverabilityCampaign {
  6230  	s.ProjectedVolume = &v
  6231  	return s
  6232  }
  6233  
  6234  // SetReadDeleteRate sets the ReadDeleteRate field's value.
  6235  func (s *DomainDeliverabilityCampaign) SetReadDeleteRate(v float64) *DomainDeliverabilityCampaign {
  6236  	s.ReadDeleteRate = &v
  6237  	return s
  6238  }
  6239  
  6240  // SetReadRate sets the ReadRate field's value.
  6241  func (s *DomainDeliverabilityCampaign) SetReadRate(v float64) *DomainDeliverabilityCampaign {
  6242  	s.ReadRate = &v
  6243  	return s
  6244  }
  6245  
  6246  // SetSendingIps sets the SendingIps field's value.
  6247  func (s *DomainDeliverabilityCampaign) SetSendingIps(v []*string) *DomainDeliverabilityCampaign {
  6248  	s.SendingIps = v
  6249  	return s
  6250  }
  6251  
  6252  // SetSpamCount sets the SpamCount field's value.
  6253  func (s *DomainDeliverabilityCampaign) SetSpamCount(v int64) *DomainDeliverabilityCampaign {
  6254  	s.SpamCount = &v
  6255  	return s
  6256  }
  6257  
  6258  // SetSubject sets the Subject field's value.
  6259  func (s *DomainDeliverabilityCampaign) SetSubject(v string) *DomainDeliverabilityCampaign {
  6260  	s.Subject = &v
  6261  	return s
  6262  }
  6263  
  6264  // An object that contains information about the Deliverability dashboard subscription
  6265  // for a verified domain that you use to send email and currently has an active
  6266  // Deliverability dashboard subscription. If a Deliverability dashboard subscription
  6267  // is active for a domain, you gain access to reputation, inbox placement, and
  6268  // other metrics for the domain.
  6269  type DomainDeliverabilityTrackingOption struct {
  6270  	_ struct{} `type:"structure"`
  6271  
  6272  	// A verified domain that’s associated with your AWS account and currently
  6273  	// has an active Deliverability dashboard subscription.
  6274  	Domain *string `type:"string"`
  6275  
  6276  	// An object that contains information about the inbox placement data settings
  6277  	// for the domain.
  6278  	InboxPlacementTrackingOption *InboxPlacementTrackingOption `type:"structure"`
  6279  
  6280  	// The date, in Unix time format, when you enabled the Deliverability dashboard
  6281  	// for the domain.
  6282  	SubscriptionStartDate *time.Time `type:"timestamp"`
  6283  }
  6284  
  6285  // String returns the string representation.
  6286  //
  6287  // API parameter values that are decorated as "sensitive" in the API will not
  6288  // be included in the string output. The member name will be present, but the
  6289  // value will be replaced with "sensitive".
  6290  func (s DomainDeliverabilityTrackingOption) String() string {
  6291  	return awsutil.Prettify(s)
  6292  }
  6293  
  6294  // GoString returns the string representation.
  6295  //
  6296  // API parameter values that are decorated as "sensitive" in the API will not
  6297  // be included in the string output. The member name will be present, but the
  6298  // value will be replaced with "sensitive".
  6299  func (s DomainDeliverabilityTrackingOption) GoString() string {
  6300  	return s.String()
  6301  }
  6302  
  6303  // SetDomain sets the Domain field's value.
  6304  func (s *DomainDeliverabilityTrackingOption) SetDomain(v string) *DomainDeliverabilityTrackingOption {
  6305  	s.Domain = &v
  6306  	return s
  6307  }
  6308  
  6309  // SetInboxPlacementTrackingOption sets the InboxPlacementTrackingOption field's value.
  6310  func (s *DomainDeliverabilityTrackingOption) SetInboxPlacementTrackingOption(v *InboxPlacementTrackingOption) *DomainDeliverabilityTrackingOption {
  6311  	s.InboxPlacementTrackingOption = v
  6312  	return s
  6313  }
  6314  
  6315  // SetSubscriptionStartDate sets the SubscriptionStartDate field's value.
  6316  func (s *DomainDeliverabilityTrackingOption) SetSubscriptionStartDate(v time.Time) *DomainDeliverabilityTrackingOption {
  6317  	s.SubscriptionStartDate = &v
  6318  	return s
  6319  }
  6320  
  6321  // An object that contains inbox placement data for email sent from one of your
  6322  // email domains to a specific email provider.
  6323  type DomainIspPlacement struct {
  6324  	_ struct{} `type:"structure"`
  6325  
  6326  	// The percentage of messages that were sent from the selected domain to the
  6327  	// specified email provider that arrived in recipients' inboxes.
  6328  	InboxPercentage *float64 `type:"double"`
  6329  
  6330  	// The total number of messages that were sent from the selected domain to the
  6331  	// specified email provider that arrived in recipients' inboxes.
  6332  	InboxRawCount *int64 `type:"long"`
  6333  
  6334  	// The name of the email provider that the inbox placement data applies to.
  6335  	IspName *string `type:"string"`
  6336  
  6337  	// The percentage of messages that were sent from the selected domain to the
  6338  	// specified email provider that arrived in recipients' spam or junk mail folders.
  6339  	SpamPercentage *float64 `type:"double"`
  6340  
  6341  	// The total number of messages that were sent from the selected domain to the
  6342  	// specified email provider that arrived in recipients' spam or junk mail folders.
  6343  	SpamRawCount *int64 `type:"long"`
  6344  }
  6345  
  6346  // String returns the string representation.
  6347  //
  6348  // API parameter values that are decorated as "sensitive" in the API will not
  6349  // be included in the string output. The member name will be present, but the
  6350  // value will be replaced with "sensitive".
  6351  func (s DomainIspPlacement) String() string {
  6352  	return awsutil.Prettify(s)
  6353  }
  6354  
  6355  // GoString returns the string representation.
  6356  //
  6357  // API parameter values that are decorated as "sensitive" in the API will not
  6358  // be included in the string output. The member name will be present, but the
  6359  // value will be replaced with "sensitive".
  6360  func (s DomainIspPlacement) GoString() string {
  6361  	return s.String()
  6362  }
  6363  
  6364  // SetInboxPercentage sets the InboxPercentage field's value.
  6365  func (s *DomainIspPlacement) SetInboxPercentage(v float64) *DomainIspPlacement {
  6366  	s.InboxPercentage = &v
  6367  	return s
  6368  }
  6369  
  6370  // SetInboxRawCount sets the InboxRawCount field's value.
  6371  func (s *DomainIspPlacement) SetInboxRawCount(v int64) *DomainIspPlacement {
  6372  	s.InboxRawCount = &v
  6373  	return s
  6374  }
  6375  
  6376  // SetIspName sets the IspName field's value.
  6377  func (s *DomainIspPlacement) SetIspName(v string) *DomainIspPlacement {
  6378  	s.IspName = &v
  6379  	return s
  6380  }
  6381  
  6382  // SetSpamPercentage sets the SpamPercentage field's value.
  6383  func (s *DomainIspPlacement) SetSpamPercentage(v float64) *DomainIspPlacement {
  6384  	s.SpamPercentage = &v
  6385  	return s
  6386  }
  6387  
  6388  // SetSpamRawCount sets the SpamRawCount field's value.
  6389  func (s *DomainIspPlacement) SetSpamRawCount(v int64) *DomainIspPlacement {
  6390  	s.SpamRawCount = &v
  6391  	return s
  6392  }
  6393  
  6394  // An object that defines the entire content of the email, including the message
  6395  // headers and the body content. You can create a simple email message, in which
  6396  // you specify the subject and the text and HTML versions of the message body.
  6397  // You can also create raw messages, in which you specify a complete MIME-formatted
  6398  // message. Raw messages can include attachments and custom headers.
  6399  type EmailContent struct {
  6400  	_ struct{} `type:"structure"`
  6401  
  6402  	// The raw email message. The message has to meet the following criteria:
  6403  	//
  6404  	//    * The message has to contain a header and a body, separated by one blank
  6405  	//    line.
  6406  	//
  6407  	//    * All of the required header fields must be present in the message.
  6408  	//
  6409  	//    * Each part of a multipart MIME message must be formatted properly.
  6410  	//
  6411  	//    * If you include attachments, they must be in a file format that Amazon
  6412  	//    Pinpoint supports.
  6413  	//
  6414  	//    * The entire message must be Base64 encoded.
  6415  	//
  6416  	//    * If any of the MIME parts in your message contain content that is outside
  6417  	//    of the 7-bit ASCII character range, you should encode that content to
  6418  	//    ensure that recipients' email clients render the message properly.
  6419  	//
  6420  	//    * The length of any single line of text in the message can't exceed 1,000
  6421  	//    characters. This restriction is defined in RFC 5321 (https://tools.ietf.org/html/rfc5321).
  6422  	Raw *RawMessage `type:"structure"`
  6423  
  6424  	// The simple email message. The message consists of a subject and a message
  6425  	// body.
  6426  	Simple *Message `type:"structure"`
  6427  
  6428  	// The template to use for the email message.
  6429  	Template *Template `type:"structure"`
  6430  }
  6431  
  6432  // String returns the string representation.
  6433  //
  6434  // API parameter values that are decorated as "sensitive" in the API will not
  6435  // be included in the string output. The member name will be present, but the
  6436  // value will be replaced with "sensitive".
  6437  func (s EmailContent) String() string {
  6438  	return awsutil.Prettify(s)
  6439  }
  6440  
  6441  // GoString returns the string representation.
  6442  //
  6443  // API parameter values that are decorated as "sensitive" in the API will not
  6444  // be included in the string output. The member name will be present, but the
  6445  // value will be replaced with "sensitive".
  6446  func (s EmailContent) GoString() string {
  6447  	return s.String()
  6448  }
  6449  
  6450  // Validate inspects the fields of the type to determine if they are valid.
  6451  func (s *EmailContent) Validate() error {
  6452  	invalidParams := request.ErrInvalidParams{Context: "EmailContent"}
  6453  	if s.Raw != nil {
  6454  		if err := s.Raw.Validate(); err != nil {
  6455  			invalidParams.AddNested("Raw", err.(request.ErrInvalidParams))
  6456  		}
  6457  	}
  6458  	if s.Simple != nil {
  6459  		if err := s.Simple.Validate(); err != nil {
  6460  			invalidParams.AddNested("Simple", err.(request.ErrInvalidParams))
  6461  		}
  6462  	}
  6463  
  6464  	if invalidParams.Len() > 0 {
  6465  		return invalidParams
  6466  	}
  6467  	return nil
  6468  }
  6469  
  6470  // SetRaw sets the Raw field's value.
  6471  func (s *EmailContent) SetRaw(v *RawMessage) *EmailContent {
  6472  	s.Raw = v
  6473  	return s
  6474  }
  6475  
  6476  // SetSimple sets the Simple field's value.
  6477  func (s *EmailContent) SetSimple(v *Message) *EmailContent {
  6478  	s.Simple = v
  6479  	return s
  6480  }
  6481  
  6482  // SetTemplate sets the Template field's value.
  6483  func (s *EmailContent) SetTemplate(v *Template) *EmailContent {
  6484  	s.Template = v
  6485  	return s
  6486  }
  6487  
  6488  // In Amazon Pinpoint, events include message sends, deliveries, opens, clicks,
  6489  // bounces, and complaints. Event destinations are places that you can send
  6490  // information about these events to. For example, you can send event data to
  6491  // Amazon SNS to receive notifications when you receive bounces or complaints,
  6492  // or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
  6493  // long-term storage.
  6494  type EventDestination struct {
  6495  	_ struct{} `type:"structure"`
  6496  
  6497  	// An object that defines an Amazon CloudWatch destination for email events.
  6498  	// You can use Amazon CloudWatch to monitor and gain insights on your email
  6499  	// sending metrics.
  6500  	CloudWatchDestination *CloudWatchDestination `type:"structure"`
  6501  
  6502  	// If true, the event destination is enabled. When the event destination is
  6503  	// enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.
  6504  	//
  6505  	// If false, the event destination is disabled. When the event destination is
  6506  	// disabled, events aren't sent to the specified destinations.
  6507  	Enabled *bool `type:"boolean"`
  6508  
  6509  	// An object that defines an Amazon Kinesis Data Firehose destination for email
  6510  	// events. You can use Amazon Kinesis Data Firehose to stream data to other
  6511  	// services, such as Amazon S3 and Amazon Redshift.
  6512  	KinesisFirehoseDestination *KinesisFirehoseDestination `type:"structure"`
  6513  
  6514  	// The types of events that Amazon Pinpoint sends to the specified event destinations.
  6515  	//
  6516  	// MatchingEventTypes is a required field
  6517  	MatchingEventTypes []*string `type:"list" required:"true"`
  6518  
  6519  	// A name that identifies the event destination.
  6520  	//
  6521  	// Name is a required field
  6522  	Name *string `type:"string" required:"true"`
  6523  
  6524  	// An object that defines a Amazon Pinpoint destination for email events. You
  6525  	// can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects.
  6526  	// You can use these attributes to create segments for your campaigns.
  6527  	PinpointDestination *PinpointDestination `type:"structure"`
  6528  
  6529  	// An object that defines an Amazon SNS destination for email events. You can
  6530  	// use Amazon SNS to send notification when certain email events occur.
  6531  	SnsDestination *SnsDestination `type:"structure"`
  6532  }
  6533  
  6534  // String returns the string representation.
  6535  //
  6536  // API parameter values that are decorated as "sensitive" in the API will not
  6537  // be included in the string output. The member name will be present, but the
  6538  // value will be replaced with "sensitive".
  6539  func (s EventDestination) String() string {
  6540  	return awsutil.Prettify(s)
  6541  }
  6542  
  6543  // GoString returns the string representation.
  6544  //
  6545  // API parameter values that are decorated as "sensitive" in the API will not
  6546  // be included in the string output. The member name will be present, but the
  6547  // value will be replaced with "sensitive".
  6548  func (s EventDestination) GoString() string {
  6549  	return s.String()
  6550  }
  6551  
  6552  // SetCloudWatchDestination sets the CloudWatchDestination field's value.
  6553  func (s *EventDestination) SetCloudWatchDestination(v *CloudWatchDestination) *EventDestination {
  6554  	s.CloudWatchDestination = v
  6555  	return s
  6556  }
  6557  
  6558  // SetEnabled sets the Enabled field's value.
  6559  func (s *EventDestination) SetEnabled(v bool) *EventDestination {
  6560  	s.Enabled = &v
  6561  	return s
  6562  }
  6563  
  6564  // SetKinesisFirehoseDestination sets the KinesisFirehoseDestination field's value.
  6565  func (s *EventDestination) SetKinesisFirehoseDestination(v *KinesisFirehoseDestination) *EventDestination {
  6566  	s.KinesisFirehoseDestination = v
  6567  	return s
  6568  }
  6569  
  6570  // SetMatchingEventTypes sets the MatchingEventTypes field's value.
  6571  func (s *EventDestination) SetMatchingEventTypes(v []*string) *EventDestination {
  6572  	s.MatchingEventTypes = v
  6573  	return s
  6574  }
  6575  
  6576  // SetName sets the Name field's value.
  6577  func (s *EventDestination) SetName(v string) *EventDestination {
  6578  	s.Name = &v
  6579  	return s
  6580  }
  6581  
  6582  // SetPinpointDestination sets the PinpointDestination field's value.
  6583  func (s *EventDestination) SetPinpointDestination(v *PinpointDestination) *EventDestination {
  6584  	s.PinpointDestination = v
  6585  	return s
  6586  }
  6587  
  6588  // SetSnsDestination sets the SnsDestination field's value.
  6589  func (s *EventDestination) SetSnsDestination(v *SnsDestination) *EventDestination {
  6590  	s.SnsDestination = v
  6591  	return s
  6592  }
  6593  
  6594  // An object that defines the event destination. Specifically, it defines which
  6595  // services receive events from emails sent using the configuration set that
  6596  // the event destination is associated with. Also defines the types of events
  6597  // that are sent to the event destination.
  6598  type EventDestinationDefinition struct {
  6599  	_ struct{} `type:"structure"`
  6600  
  6601  	// An object that defines an Amazon CloudWatch destination for email events.
  6602  	// You can use Amazon CloudWatch to monitor and gain insights on your email
  6603  	// sending metrics.
  6604  	CloudWatchDestination *CloudWatchDestination `type:"structure"`
  6605  
  6606  	// If true, the event destination is enabled. When the event destination is
  6607  	// enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.
  6608  	//
  6609  	// If false, the event destination is disabled. When the event destination is
  6610  	// disabled, events aren't sent to the specified destinations.
  6611  	Enabled *bool `type:"boolean"`
  6612  
  6613  	// An object that defines an Amazon Kinesis Data Firehose destination for email
  6614  	// events. You can use Amazon Kinesis Data Firehose to stream data to other
  6615  	// services, such as Amazon S3 and Amazon Redshift.
  6616  	KinesisFirehoseDestination *KinesisFirehoseDestination `type:"structure"`
  6617  
  6618  	// An array that specifies which events Amazon Pinpoint should send to the destinations
  6619  	// in this EventDestinationDefinition.
  6620  	MatchingEventTypes []*string `type:"list"`
  6621  
  6622  	// An object that defines a Amazon Pinpoint destination for email events. You
  6623  	// can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects.
  6624  	// You can use these attributes to create segments for your campaigns.
  6625  	PinpointDestination *PinpointDestination `type:"structure"`
  6626  
  6627  	// An object that defines an Amazon SNS destination for email events. You can
  6628  	// use Amazon SNS to send notification when certain email events occur.
  6629  	SnsDestination *SnsDestination `type:"structure"`
  6630  }
  6631  
  6632  // String returns the string representation.
  6633  //
  6634  // API parameter values that are decorated as "sensitive" in the API will not
  6635  // be included in the string output. The member name will be present, but the
  6636  // value will be replaced with "sensitive".
  6637  func (s EventDestinationDefinition) String() string {
  6638  	return awsutil.Prettify(s)
  6639  }
  6640  
  6641  // GoString returns the string representation.
  6642  //
  6643  // API parameter values that are decorated as "sensitive" in the API will not
  6644  // be included in the string output. The member name will be present, but the
  6645  // value will be replaced with "sensitive".
  6646  func (s EventDestinationDefinition) GoString() string {
  6647  	return s.String()
  6648  }
  6649  
  6650  // Validate inspects the fields of the type to determine if they are valid.
  6651  func (s *EventDestinationDefinition) Validate() error {
  6652  	invalidParams := request.ErrInvalidParams{Context: "EventDestinationDefinition"}
  6653  	if s.CloudWatchDestination != nil {
  6654  		if err := s.CloudWatchDestination.Validate(); err != nil {
  6655  			invalidParams.AddNested("CloudWatchDestination", err.(request.ErrInvalidParams))
  6656  		}
  6657  	}
  6658  	if s.KinesisFirehoseDestination != nil {
  6659  		if err := s.KinesisFirehoseDestination.Validate(); err != nil {
  6660  			invalidParams.AddNested("KinesisFirehoseDestination", err.(request.ErrInvalidParams))
  6661  		}
  6662  	}
  6663  	if s.SnsDestination != nil {
  6664  		if err := s.SnsDestination.Validate(); err != nil {
  6665  			invalidParams.AddNested("SnsDestination", err.(request.ErrInvalidParams))
  6666  		}
  6667  	}
  6668  
  6669  	if invalidParams.Len() > 0 {
  6670  		return invalidParams
  6671  	}
  6672  	return nil
  6673  }
  6674  
  6675  // SetCloudWatchDestination sets the CloudWatchDestination field's value.
  6676  func (s *EventDestinationDefinition) SetCloudWatchDestination(v *CloudWatchDestination) *EventDestinationDefinition {
  6677  	s.CloudWatchDestination = v
  6678  	return s
  6679  }
  6680  
  6681  // SetEnabled sets the Enabled field's value.
  6682  func (s *EventDestinationDefinition) SetEnabled(v bool) *EventDestinationDefinition {
  6683  	s.Enabled = &v
  6684  	return s
  6685  }
  6686  
  6687  // SetKinesisFirehoseDestination sets the KinesisFirehoseDestination field's value.
  6688  func (s *EventDestinationDefinition) SetKinesisFirehoseDestination(v *KinesisFirehoseDestination) *EventDestinationDefinition {
  6689  	s.KinesisFirehoseDestination = v
  6690  	return s
  6691  }
  6692  
  6693  // SetMatchingEventTypes sets the MatchingEventTypes field's value.
  6694  func (s *EventDestinationDefinition) SetMatchingEventTypes(v []*string) *EventDestinationDefinition {
  6695  	s.MatchingEventTypes = v
  6696  	return s
  6697  }
  6698  
  6699  // SetPinpointDestination sets the PinpointDestination field's value.
  6700  func (s *EventDestinationDefinition) SetPinpointDestination(v *PinpointDestination) *EventDestinationDefinition {
  6701  	s.PinpointDestination = v
  6702  	return s
  6703  }
  6704  
  6705  // SetSnsDestination sets the SnsDestination field's value.
  6706  func (s *EventDestinationDefinition) SetSnsDestination(v *SnsDestination) *EventDestinationDefinition {
  6707  	s.SnsDestination = v
  6708  	return s
  6709  }
  6710  
  6711  // A request to obtain information about the email-sending capabilities of your
  6712  // Amazon Pinpoint account.
  6713  type GetAccountInput struct {
  6714  	_ struct{} `type:"structure" nopayload:"true"`
  6715  }
  6716  
  6717  // String returns the string representation.
  6718  //
  6719  // API parameter values that are decorated as "sensitive" in the API will not
  6720  // be included in the string output. The member name will be present, but the
  6721  // value will be replaced with "sensitive".
  6722  func (s GetAccountInput) String() string {
  6723  	return awsutil.Prettify(s)
  6724  }
  6725  
  6726  // GoString returns the string representation.
  6727  //
  6728  // API parameter values that are decorated as "sensitive" in the API will not
  6729  // be included in the string output. The member name will be present, but the
  6730  // value will be replaced with "sensitive".
  6731  func (s GetAccountInput) GoString() string {
  6732  	return s.String()
  6733  }
  6734  
  6735  // A list of details about the email-sending capabilities of your Amazon Pinpoint
  6736  // account in the current AWS Region.
  6737  type GetAccountOutput struct {
  6738  	_ struct{} `type:"structure"`
  6739  
  6740  	// Indicates whether or not the automatic warm-up feature is enabled for dedicated
  6741  	// IP addresses that are associated with your account.
  6742  	DedicatedIpAutoWarmupEnabled *bool `type:"boolean"`
  6743  
  6744  	// The reputation status of your Amazon Pinpoint account. The status can be
  6745  	// one of the following:
  6746  	//
  6747  	//    * HEALTHY – There are no reputation-related issues that currently impact
  6748  	//    your account.
  6749  	//
  6750  	//    * PROBATION – We've identified some issues with your Amazon Pinpoint
  6751  	//    account. We're placing your account under review while you work on correcting
  6752  	//    these issues.
  6753  	//
  6754  	//    * SHUTDOWN – Your account's ability to send email is currently paused
  6755  	//    because of an issue with the email sent from your account. When you correct
  6756  	//    the issue, you can contact us and request that your account's ability
  6757  	//    to send email is resumed.
  6758  	EnforcementStatus *string `type:"string"`
  6759  
  6760  	// Indicates whether or not your account has production access in the current
  6761  	// AWS Region.
  6762  	//
  6763  	// If the value is false, then your account is in the sandbox. When your account
  6764  	// is in the sandbox, you can only send email to verified identities. Additionally,
  6765  	// the maximum number of emails you can send in a 24-hour period (your sending
  6766  	// quota) is 200, and the maximum number of emails you can send per second (your
  6767  	// maximum sending rate) is 1.
  6768  	//
  6769  	// If the value is true, then your account has production access. When your
  6770  	// account has production access, you can send email to any address. The sending
  6771  	// quota and maximum sending rate for your account vary based on your specific
  6772  	// use case.
  6773  	ProductionAccessEnabled *bool `type:"boolean"`
  6774  
  6775  	// An object that contains information about the per-day and per-second sending
  6776  	// limits for your Amazon Pinpoint account in the current AWS Region.
  6777  	SendQuota *SendQuota `type:"structure"`
  6778  
  6779  	// Indicates whether or not email sending is enabled for your Amazon Pinpoint
  6780  	// account in the current AWS Region.
  6781  	SendingEnabled *bool `type:"boolean"`
  6782  }
  6783  
  6784  // String returns the string representation.
  6785  //
  6786  // API parameter values that are decorated as "sensitive" in the API will not
  6787  // be included in the string output. The member name will be present, but the
  6788  // value will be replaced with "sensitive".
  6789  func (s GetAccountOutput) String() string {
  6790  	return awsutil.Prettify(s)
  6791  }
  6792  
  6793  // GoString returns the string representation.
  6794  //
  6795  // API parameter values that are decorated as "sensitive" in the API will not
  6796  // be included in the string output. The member name will be present, but the
  6797  // value will be replaced with "sensitive".
  6798  func (s GetAccountOutput) GoString() string {
  6799  	return s.String()
  6800  }
  6801  
  6802  // SetDedicatedIpAutoWarmupEnabled sets the DedicatedIpAutoWarmupEnabled field's value.
  6803  func (s *GetAccountOutput) SetDedicatedIpAutoWarmupEnabled(v bool) *GetAccountOutput {
  6804  	s.DedicatedIpAutoWarmupEnabled = &v
  6805  	return s
  6806  }
  6807  
  6808  // SetEnforcementStatus sets the EnforcementStatus field's value.
  6809  func (s *GetAccountOutput) SetEnforcementStatus(v string) *GetAccountOutput {
  6810  	s.EnforcementStatus = &v
  6811  	return s
  6812  }
  6813  
  6814  // SetProductionAccessEnabled sets the ProductionAccessEnabled field's value.
  6815  func (s *GetAccountOutput) SetProductionAccessEnabled(v bool) *GetAccountOutput {
  6816  	s.ProductionAccessEnabled = &v
  6817  	return s
  6818  }
  6819  
  6820  // SetSendQuota sets the SendQuota field's value.
  6821  func (s *GetAccountOutput) SetSendQuota(v *SendQuota) *GetAccountOutput {
  6822  	s.SendQuota = v
  6823  	return s
  6824  }
  6825  
  6826  // SetSendingEnabled sets the SendingEnabled field's value.
  6827  func (s *GetAccountOutput) SetSendingEnabled(v bool) *GetAccountOutput {
  6828  	s.SendingEnabled = &v
  6829  	return s
  6830  }
  6831  
  6832  // A request to retrieve a list of the blacklists that your dedicated IP addresses
  6833  // appear on.
  6834  type GetBlacklistReportsInput struct {
  6835  	_ struct{} `type:"structure" nopayload:"true"`
  6836  
  6837  	// A list of IP addresses that you want to retrieve blacklist information about.
  6838  	// You can only specify the dedicated IP addresses that you use to send email
  6839  	// using Amazon Pinpoint or Amazon SES.
  6840  	//
  6841  	// BlacklistItemNames is a required field
  6842  	BlacklistItemNames []*string `location:"querystring" locationName:"BlacklistItemNames" type:"list" required:"true"`
  6843  }
  6844  
  6845  // String returns the string representation.
  6846  //
  6847  // API parameter values that are decorated as "sensitive" in the API will not
  6848  // be included in the string output. The member name will be present, but the
  6849  // value will be replaced with "sensitive".
  6850  func (s GetBlacklistReportsInput) String() string {
  6851  	return awsutil.Prettify(s)
  6852  }
  6853  
  6854  // GoString returns the string representation.
  6855  //
  6856  // API parameter values that are decorated as "sensitive" in the API will not
  6857  // be included in the string output. The member name will be present, but the
  6858  // value will be replaced with "sensitive".
  6859  func (s GetBlacklistReportsInput) GoString() string {
  6860  	return s.String()
  6861  }
  6862  
  6863  // Validate inspects the fields of the type to determine if they are valid.
  6864  func (s *GetBlacklistReportsInput) Validate() error {
  6865  	invalidParams := request.ErrInvalidParams{Context: "GetBlacklistReportsInput"}
  6866  	if s.BlacklistItemNames == nil {
  6867  		invalidParams.Add(request.NewErrParamRequired("BlacklistItemNames"))
  6868  	}
  6869  
  6870  	if invalidParams.Len() > 0 {
  6871  		return invalidParams
  6872  	}
  6873  	return nil
  6874  }
  6875  
  6876  // SetBlacklistItemNames sets the BlacklistItemNames field's value.
  6877  func (s *GetBlacklistReportsInput) SetBlacklistItemNames(v []*string) *GetBlacklistReportsInput {
  6878  	s.BlacklistItemNames = v
  6879  	return s
  6880  }
  6881  
  6882  // An object that contains information about blacklist events.
  6883  type GetBlacklistReportsOutput struct {
  6884  	_ struct{} `type:"structure"`
  6885  
  6886  	// An object that contains information about a blacklist that one of your dedicated
  6887  	// IP addresses appears on.
  6888  	//
  6889  	// BlacklistReport is a required field
  6890  	BlacklistReport map[string][]*BlacklistEntry `type:"map" required:"true"`
  6891  }
  6892  
  6893  // String returns the string representation.
  6894  //
  6895  // API parameter values that are decorated as "sensitive" in the API will not
  6896  // be included in the string output. The member name will be present, but the
  6897  // value will be replaced with "sensitive".
  6898  func (s GetBlacklistReportsOutput) String() string {
  6899  	return awsutil.Prettify(s)
  6900  }
  6901  
  6902  // GoString returns the string representation.
  6903  //
  6904  // API parameter values that are decorated as "sensitive" in the API will not
  6905  // be included in the string output. The member name will be present, but the
  6906  // value will be replaced with "sensitive".
  6907  func (s GetBlacklistReportsOutput) GoString() string {
  6908  	return s.String()
  6909  }
  6910  
  6911  // SetBlacklistReport sets the BlacklistReport field's value.
  6912  func (s *GetBlacklistReportsOutput) SetBlacklistReport(v map[string][]*BlacklistEntry) *GetBlacklistReportsOutput {
  6913  	s.BlacklistReport = v
  6914  	return s
  6915  }
  6916  
  6917  // A request to obtain information about the event destinations for a configuration
  6918  // set.
  6919  type GetConfigurationSetEventDestinationsInput struct {
  6920  	_ struct{} `type:"structure" nopayload:"true"`
  6921  
  6922  	// The name of the configuration set that contains the event destination.
  6923  	//
  6924  	// ConfigurationSetName is a required field
  6925  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  6926  }
  6927  
  6928  // String returns the string representation.
  6929  //
  6930  // API parameter values that are decorated as "sensitive" in the API will not
  6931  // be included in the string output. The member name will be present, but the
  6932  // value will be replaced with "sensitive".
  6933  func (s GetConfigurationSetEventDestinationsInput) String() string {
  6934  	return awsutil.Prettify(s)
  6935  }
  6936  
  6937  // GoString returns the string representation.
  6938  //
  6939  // API parameter values that are decorated as "sensitive" in the API will not
  6940  // be included in the string output. The member name will be present, but the
  6941  // value will be replaced with "sensitive".
  6942  func (s GetConfigurationSetEventDestinationsInput) GoString() string {
  6943  	return s.String()
  6944  }
  6945  
  6946  // Validate inspects the fields of the type to determine if they are valid.
  6947  func (s *GetConfigurationSetEventDestinationsInput) Validate() error {
  6948  	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationSetEventDestinationsInput"}
  6949  	if s.ConfigurationSetName == nil {
  6950  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  6951  	}
  6952  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  6953  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  6954  	}
  6955  
  6956  	if invalidParams.Len() > 0 {
  6957  		return invalidParams
  6958  	}
  6959  	return nil
  6960  }
  6961  
  6962  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  6963  func (s *GetConfigurationSetEventDestinationsInput) SetConfigurationSetName(v string) *GetConfigurationSetEventDestinationsInput {
  6964  	s.ConfigurationSetName = &v
  6965  	return s
  6966  }
  6967  
  6968  // Information about an event destination for a configuration set.
  6969  type GetConfigurationSetEventDestinationsOutput struct {
  6970  	_ struct{} `type:"structure"`
  6971  
  6972  	// An array that includes all of the events destinations that have been configured
  6973  	// for the configuration set.
  6974  	EventDestinations []*EventDestination `type:"list"`
  6975  }
  6976  
  6977  // String returns the string representation.
  6978  //
  6979  // API parameter values that are decorated as "sensitive" in the API will not
  6980  // be included in the string output. The member name will be present, but the
  6981  // value will be replaced with "sensitive".
  6982  func (s GetConfigurationSetEventDestinationsOutput) String() string {
  6983  	return awsutil.Prettify(s)
  6984  }
  6985  
  6986  // GoString returns the string representation.
  6987  //
  6988  // API parameter values that are decorated as "sensitive" in the API will not
  6989  // be included in the string output. The member name will be present, but the
  6990  // value will be replaced with "sensitive".
  6991  func (s GetConfigurationSetEventDestinationsOutput) GoString() string {
  6992  	return s.String()
  6993  }
  6994  
  6995  // SetEventDestinations sets the EventDestinations field's value.
  6996  func (s *GetConfigurationSetEventDestinationsOutput) SetEventDestinations(v []*EventDestination) *GetConfigurationSetEventDestinationsOutput {
  6997  	s.EventDestinations = v
  6998  	return s
  6999  }
  7000  
  7001  // A request to obtain information about a configuration set.
  7002  type GetConfigurationSetInput struct {
  7003  	_ struct{} `type:"structure" nopayload:"true"`
  7004  
  7005  	// The name of the configuration set that you want to obtain more information
  7006  	// about.
  7007  	//
  7008  	// ConfigurationSetName is a required field
  7009  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  7010  }
  7011  
  7012  // String returns the string representation.
  7013  //
  7014  // API parameter values that are decorated as "sensitive" in the API will not
  7015  // be included in the string output. The member name will be present, but the
  7016  // value will be replaced with "sensitive".
  7017  func (s GetConfigurationSetInput) String() string {
  7018  	return awsutil.Prettify(s)
  7019  }
  7020  
  7021  // GoString returns the string representation.
  7022  //
  7023  // API parameter values that are decorated as "sensitive" in the API will not
  7024  // be included in the string output. The member name will be present, but the
  7025  // value will be replaced with "sensitive".
  7026  func (s GetConfigurationSetInput) GoString() string {
  7027  	return s.String()
  7028  }
  7029  
  7030  // Validate inspects the fields of the type to determine if they are valid.
  7031  func (s *GetConfigurationSetInput) Validate() error {
  7032  	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationSetInput"}
  7033  	if s.ConfigurationSetName == nil {
  7034  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  7035  	}
  7036  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  7037  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  7038  	}
  7039  
  7040  	if invalidParams.Len() > 0 {
  7041  		return invalidParams
  7042  	}
  7043  	return nil
  7044  }
  7045  
  7046  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  7047  func (s *GetConfigurationSetInput) SetConfigurationSetName(v string) *GetConfigurationSetInput {
  7048  	s.ConfigurationSetName = &v
  7049  	return s
  7050  }
  7051  
  7052  // Information about a configuration set.
  7053  type GetConfigurationSetOutput struct {
  7054  	_ struct{} `type:"structure"`
  7055  
  7056  	// The name of the configuration set.
  7057  	ConfigurationSetName *string `type:"string"`
  7058  
  7059  	// An object that defines the dedicated IP pool that is used to send emails
  7060  	// that you send using the configuration set.
  7061  	DeliveryOptions *DeliveryOptions `type:"structure"`
  7062  
  7063  	// An object that defines whether or not Amazon Pinpoint collects reputation
  7064  	// metrics for the emails that you send that use the configuration set.
  7065  	ReputationOptions *ReputationOptions `type:"structure"`
  7066  
  7067  	// An object that defines whether or not Amazon Pinpoint can send email that
  7068  	// you send using the configuration set.
  7069  	SendingOptions *SendingOptions `type:"structure"`
  7070  
  7071  	// An array of objects that define the tags (keys and values) that are associated
  7072  	// with the configuration set.
  7073  	Tags []*Tag `type:"list"`
  7074  
  7075  	// An object that defines the open and click tracking options for emails that
  7076  	// you send using the configuration set.
  7077  	TrackingOptions *TrackingOptions `type:"structure"`
  7078  }
  7079  
  7080  // String returns the string representation.
  7081  //
  7082  // API parameter values that are decorated as "sensitive" in the API will not
  7083  // be included in the string output. The member name will be present, but the
  7084  // value will be replaced with "sensitive".
  7085  func (s GetConfigurationSetOutput) String() string {
  7086  	return awsutil.Prettify(s)
  7087  }
  7088  
  7089  // GoString returns the string representation.
  7090  //
  7091  // API parameter values that are decorated as "sensitive" in the API will not
  7092  // be included in the string output. The member name will be present, but the
  7093  // value will be replaced with "sensitive".
  7094  func (s GetConfigurationSetOutput) GoString() string {
  7095  	return s.String()
  7096  }
  7097  
  7098  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  7099  func (s *GetConfigurationSetOutput) SetConfigurationSetName(v string) *GetConfigurationSetOutput {
  7100  	s.ConfigurationSetName = &v
  7101  	return s
  7102  }
  7103  
  7104  // SetDeliveryOptions sets the DeliveryOptions field's value.
  7105  func (s *GetConfigurationSetOutput) SetDeliveryOptions(v *DeliveryOptions) *GetConfigurationSetOutput {
  7106  	s.DeliveryOptions = v
  7107  	return s
  7108  }
  7109  
  7110  // SetReputationOptions sets the ReputationOptions field's value.
  7111  func (s *GetConfigurationSetOutput) SetReputationOptions(v *ReputationOptions) *GetConfigurationSetOutput {
  7112  	s.ReputationOptions = v
  7113  	return s
  7114  }
  7115  
  7116  // SetSendingOptions sets the SendingOptions field's value.
  7117  func (s *GetConfigurationSetOutput) SetSendingOptions(v *SendingOptions) *GetConfigurationSetOutput {
  7118  	s.SendingOptions = v
  7119  	return s
  7120  }
  7121  
  7122  // SetTags sets the Tags field's value.
  7123  func (s *GetConfigurationSetOutput) SetTags(v []*Tag) *GetConfigurationSetOutput {
  7124  	s.Tags = v
  7125  	return s
  7126  }
  7127  
  7128  // SetTrackingOptions sets the TrackingOptions field's value.
  7129  func (s *GetConfigurationSetOutput) SetTrackingOptions(v *TrackingOptions) *GetConfigurationSetOutput {
  7130  	s.TrackingOptions = v
  7131  	return s
  7132  }
  7133  
  7134  // A request to obtain more information about a dedicated IP address.
  7135  type GetDedicatedIpInput struct {
  7136  	_ struct{} `type:"structure" nopayload:"true"`
  7137  
  7138  	// The IP address that you want to obtain more information about. The value
  7139  	// you specify has to be a dedicated IP address that's assocaited with your
  7140  	// Amazon Pinpoint account.
  7141  	//
  7142  	// Ip is a required field
  7143  	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
  7144  }
  7145  
  7146  // String returns the string representation.
  7147  //
  7148  // API parameter values that are decorated as "sensitive" in the API will not
  7149  // be included in the string output. The member name will be present, but the
  7150  // value will be replaced with "sensitive".
  7151  func (s GetDedicatedIpInput) String() string {
  7152  	return awsutil.Prettify(s)
  7153  }
  7154  
  7155  // GoString returns the string representation.
  7156  //
  7157  // API parameter values that are decorated as "sensitive" in the API will not
  7158  // be included in the string output. The member name will be present, but the
  7159  // value will be replaced with "sensitive".
  7160  func (s GetDedicatedIpInput) GoString() string {
  7161  	return s.String()
  7162  }
  7163  
  7164  // Validate inspects the fields of the type to determine if they are valid.
  7165  func (s *GetDedicatedIpInput) Validate() error {
  7166  	invalidParams := request.ErrInvalidParams{Context: "GetDedicatedIpInput"}
  7167  	if s.Ip == nil {
  7168  		invalidParams.Add(request.NewErrParamRequired("Ip"))
  7169  	}
  7170  	if s.Ip != nil && len(*s.Ip) < 1 {
  7171  		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
  7172  	}
  7173  
  7174  	if invalidParams.Len() > 0 {
  7175  		return invalidParams
  7176  	}
  7177  	return nil
  7178  }
  7179  
  7180  // SetIp sets the Ip field's value.
  7181  func (s *GetDedicatedIpInput) SetIp(v string) *GetDedicatedIpInput {
  7182  	s.Ip = &v
  7183  	return s
  7184  }
  7185  
  7186  // Information about a dedicated IP address.
  7187  type GetDedicatedIpOutput struct {
  7188  	_ struct{} `type:"structure"`
  7189  
  7190  	// An object that contains information about a dedicated IP address.
  7191  	DedicatedIp *DedicatedIp `type:"structure"`
  7192  }
  7193  
  7194  // String returns the string representation.
  7195  //
  7196  // API parameter values that are decorated as "sensitive" in the API will not
  7197  // be included in the string output. The member name will be present, but the
  7198  // value will be replaced with "sensitive".
  7199  func (s GetDedicatedIpOutput) String() string {
  7200  	return awsutil.Prettify(s)
  7201  }
  7202  
  7203  // GoString returns the string representation.
  7204  //
  7205  // API parameter values that are decorated as "sensitive" in the API will not
  7206  // be included in the string output. The member name will be present, but the
  7207  // value will be replaced with "sensitive".
  7208  func (s GetDedicatedIpOutput) GoString() string {
  7209  	return s.String()
  7210  }
  7211  
  7212  // SetDedicatedIp sets the DedicatedIp field's value.
  7213  func (s *GetDedicatedIpOutput) SetDedicatedIp(v *DedicatedIp) *GetDedicatedIpOutput {
  7214  	s.DedicatedIp = v
  7215  	return s
  7216  }
  7217  
  7218  // A request to obtain more information about dedicated IP pools.
  7219  type GetDedicatedIpsInput struct {
  7220  	_ struct{} `type:"structure" nopayload:"true"`
  7221  
  7222  	// A token returned from a previous call to GetDedicatedIps to indicate the
  7223  	// position of the dedicated IP pool in the list of IP pools.
  7224  	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
  7225  
  7226  	// The number of results to show in a single call to GetDedicatedIpsRequest.
  7227  	// If the number of results is larger than the number you specified in this
  7228  	// parameter, then the response includes a NextToken element, which you can
  7229  	// use to obtain additional results.
  7230  	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
  7231  
  7232  	// The name of the IP pool that the dedicated IP address is associated with.
  7233  	PoolName *string `location:"querystring" locationName:"PoolName" type:"string"`
  7234  }
  7235  
  7236  // String returns the string representation.
  7237  //
  7238  // API parameter values that are decorated as "sensitive" in the API will not
  7239  // be included in the string output. The member name will be present, but the
  7240  // value will be replaced with "sensitive".
  7241  func (s GetDedicatedIpsInput) String() string {
  7242  	return awsutil.Prettify(s)
  7243  }
  7244  
  7245  // GoString returns the string representation.
  7246  //
  7247  // API parameter values that are decorated as "sensitive" in the API will not
  7248  // be included in the string output. The member name will be present, but the
  7249  // value will be replaced with "sensitive".
  7250  func (s GetDedicatedIpsInput) GoString() string {
  7251  	return s.String()
  7252  }
  7253  
  7254  // SetNextToken sets the NextToken field's value.
  7255  func (s *GetDedicatedIpsInput) SetNextToken(v string) *GetDedicatedIpsInput {
  7256  	s.NextToken = &v
  7257  	return s
  7258  }
  7259  
  7260  // SetPageSize sets the PageSize field's value.
  7261  func (s *GetDedicatedIpsInput) SetPageSize(v int64) *GetDedicatedIpsInput {
  7262  	s.PageSize = &v
  7263  	return s
  7264  }
  7265  
  7266  // SetPoolName sets the PoolName field's value.
  7267  func (s *GetDedicatedIpsInput) SetPoolName(v string) *GetDedicatedIpsInput {
  7268  	s.PoolName = &v
  7269  	return s
  7270  }
  7271  
  7272  // Information about the dedicated IP addresses that are associated with your
  7273  // Amazon Pinpoint account.
  7274  type GetDedicatedIpsOutput struct {
  7275  	_ struct{} `type:"structure"`
  7276  
  7277  	// A list of dedicated IP addresses that are reserved for use by your Amazon
  7278  	// Pinpoint account.
  7279  	DedicatedIps []*DedicatedIp `type:"list"`
  7280  
  7281  	// A token that indicates that there are additional dedicated IP addresses to
  7282  	// list. To view additional addresses, issue another request to GetDedicatedIps,
  7283  	// passing this token in the NextToken parameter.
  7284  	NextToken *string `type:"string"`
  7285  }
  7286  
  7287  // String returns the string representation.
  7288  //
  7289  // API parameter values that are decorated as "sensitive" in the API will not
  7290  // be included in the string output. The member name will be present, but the
  7291  // value will be replaced with "sensitive".
  7292  func (s GetDedicatedIpsOutput) String() string {
  7293  	return awsutil.Prettify(s)
  7294  }
  7295  
  7296  // GoString returns the string representation.
  7297  //
  7298  // API parameter values that are decorated as "sensitive" in the API will not
  7299  // be included in the string output. The member name will be present, but the
  7300  // value will be replaced with "sensitive".
  7301  func (s GetDedicatedIpsOutput) GoString() string {
  7302  	return s.String()
  7303  }
  7304  
  7305  // SetDedicatedIps sets the DedicatedIps field's value.
  7306  func (s *GetDedicatedIpsOutput) SetDedicatedIps(v []*DedicatedIp) *GetDedicatedIpsOutput {
  7307  	s.DedicatedIps = v
  7308  	return s
  7309  }
  7310  
  7311  // SetNextToken sets the NextToken field's value.
  7312  func (s *GetDedicatedIpsOutput) SetNextToken(v string) *GetDedicatedIpsOutput {
  7313  	s.NextToken = &v
  7314  	return s
  7315  }
  7316  
  7317  // Retrieve information about the status of the Deliverability dashboard for
  7318  // your Amazon Pinpoint account. When the Deliverability dashboard is enabled,
  7319  // you gain access to reputation, deliverability, and other metrics for the
  7320  // domains that you use to send email using Amazon Pinpoint. You also gain the
  7321  // ability to perform predictive inbox placement tests.
  7322  //
  7323  // When you use the Deliverability dashboard, you pay a monthly subscription
  7324  // charge, in addition to any other fees that you accrue by using Amazon Pinpoint.
  7325  // For more information about the features and cost of a Deliverability dashboard
  7326  // subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
  7327  type GetDeliverabilityDashboardOptionsInput struct {
  7328  	_ struct{} `type:"structure" nopayload:"true"`
  7329  }
  7330  
  7331  // String returns the string representation.
  7332  //
  7333  // API parameter values that are decorated as "sensitive" in the API will not
  7334  // be included in the string output. The member name will be present, but the
  7335  // value will be replaced with "sensitive".
  7336  func (s GetDeliverabilityDashboardOptionsInput) String() string {
  7337  	return awsutil.Prettify(s)
  7338  }
  7339  
  7340  // GoString returns the string representation.
  7341  //
  7342  // API parameter values that are decorated as "sensitive" in the API will not
  7343  // be included in the string output. The member name will be present, but the
  7344  // value will be replaced with "sensitive".
  7345  func (s GetDeliverabilityDashboardOptionsInput) GoString() string {
  7346  	return s.String()
  7347  }
  7348  
  7349  // An object that shows the status of the Deliverability dashboard for your
  7350  // Amazon Pinpoint account.
  7351  type GetDeliverabilityDashboardOptionsOutput struct {
  7352  	_ struct{} `type:"structure"`
  7353  
  7354  	// The current status of your Deliverability dashboard subscription. If this
  7355  	// value is PENDING_EXPIRATION, your subscription is scheduled to expire at
  7356  	// the end of the current calendar month.
  7357  	AccountStatus *string `type:"string" enum:"DeliverabilityDashboardAccountStatus"`
  7358  
  7359  	// An array of objects, one for each verified domain that you use to send email
  7360  	// and currently has an active Deliverability dashboard subscription that isn’t
  7361  	// scheduled to expire at the end of the current calendar month.
  7362  	ActiveSubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
  7363  
  7364  	// Specifies whether the Deliverability dashboard is enabled for your Amazon
  7365  	// Pinpoint account. If this value is true, the dashboard is enabled.
  7366  	//
  7367  	// DashboardEnabled is a required field
  7368  	DashboardEnabled *bool `type:"boolean" required:"true"`
  7369  
  7370  	// An array of objects, one for each verified domain that you use to send email
  7371  	// and currently has an active Deliverability dashboard subscription that's
  7372  	// scheduled to expire at the end of the current calendar month.
  7373  	PendingExpirationSubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
  7374  
  7375  	// The date, in Unix time format, when your current subscription to the Deliverability
  7376  	// dashboard is scheduled to expire, if your subscription is scheduled to expire
  7377  	// at the end of the current calendar month. This value is null if you have
  7378  	// an active subscription that isn’t due to expire at the end of the month.
  7379  	SubscriptionExpiryDate *time.Time `type:"timestamp"`
  7380  }
  7381  
  7382  // String returns the string representation.
  7383  //
  7384  // API parameter values that are decorated as "sensitive" in the API will not
  7385  // be included in the string output. The member name will be present, but the
  7386  // value will be replaced with "sensitive".
  7387  func (s GetDeliverabilityDashboardOptionsOutput) String() string {
  7388  	return awsutil.Prettify(s)
  7389  }
  7390  
  7391  // GoString returns the string representation.
  7392  //
  7393  // API parameter values that are decorated as "sensitive" in the API will not
  7394  // be included in the string output. The member name will be present, but the
  7395  // value will be replaced with "sensitive".
  7396  func (s GetDeliverabilityDashboardOptionsOutput) GoString() string {
  7397  	return s.String()
  7398  }
  7399  
  7400  // SetAccountStatus sets the AccountStatus field's value.
  7401  func (s *GetDeliverabilityDashboardOptionsOutput) SetAccountStatus(v string) *GetDeliverabilityDashboardOptionsOutput {
  7402  	s.AccountStatus = &v
  7403  	return s
  7404  }
  7405  
  7406  // SetActiveSubscribedDomains sets the ActiveSubscribedDomains field's value.
  7407  func (s *GetDeliverabilityDashboardOptionsOutput) SetActiveSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *GetDeliverabilityDashboardOptionsOutput {
  7408  	s.ActiveSubscribedDomains = v
  7409  	return s
  7410  }
  7411  
  7412  // SetDashboardEnabled sets the DashboardEnabled field's value.
  7413  func (s *GetDeliverabilityDashboardOptionsOutput) SetDashboardEnabled(v bool) *GetDeliverabilityDashboardOptionsOutput {
  7414  	s.DashboardEnabled = &v
  7415  	return s
  7416  }
  7417  
  7418  // SetPendingExpirationSubscribedDomains sets the PendingExpirationSubscribedDomains field's value.
  7419  func (s *GetDeliverabilityDashboardOptionsOutput) SetPendingExpirationSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *GetDeliverabilityDashboardOptionsOutput {
  7420  	s.PendingExpirationSubscribedDomains = v
  7421  	return s
  7422  }
  7423  
  7424  // SetSubscriptionExpiryDate sets the SubscriptionExpiryDate field's value.
  7425  func (s *GetDeliverabilityDashboardOptionsOutput) SetSubscriptionExpiryDate(v time.Time) *GetDeliverabilityDashboardOptionsOutput {
  7426  	s.SubscriptionExpiryDate = &v
  7427  	return s
  7428  }
  7429  
  7430  // A request to retrieve the results of a predictive inbox placement test.
  7431  type GetDeliverabilityTestReportInput struct {
  7432  	_ struct{} `type:"structure" nopayload:"true"`
  7433  
  7434  	// A unique string that identifies the predictive inbox placement test.
  7435  	//
  7436  	// ReportId is a required field
  7437  	ReportId *string `location:"uri" locationName:"ReportId" type:"string" required:"true"`
  7438  }
  7439  
  7440  // String returns the string representation.
  7441  //
  7442  // API parameter values that are decorated as "sensitive" in the API will not
  7443  // be included in the string output. The member name will be present, but the
  7444  // value will be replaced with "sensitive".
  7445  func (s GetDeliverabilityTestReportInput) String() string {
  7446  	return awsutil.Prettify(s)
  7447  }
  7448  
  7449  // GoString returns the string representation.
  7450  //
  7451  // API parameter values that are decorated as "sensitive" in the API will not
  7452  // be included in the string output. The member name will be present, but the
  7453  // value will be replaced with "sensitive".
  7454  func (s GetDeliverabilityTestReportInput) GoString() string {
  7455  	return s.String()
  7456  }
  7457  
  7458  // Validate inspects the fields of the type to determine if they are valid.
  7459  func (s *GetDeliverabilityTestReportInput) Validate() error {
  7460  	invalidParams := request.ErrInvalidParams{Context: "GetDeliverabilityTestReportInput"}
  7461  	if s.ReportId == nil {
  7462  		invalidParams.Add(request.NewErrParamRequired("ReportId"))
  7463  	}
  7464  	if s.ReportId != nil && len(*s.ReportId) < 1 {
  7465  		invalidParams.Add(request.NewErrParamMinLen("ReportId", 1))
  7466  	}
  7467  
  7468  	if invalidParams.Len() > 0 {
  7469  		return invalidParams
  7470  	}
  7471  	return nil
  7472  }
  7473  
  7474  // SetReportId sets the ReportId field's value.
  7475  func (s *GetDeliverabilityTestReportInput) SetReportId(v string) *GetDeliverabilityTestReportInput {
  7476  	s.ReportId = &v
  7477  	return s
  7478  }
  7479  
  7480  // The results of the predictive inbox placement test.
  7481  type GetDeliverabilityTestReportOutput struct {
  7482  	_ struct{} `type:"structure"`
  7483  
  7484  	// An object that contains the results of the predictive inbox placement test.
  7485  	//
  7486  	// DeliverabilityTestReport is a required field
  7487  	DeliverabilityTestReport *DeliverabilityTestReport `type:"structure" required:"true"`
  7488  
  7489  	// An object that describes how the test email was handled by several email
  7490  	// providers, including Gmail, Hotmail, Yahoo, AOL, and others.
  7491  	//
  7492  	// IspPlacements is a required field
  7493  	IspPlacements []*IspPlacement `type:"list" required:"true"`
  7494  
  7495  	// An object that contains the message that you sent when you performed this
  7496  	// predictive inbox placement test.
  7497  	Message *string `type:"string"`
  7498  
  7499  	// An object that specifies how many test messages that were sent during the
  7500  	// predictive inbox placement test were delivered to recipients' inboxes, how
  7501  	// many were sent to recipients' spam folders, and how many weren't delivered.
  7502  	//
  7503  	// OverallPlacement is a required field
  7504  	OverallPlacement *PlacementStatistics `type:"structure" required:"true"`
  7505  
  7506  	// An array of objects that define the tags (keys and values) that are associated
  7507  	// with the predictive inbox placement test.
  7508  	Tags []*Tag `type:"list"`
  7509  }
  7510  
  7511  // String returns the string representation.
  7512  //
  7513  // API parameter values that are decorated as "sensitive" in the API will not
  7514  // be included in the string output. The member name will be present, but the
  7515  // value will be replaced with "sensitive".
  7516  func (s GetDeliverabilityTestReportOutput) String() string {
  7517  	return awsutil.Prettify(s)
  7518  }
  7519  
  7520  // GoString returns the string representation.
  7521  //
  7522  // API parameter values that are decorated as "sensitive" in the API will not
  7523  // be included in the string output. The member name will be present, but the
  7524  // value will be replaced with "sensitive".
  7525  func (s GetDeliverabilityTestReportOutput) GoString() string {
  7526  	return s.String()
  7527  }
  7528  
  7529  // SetDeliverabilityTestReport sets the DeliverabilityTestReport field's value.
  7530  func (s *GetDeliverabilityTestReportOutput) SetDeliverabilityTestReport(v *DeliverabilityTestReport) *GetDeliverabilityTestReportOutput {
  7531  	s.DeliverabilityTestReport = v
  7532  	return s
  7533  }
  7534  
  7535  // SetIspPlacements sets the IspPlacements field's value.
  7536  func (s *GetDeliverabilityTestReportOutput) SetIspPlacements(v []*IspPlacement) *GetDeliverabilityTestReportOutput {
  7537  	s.IspPlacements = v
  7538  	return s
  7539  }
  7540  
  7541  // SetMessage sets the Message field's value.
  7542  func (s *GetDeliverabilityTestReportOutput) SetMessage(v string) *GetDeliverabilityTestReportOutput {
  7543  	s.Message = &v
  7544  	return s
  7545  }
  7546  
  7547  // SetOverallPlacement sets the OverallPlacement field's value.
  7548  func (s *GetDeliverabilityTestReportOutput) SetOverallPlacement(v *PlacementStatistics) *GetDeliverabilityTestReportOutput {
  7549  	s.OverallPlacement = v
  7550  	return s
  7551  }
  7552  
  7553  // SetTags sets the Tags field's value.
  7554  func (s *GetDeliverabilityTestReportOutput) SetTags(v []*Tag) *GetDeliverabilityTestReportOutput {
  7555  	s.Tags = v
  7556  	return s
  7557  }
  7558  
  7559  // Retrieve all the deliverability data for a specific campaign. This data is
  7560  // available for a campaign only if the campaign sent email by using a domain
  7561  // that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
  7562  // operation).
  7563  type GetDomainDeliverabilityCampaignInput struct {
  7564  	_ struct{} `type:"structure" nopayload:"true"`
  7565  
  7566  	// The unique identifier for the campaign. Amazon Pinpoint automatically generates
  7567  	// and assigns this identifier to a campaign. This value is not the same as
  7568  	// the campaign identifier that Amazon Pinpoint assigns to campaigns that you
  7569  	// create and manage by using the Amazon Pinpoint API or the Amazon Pinpoint
  7570  	// console.
  7571  	//
  7572  	// CampaignId is a required field
  7573  	CampaignId *string `location:"uri" locationName:"CampaignId" type:"string" required:"true"`
  7574  }
  7575  
  7576  // String returns the string representation.
  7577  //
  7578  // API parameter values that are decorated as "sensitive" in the API will not
  7579  // be included in the string output. The member name will be present, but the
  7580  // value will be replaced with "sensitive".
  7581  func (s GetDomainDeliverabilityCampaignInput) String() string {
  7582  	return awsutil.Prettify(s)
  7583  }
  7584  
  7585  // GoString returns the string representation.
  7586  //
  7587  // API parameter values that are decorated as "sensitive" in the API will not
  7588  // be included in the string output. The member name will be present, but the
  7589  // value will be replaced with "sensitive".
  7590  func (s GetDomainDeliverabilityCampaignInput) GoString() string {
  7591  	return s.String()
  7592  }
  7593  
  7594  // Validate inspects the fields of the type to determine if they are valid.
  7595  func (s *GetDomainDeliverabilityCampaignInput) Validate() error {
  7596  	invalidParams := request.ErrInvalidParams{Context: "GetDomainDeliverabilityCampaignInput"}
  7597  	if s.CampaignId == nil {
  7598  		invalidParams.Add(request.NewErrParamRequired("CampaignId"))
  7599  	}
  7600  	if s.CampaignId != nil && len(*s.CampaignId) < 1 {
  7601  		invalidParams.Add(request.NewErrParamMinLen("CampaignId", 1))
  7602  	}
  7603  
  7604  	if invalidParams.Len() > 0 {
  7605  		return invalidParams
  7606  	}
  7607  	return nil
  7608  }
  7609  
  7610  // SetCampaignId sets the CampaignId field's value.
  7611  func (s *GetDomainDeliverabilityCampaignInput) SetCampaignId(v string) *GetDomainDeliverabilityCampaignInput {
  7612  	s.CampaignId = &v
  7613  	return s
  7614  }
  7615  
  7616  // An object that contains all the deliverability data for a specific campaign.
  7617  // This data is available for a campaign only if the campaign sent email by
  7618  // using a domain that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
  7619  // operation).
  7620  type GetDomainDeliverabilityCampaignOutput struct {
  7621  	_ struct{} `type:"structure"`
  7622  
  7623  	// An object that contains the deliverability data for the campaign.
  7624  	//
  7625  	// DomainDeliverabilityCampaign is a required field
  7626  	DomainDeliverabilityCampaign *DomainDeliverabilityCampaign `type:"structure" required:"true"`
  7627  }
  7628  
  7629  // String returns the string representation.
  7630  //
  7631  // API parameter values that are decorated as "sensitive" in the API will not
  7632  // be included in the string output. The member name will be present, but the
  7633  // value will be replaced with "sensitive".
  7634  func (s GetDomainDeliverabilityCampaignOutput) String() string {
  7635  	return awsutil.Prettify(s)
  7636  }
  7637  
  7638  // GoString returns the string representation.
  7639  //
  7640  // API parameter values that are decorated as "sensitive" in the API will not
  7641  // be included in the string output. The member name will be present, but the
  7642  // value will be replaced with "sensitive".
  7643  func (s GetDomainDeliverabilityCampaignOutput) GoString() string {
  7644  	return s.String()
  7645  }
  7646  
  7647  // SetDomainDeliverabilityCampaign sets the DomainDeliverabilityCampaign field's value.
  7648  func (s *GetDomainDeliverabilityCampaignOutput) SetDomainDeliverabilityCampaign(v *DomainDeliverabilityCampaign) *GetDomainDeliverabilityCampaignOutput {
  7649  	s.DomainDeliverabilityCampaign = v
  7650  	return s
  7651  }
  7652  
  7653  // A request to obtain deliverability metrics for a domain.
  7654  type GetDomainStatisticsReportInput struct {
  7655  	_ struct{} `type:"structure" nopayload:"true"`
  7656  
  7657  	// The domain that you want to obtain deliverability metrics for.
  7658  	//
  7659  	// Domain is a required field
  7660  	Domain *string `location:"uri" locationName:"Domain" type:"string" required:"true"`
  7661  
  7662  	// The last day (in Unix time) that you want to obtain domain deliverability
  7663  	// metrics for. The EndDate that you specify has to be less than or equal to
  7664  	// 30 days after the StartDate.
  7665  	//
  7666  	// EndDate is a required field
  7667  	EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp" required:"true"`
  7668  
  7669  	// The first day (in Unix time) that you want to obtain domain deliverability
  7670  	// metrics for.
  7671  	//
  7672  	// StartDate is a required field
  7673  	StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp" required:"true"`
  7674  }
  7675  
  7676  // String returns the string representation.
  7677  //
  7678  // API parameter values that are decorated as "sensitive" in the API will not
  7679  // be included in the string output. The member name will be present, but the
  7680  // value will be replaced with "sensitive".
  7681  func (s GetDomainStatisticsReportInput) String() string {
  7682  	return awsutil.Prettify(s)
  7683  }
  7684  
  7685  // GoString returns the string representation.
  7686  //
  7687  // API parameter values that are decorated as "sensitive" in the API will not
  7688  // be included in the string output. The member name will be present, but the
  7689  // value will be replaced with "sensitive".
  7690  func (s GetDomainStatisticsReportInput) GoString() string {
  7691  	return s.String()
  7692  }
  7693  
  7694  // Validate inspects the fields of the type to determine if they are valid.
  7695  func (s *GetDomainStatisticsReportInput) Validate() error {
  7696  	invalidParams := request.ErrInvalidParams{Context: "GetDomainStatisticsReportInput"}
  7697  	if s.Domain == nil {
  7698  		invalidParams.Add(request.NewErrParamRequired("Domain"))
  7699  	}
  7700  	if s.Domain != nil && len(*s.Domain) < 1 {
  7701  		invalidParams.Add(request.NewErrParamMinLen("Domain", 1))
  7702  	}
  7703  	if s.EndDate == nil {
  7704  		invalidParams.Add(request.NewErrParamRequired("EndDate"))
  7705  	}
  7706  	if s.StartDate == nil {
  7707  		invalidParams.Add(request.NewErrParamRequired("StartDate"))
  7708  	}
  7709  
  7710  	if invalidParams.Len() > 0 {
  7711  		return invalidParams
  7712  	}
  7713  	return nil
  7714  }
  7715  
  7716  // SetDomain sets the Domain field's value.
  7717  func (s *GetDomainStatisticsReportInput) SetDomain(v string) *GetDomainStatisticsReportInput {
  7718  	s.Domain = &v
  7719  	return s
  7720  }
  7721  
  7722  // SetEndDate sets the EndDate field's value.
  7723  func (s *GetDomainStatisticsReportInput) SetEndDate(v time.Time) *GetDomainStatisticsReportInput {
  7724  	s.EndDate = &v
  7725  	return s
  7726  }
  7727  
  7728  // SetStartDate sets the StartDate field's value.
  7729  func (s *GetDomainStatisticsReportInput) SetStartDate(v time.Time) *GetDomainStatisticsReportInput {
  7730  	s.StartDate = &v
  7731  	return s
  7732  }
  7733  
  7734  // An object that includes statistics that are related to the domain that you
  7735  // specified.
  7736  type GetDomainStatisticsReportOutput struct {
  7737  	_ struct{} `type:"structure"`
  7738  
  7739  	// An object that contains deliverability metrics for the domain that you specified.
  7740  	// This object contains data for each day, starting on the StartDate and ending
  7741  	// on the EndDate.
  7742  	//
  7743  	// DailyVolumes is a required field
  7744  	DailyVolumes []*DailyVolume `type:"list" required:"true"`
  7745  
  7746  	// An object that contains deliverability metrics for the domain that you specified.
  7747  	// The data in this object is a summary of all of the data that was collected
  7748  	// from the StartDate to the EndDate.
  7749  	//
  7750  	// OverallVolume is a required field
  7751  	OverallVolume *OverallVolume `type:"structure" required:"true"`
  7752  }
  7753  
  7754  // String returns the string representation.
  7755  //
  7756  // API parameter values that are decorated as "sensitive" in the API will not
  7757  // be included in the string output. The member name will be present, but the
  7758  // value will be replaced with "sensitive".
  7759  func (s GetDomainStatisticsReportOutput) String() string {
  7760  	return awsutil.Prettify(s)
  7761  }
  7762  
  7763  // GoString returns the string representation.
  7764  //
  7765  // API parameter values that are decorated as "sensitive" in the API will not
  7766  // be included in the string output. The member name will be present, but the
  7767  // value will be replaced with "sensitive".
  7768  func (s GetDomainStatisticsReportOutput) GoString() string {
  7769  	return s.String()
  7770  }
  7771  
  7772  // SetDailyVolumes sets the DailyVolumes field's value.
  7773  func (s *GetDomainStatisticsReportOutput) SetDailyVolumes(v []*DailyVolume) *GetDomainStatisticsReportOutput {
  7774  	s.DailyVolumes = v
  7775  	return s
  7776  }
  7777  
  7778  // SetOverallVolume sets the OverallVolume field's value.
  7779  func (s *GetDomainStatisticsReportOutput) SetOverallVolume(v *OverallVolume) *GetDomainStatisticsReportOutput {
  7780  	s.OverallVolume = v
  7781  	return s
  7782  }
  7783  
  7784  // A request to return details about an email identity.
  7785  type GetEmailIdentityInput struct {
  7786  	_ struct{} `type:"structure" nopayload:"true"`
  7787  
  7788  	// The email identity that you want to retrieve details for.
  7789  	//
  7790  	// EmailIdentity is a required field
  7791  	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
  7792  }
  7793  
  7794  // String returns the string representation.
  7795  //
  7796  // API parameter values that are decorated as "sensitive" in the API will not
  7797  // be included in the string output. The member name will be present, but the
  7798  // value will be replaced with "sensitive".
  7799  func (s GetEmailIdentityInput) String() string {
  7800  	return awsutil.Prettify(s)
  7801  }
  7802  
  7803  // GoString returns the string representation.
  7804  //
  7805  // API parameter values that are decorated as "sensitive" in the API will not
  7806  // be included in the string output. The member name will be present, but the
  7807  // value will be replaced with "sensitive".
  7808  func (s GetEmailIdentityInput) GoString() string {
  7809  	return s.String()
  7810  }
  7811  
  7812  // Validate inspects the fields of the type to determine if they are valid.
  7813  func (s *GetEmailIdentityInput) Validate() error {
  7814  	invalidParams := request.ErrInvalidParams{Context: "GetEmailIdentityInput"}
  7815  	if s.EmailIdentity == nil {
  7816  		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
  7817  	}
  7818  	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
  7819  		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
  7820  	}
  7821  
  7822  	if invalidParams.Len() > 0 {
  7823  		return invalidParams
  7824  	}
  7825  	return nil
  7826  }
  7827  
  7828  // SetEmailIdentity sets the EmailIdentity field's value.
  7829  func (s *GetEmailIdentityInput) SetEmailIdentity(v string) *GetEmailIdentityInput {
  7830  	s.EmailIdentity = &v
  7831  	return s
  7832  }
  7833  
  7834  // Details about an email identity.
  7835  type GetEmailIdentityOutput struct {
  7836  	_ struct{} `type:"structure"`
  7837  
  7838  	// An object that contains information about the DKIM attributes for the identity.
  7839  	// This object includes the tokens that you use to create the CNAME records
  7840  	// that are required to complete the DKIM verification process.
  7841  	DkimAttributes *DkimAttributes `type:"structure"`
  7842  
  7843  	// The feedback forwarding configuration for the identity.
  7844  	//
  7845  	// If the value is true, Amazon Pinpoint sends you email notifications when
  7846  	// bounce or complaint events occur. Amazon Pinpoint sends this notification
  7847  	// to the address that you specified in the Return-Path header of the original
  7848  	// email.
  7849  	//
  7850  	// When you set this value to false, Amazon Pinpoint sends notifications through
  7851  	// other mechanisms, such as by notifying an Amazon SNS topic or another event
  7852  	// destination. You're required to have a method of tracking bounces and complaints.
  7853  	// If you haven't set up another mechanism for receiving bounce or complaint
  7854  	// notifications, Amazon Pinpoint sends an email notification when these events
  7855  	// occur (even if this setting is disabled).
  7856  	FeedbackForwardingStatus *bool `type:"boolean"`
  7857  
  7858  	// The email identity type.
  7859  	IdentityType *string `type:"string" enum:"IdentityType"`
  7860  
  7861  	// An object that contains information about the Mail-From attributes for the
  7862  	// email identity.
  7863  	MailFromAttributes *MailFromAttributes `type:"structure"`
  7864  
  7865  	// An array of objects that define the tags (keys and values) that are associated
  7866  	// with the email identity.
  7867  	Tags []*Tag `type:"list"`
  7868  
  7869  	// Specifies whether or not the identity is verified. In Amazon Pinpoint, you
  7870  	// can only send email from verified email addresses or domains. For more information
  7871  	// about verifying identities, see the Amazon Pinpoint User Guide (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html).
  7872  	VerifiedForSendingStatus *bool `type:"boolean"`
  7873  }
  7874  
  7875  // String returns the string representation.
  7876  //
  7877  // API parameter values that are decorated as "sensitive" in the API will not
  7878  // be included in the string output. The member name will be present, but the
  7879  // value will be replaced with "sensitive".
  7880  func (s GetEmailIdentityOutput) String() string {
  7881  	return awsutil.Prettify(s)
  7882  }
  7883  
  7884  // GoString returns the string representation.
  7885  //
  7886  // API parameter values that are decorated as "sensitive" in the API will not
  7887  // be included in the string output. The member name will be present, but the
  7888  // value will be replaced with "sensitive".
  7889  func (s GetEmailIdentityOutput) GoString() string {
  7890  	return s.String()
  7891  }
  7892  
  7893  // SetDkimAttributes sets the DkimAttributes field's value.
  7894  func (s *GetEmailIdentityOutput) SetDkimAttributes(v *DkimAttributes) *GetEmailIdentityOutput {
  7895  	s.DkimAttributes = v
  7896  	return s
  7897  }
  7898  
  7899  // SetFeedbackForwardingStatus sets the FeedbackForwardingStatus field's value.
  7900  func (s *GetEmailIdentityOutput) SetFeedbackForwardingStatus(v bool) *GetEmailIdentityOutput {
  7901  	s.FeedbackForwardingStatus = &v
  7902  	return s
  7903  }
  7904  
  7905  // SetIdentityType sets the IdentityType field's value.
  7906  func (s *GetEmailIdentityOutput) SetIdentityType(v string) *GetEmailIdentityOutput {
  7907  	s.IdentityType = &v
  7908  	return s
  7909  }
  7910  
  7911  // SetMailFromAttributes sets the MailFromAttributes field's value.
  7912  func (s *GetEmailIdentityOutput) SetMailFromAttributes(v *MailFromAttributes) *GetEmailIdentityOutput {
  7913  	s.MailFromAttributes = v
  7914  	return s
  7915  }
  7916  
  7917  // SetTags sets the Tags field's value.
  7918  func (s *GetEmailIdentityOutput) SetTags(v []*Tag) *GetEmailIdentityOutput {
  7919  	s.Tags = v
  7920  	return s
  7921  }
  7922  
  7923  // SetVerifiedForSendingStatus sets the VerifiedForSendingStatus field's value.
  7924  func (s *GetEmailIdentityOutput) SetVerifiedForSendingStatus(v bool) *GetEmailIdentityOutput {
  7925  	s.VerifiedForSendingStatus = &v
  7926  	return s
  7927  }
  7928  
  7929  // Information about an email identity.
  7930  type IdentityInfo struct {
  7931  	_ struct{} `type:"structure"`
  7932  
  7933  	// The address or domain of the identity.
  7934  	IdentityName *string `type:"string"`
  7935  
  7936  	// The email identity type. The identity type can be one of the following:
  7937  	//
  7938  	//    * EMAIL_ADDRESS – The identity is an email address.
  7939  	//
  7940  	//    * DOMAIN – The identity is a domain.
  7941  	//
  7942  	//    * MANAGED_DOMAIN – The identity is a domain that is managed by AWS.
  7943  	IdentityType *string `type:"string" enum:"IdentityType"`
  7944  
  7945  	// Indicates whether or not you can send email from the identity.
  7946  	//
  7947  	// In Amazon Pinpoint, an identity is an email address or domain that you send
  7948  	// email from. Before you can send email from an identity, you have to demostrate
  7949  	// that you own the identity, and that you authorize Amazon Pinpoint to send
  7950  	// email from that identity.
  7951  	SendingEnabled *bool `type:"boolean"`
  7952  }
  7953  
  7954  // String returns the string representation.
  7955  //
  7956  // API parameter values that are decorated as "sensitive" in the API will not
  7957  // be included in the string output. The member name will be present, but the
  7958  // value will be replaced with "sensitive".
  7959  func (s IdentityInfo) String() string {
  7960  	return awsutil.Prettify(s)
  7961  }
  7962  
  7963  // GoString returns the string representation.
  7964  //
  7965  // API parameter values that are decorated as "sensitive" in the API will not
  7966  // be included in the string output. The member name will be present, but the
  7967  // value will be replaced with "sensitive".
  7968  func (s IdentityInfo) GoString() string {
  7969  	return s.String()
  7970  }
  7971  
  7972  // SetIdentityName sets the IdentityName field's value.
  7973  func (s *IdentityInfo) SetIdentityName(v string) *IdentityInfo {
  7974  	s.IdentityName = &v
  7975  	return s
  7976  }
  7977  
  7978  // SetIdentityType sets the IdentityType field's value.
  7979  func (s *IdentityInfo) SetIdentityType(v string) *IdentityInfo {
  7980  	s.IdentityType = &v
  7981  	return s
  7982  }
  7983  
  7984  // SetSendingEnabled sets the SendingEnabled field's value.
  7985  func (s *IdentityInfo) SetSendingEnabled(v bool) *IdentityInfo {
  7986  	s.SendingEnabled = &v
  7987  	return s
  7988  }
  7989  
  7990  // An object that contains information about the inbox placement data settings
  7991  // for a verified domain that’s associated with your AWS account. This data
  7992  // is available only if you enabled the Deliverability dashboard for the domain
  7993  // (PutDeliverabilityDashboardOption operation).
  7994  type InboxPlacementTrackingOption struct {
  7995  	_ struct{} `type:"structure"`
  7996  
  7997  	// Specifies whether inbox placement data is being tracked for the domain.
  7998  	Global *bool `type:"boolean"`
  7999  
  8000  	// An array of strings, one for each major email provider that the inbox placement
  8001  	// data applies to.
  8002  	TrackedIsps []*string `type:"list"`
  8003  }
  8004  
  8005  // String returns the string representation.
  8006  //
  8007  // API parameter values that are decorated as "sensitive" in the API will not
  8008  // be included in the string output. The member name will be present, but the
  8009  // value will be replaced with "sensitive".
  8010  func (s InboxPlacementTrackingOption) String() string {
  8011  	return awsutil.Prettify(s)
  8012  }
  8013  
  8014  // GoString returns the string representation.
  8015  //
  8016  // API parameter values that are decorated as "sensitive" in the API will not
  8017  // be included in the string output. The member name will be present, but the
  8018  // value will be replaced with "sensitive".
  8019  func (s InboxPlacementTrackingOption) GoString() string {
  8020  	return s.String()
  8021  }
  8022  
  8023  // SetGlobal sets the Global field's value.
  8024  func (s *InboxPlacementTrackingOption) SetGlobal(v bool) *InboxPlacementTrackingOption {
  8025  	s.Global = &v
  8026  	return s
  8027  }
  8028  
  8029  // SetTrackedIsps sets the TrackedIsps field's value.
  8030  func (s *InboxPlacementTrackingOption) SetTrackedIsps(v []*string) *InboxPlacementTrackingOption {
  8031  	s.TrackedIsps = v
  8032  	return s
  8033  }
  8034  
  8035  // An object that describes how email sent during the predictive inbox placement
  8036  // test was handled by a certain email provider.
  8037  type IspPlacement struct {
  8038  	_ struct{} `type:"structure"`
  8039  
  8040  	// The name of the email provider that the inbox placement data applies to.
  8041  	IspName *string `type:"string"`
  8042  
  8043  	// An object that contains inbox placement metrics for a specific email provider.
  8044  	PlacementStatistics *PlacementStatistics `type:"structure"`
  8045  }
  8046  
  8047  // String returns the string representation.
  8048  //
  8049  // API parameter values that are decorated as "sensitive" in the API will not
  8050  // be included in the string output. The member name will be present, but the
  8051  // value will be replaced with "sensitive".
  8052  func (s IspPlacement) String() string {
  8053  	return awsutil.Prettify(s)
  8054  }
  8055  
  8056  // GoString returns the string representation.
  8057  //
  8058  // API parameter values that are decorated as "sensitive" in the API will not
  8059  // be included in the string output. The member name will be present, but the
  8060  // value will be replaced with "sensitive".
  8061  func (s IspPlacement) GoString() string {
  8062  	return s.String()
  8063  }
  8064  
  8065  // SetIspName sets the IspName field's value.
  8066  func (s *IspPlacement) SetIspName(v string) *IspPlacement {
  8067  	s.IspName = &v
  8068  	return s
  8069  }
  8070  
  8071  // SetPlacementStatistics sets the PlacementStatistics field's value.
  8072  func (s *IspPlacement) SetPlacementStatistics(v *PlacementStatistics) *IspPlacement {
  8073  	s.PlacementStatistics = v
  8074  	return s
  8075  }
  8076  
  8077  // An object that defines an Amazon Kinesis Data Firehose destination for email
  8078  // events. You can use Amazon Kinesis Data Firehose to stream data to other
  8079  // services, such as Amazon S3 and Amazon Redshift.
  8080  type KinesisFirehoseDestination struct {
  8081  	_ struct{} `type:"structure"`
  8082  
  8083  	// The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream
  8084  	// that Amazon Pinpoint sends email events to.
  8085  	//
  8086  	// DeliveryStreamArn is a required field
  8087  	DeliveryStreamArn *string `type:"string" required:"true"`
  8088  
  8089  	// The Amazon Resource Name (ARN) of the IAM role that Amazon Pinpoint uses
  8090  	// when sending email events to the Amazon Kinesis Data Firehose stream.
  8091  	//
  8092  	// IamRoleArn is a required field
  8093  	IamRoleArn *string `type:"string" required:"true"`
  8094  }
  8095  
  8096  // String returns the string representation.
  8097  //
  8098  // API parameter values that are decorated as "sensitive" in the API will not
  8099  // be included in the string output. The member name will be present, but the
  8100  // value will be replaced with "sensitive".
  8101  func (s KinesisFirehoseDestination) String() string {
  8102  	return awsutil.Prettify(s)
  8103  }
  8104  
  8105  // GoString returns the string representation.
  8106  //
  8107  // API parameter values that are decorated as "sensitive" in the API will not
  8108  // be included in the string output. The member name will be present, but the
  8109  // value will be replaced with "sensitive".
  8110  func (s KinesisFirehoseDestination) GoString() string {
  8111  	return s.String()
  8112  }
  8113  
  8114  // Validate inspects the fields of the type to determine if they are valid.
  8115  func (s *KinesisFirehoseDestination) Validate() error {
  8116  	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseDestination"}
  8117  	if s.DeliveryStreamArn == nil {
  8118  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamArn"))
  8119  	}
  8120  	if s.IamRoleArn == nil {
  8121  		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
  8122  	}
  8123  
  8124  	if invalidParams.Len() > 0 {
  8125  		return invalidParams
  8126  	}
  8127  	return nil
  8128  }
  8129  
  8130  // SetDeliveryStreamArn sets the DeliveryStreamArn field's value.
  8131  func (s *KinesisFirehoseDestination) SetDeliveryStreamArn(v string) *KinesisFirehoseDestination {
  8132  	s.DeliveryStreamArn = &v
  8133  	return s
  8134  }
  8135  
  8136  // SetIamRoleArn sets the IamRoleArn field's value.
  8137  func (s *KinesisFirehoseDestination) SetIamRoleArn(v string) *KinesisFirehoseDestination {
  8138  	s.IamRoleArn = &v
  8139  	return s
  8140  }
  8141  
  8142  // There are too many instances of the specified resource type.
  8143  type LimitExceededException struct {
  8144  	_            struct{}                  `type:"structure"`
  8145  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8146  
  8147  	Message_ *string `locationName:"message" type:"string"`
  8148  }
  8149  
  8150  // String returns the string representation.
  8151  //
  8152  // API parameter values that are decorated as "sensitive" in the API will not
  8153  // be included in the string output. The member name will be present, but the
  8154  // value will be replaced with "sensitive".
  8155  func (s LimitExceededException) String() string {
  8156  	return awsutil.Prettify(s)
  8157  }
  8158  
  8159  // GoString returns the string representation.
  8160  //
  8161  // API parameter values that are decorated as "sensitive" in the API will not
  8162  // be included in the string output. The member name will be present, but the
  8163  // value will be replaced with "sensitive".
  8164  func (s LimitExceededException) GoString() string {
  8165  	return s.String()
  8166  }
  8167  
  8168  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  8169  	return &LimitExceededException{
  8170  		RespMetadata: v,
  8171  	}
  8172  }
  8173  
  8174  // Code returns the exception type name.
  8175  func (s *LimitExceededException) Code() string {
  8176  	return "LimitExceededException"
  8177  }
  8178  
  8179  // Message returns the exception's message.
  8180  func (s *LimitExceededException) Message() string {
  8181  	if s.Message_ != nil {
  8182  		return *s.Message_
  8183  	}
  8184  	return ""
  8185  }
  8186  
  8187  // OrigErr always returns nil, satisfies awserr.Error interface.
  8188  func (s *LimitExceededException) OrigErr() error {
  8189  	return nil
  8190  }
  8191  
  8192  func (s *LimitExceededException) Error() string {
  8193  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8194  }
  8195  
  8196  // Status code returns the HTTP status code for the request's response error.
  8197  func (s *LimitExceededException) StatusCode() int {
  8198  	return s.RespMetadata.StatusCode
  8199  }
  8200  
  8201  // RequestID returns the service's response RequestID for request.
  8202  func (s *LimitExceededException) RequestID() string {
  8203  	return s.RespMetadata.RequestID
  8204  }
  8205  
  8206  // A request to obtain a list of configuration sets for your Amazon Pinpoint
  8207  // account in the current AWS Region.
  8208  type ListConfigurationSetsInput struct {
  8209  	_ struct{} `type:"structure" nopayload:"true"`
  8210  
  8211  	// A token returned from a previous call to ListConfigurationSets to indicate
  8212  	// the position in the list of configuration sets.
  8213  	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
  8214  
  8215  	// The number of results to show in a single call to ListConfigurationSets.
  8216  	// If the number of results is larger than the number you specified in this
  8217  	// parameter, then the response includes a NextToken element, which you can
  8218  	// use to obtain additional results.
  8219  	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
  8220  }
  8221  
  8222  // String returns the string representation.
  8223  //
  8224  // API parameter values that are decorated as "sensitive" in the API will not
  8225  // be included in the string output. The member name will be present, but the
  8226  // value will be replaced with "sensitive".
  8227  func (s ListConfigurationSetsInput) String() string {
  8228  	return awsutil.Prettify(s)
  8229  }
  8230  
  8231  // GoString returns the string representation.
  8232  //
  8233  // API parameter values that are decorated as "sensitive" in the API will not
  8234  // be included in the string output. The member name will be present, but the
  8235  // value will be replaced with "sensitive".
  8236  func (s ListConfigurationSetsInput) GoString() string {
  8237  	return s.String()
  8238  }
  8239  
  8240  // SetNextToken sets the NextToken field's value.
  8241  func (s *ListConfigurationSetsInput) SetNextToken(v string) *ListConfigurationSetsInput {
  8242  	s.NextToken = &v
  8243  	return s
  8244  }
  8245  
  8246  // SetPageSize sets the PageSize field's value.
  8247  func (s *ListConfigurationSetsInput) SetPageSize(v int64) *ListConfigurationSetsInput {
  8248  	s.PageSize = &v
  8249  	return s
  8250  }
  8251  
  8252  // A list of configuration sets in your Amazon Pinpoint account in the current
  8253  // AWS Region.
  8254  type ListConfigurationSetsOutput struct {
  8255  	_ struct{} `type:"structure"`
  8256  
  8257  	// An array that contains all of the configuration sets in your Amazon Pinpoint
  8258  	// account in the current AWS Region.
  8259  	ConfigurationSets []*string `type:"list"`
  8260  
  8261  	// A token that indicates that there are additional configuration sets to list.
  8262  	// To view additional configuration sets, issue another request to ListConfigurationSets,
  8263  	// and pass this token in the NextToken parameter.
  8264  	NextToken *string `type:"string"`
  8265  }
  8266  
  8267  // String returns the string representation.
  8268  //
  8269  // API parameter values that are decorated as "sensitive" in the API will not
  8270  // be included in the string output. The member name will be present, but the
  8271  // value will be replaced with "sensitive".
  8272  func (s ListConfigurationSetsOutput) String() string {
  8273  	return awsutil.Prettify(s)
  8274  }
  8275  
  8276  // GoString returns the string representation.
  8277  //
  8278  // API parameter values that are decorated as "sensitive" in the API will not
  8279  // be included in the string output. The member name will be present, but the
  8280  // value will be replaced with "sensitive".
  8281  func (s ListConfigurationSetsOutput) GoString() string {
  8282  	return s.String()
  8283  }
  8284  
  8285  // SetConfigurationSets sets the ConfigurationSets field's value.
  8286  func (s *ListConfigurationSetsOutput) SetConfigurationSets(v []*string) *ListConfigurationSetsOutput {
  8287  	s.ConfigurationSets = v
  8288  	return s
  8289  }
  8290  
  8291  // SetNextToken sets the NextToken field's value.
  8292  func (s *ListConfigurationSetsOutput) SetNextToken(v string) *ListConfigurationSetsOutput {
  8293  	s.NextToken = &v
  8294  	return s
  8295  }
  8296  
  8297  // A request to obtain a list of dedicated IP pools.
  8298  type ListDedicatedIpPoolsInput struct {
  8299  	_ struct{} `type:"structure" nopayload:"true"`
  8300  
  8301  	// A token returned from a previous call to ListDedicatedIpPools to indicate
  8302  	// the position in the list of dedicated IP pools.
  8303  	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
  8304  
  8305  	// The number of results to show in a single call to ListDedicatedIpPools. If
  8306  	// the number of results is larger than the number you specified in this parameter,
  8307  	// then the response includes a NextToken element, which you can use to obtain
  8308  	// additional results.
  8309  	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
  8310  }
  8311  
  8312  // String returns the string representation.
  8313  //
  8314  // API parameter values that are decorated as "sensitive" in the API will not
  8315  // be included in the string output. The member name will be present, but the
  8316  // value will be replaced with "sensitive".
  8317  func (s ListDedicatedIpPoolsInput) String() string {
  8318  	return awsutil.Prettify(s)
  8319  }
  8320  
  8321  // GoString returns the string representation.
  8322  //
  8323  // API parameter values that are decorated as "sensitive" in the API will not
  8324  // be included in the string output. The member name will be present, but the
  8325  // value will be replaced with "sensitive".
  8326  func (s ListDedicatedIpPoolsInput) GoString() string {
  8327  	return s.String()
  8328  }
  8329  
  8330  // SetNextToken sets the NextToken field's value.
  8331  func (s *ListDedicatedIpPoolsInput) SetNextToken(v string) *ListDedicatedIpPoolsInput {
  8332  	s.NextToken = &v
  8333  	return s
  8334  }
  8335  
  8336  // SetPageSize sets the PageSize field's value.
  8337  func (s *ListDedicatedIpPoolsInput) SetPageSize(v int64) *ListDedicatedIpPoolsInput {
  8338  	s.PageSize = &v
  8339  	return s
  8340  }
  8341  
  8342  // A list of dedicated IP pools.
  8343  type ListDedicatedIpPoolsOutput struct {
  8344  	_ struct{} `type:"structure"`
  8345  
  8346  	// A list of all of the dedicated IP pools that are associated with your Amazon
  8347  	// Pinpoint account.
  8348  	DedicatedIpPools []*string `type:"list"`
  8349  
  8350  	// A token that indicates that there are additional IP pools to list. To view
  8351  	// additional IP pools, issue another request to ListDedicatedIpPools, passing
  8352  	// this token in the NextToken parameter.
  8353  	NextToken *string `type:"string"`
  8354  }
  8355  
  8356  // String returns the string representation.
  8357  //
  8358  // API parameter values that are decorated as "sensitive" in the API will not
  8359  // be included in the string output. The member name will be present, but the
  8360  // value will be replaced with "sensitive".
  8361  func (s ListDedicatedIpPoolsOutput) String() string {
  8362  	return awsutil.Prettify(s)
  8363  }
  8364  
  8365  // GoString returns the string representation.
  8366  //
  8367  // API parameter values that are decorated as "sensitive" in the API will not
  8368  // be included in the string output. The member name will be present, but the
  8369  // value will be replaced with "sensitive".
  8370  func (s ListDedicatedIpPoolsOutput) GoString() string {
  8371  	return s.String()
  8372  }
  8373  
  8374  // SetDedicatedIpPools sets the DedicatedIpPools field's value.
  8375  func (s *ListDedicatedIpPoolsOutput) SetDedicatedIpPools(v []*string) *ListDedicatedIpPoolsOutput {
  8376  	s.DedicatedIpPools = v
  8377  	return s
  8378  }
  8379  
  8380  // SetNextToken sets the NextToken field's value.
  8381  func (s *ListDedicatedIpPoolsOutput) SetNextToken(v string) *ListDedicatedIpPoolsOutput {
  8382  	s.NextToken = &v
  8383  	return s
  8384  }
  8385  
  8386  // A request to list all of the predictive inbox placement tests that you've
  8387  // performed.
  8388  type ListDeliverabilityTestReportsInput struct {
  8389  	_ struct{} `type:"structure" nopayload:"true"`
  8390  
  8391  	// A token returned from a previous call to ListDeliverabilityTestReports to
  8392  	// indicate the position in the list of predictive inbox placement tests.
  8393  	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
  8394  
  8395  	// The number of results to show in a single call to ListDeliverabilityTestReports.
  8396  	// If the number of results is larger than the number you specified in this
  8397  	// parameter, then the response includes a NextToken element, which you can
  8398  	// use to obtain additional results.
  8399  	//
  8400  	// The value you specify has to be at least 0, and can be no more than 1000.
  8401  	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
  8402  }
  8403  
  8404  // String returns the string representation.
  8405  //
  8406  // API parameter values that are decorated as "sensitive" in the API will not
  8407  // be included in the string output. The member name will be present, but the
  8408  // value will be replaced with "sensitive".
  8409  func (s ListDeliverabilityTestReportsInput) String() string {
  8410  	return awsutil.Prettify(s)
  8411  }
  8412  
  8413  // GoString returns the string representation.
  8414  //
  8415  // API parameter values that are decorated as "sensitive" in the API will not
  8416  // be included in the string output. The member name will be present, but the
  8417  // value will be replaced with "sensitive".
  8418  func (s ListDeliverabilityTestReportsInput) GoString() string {
  8419  	return s.String()
  8420  }
  8421  
  8422  // SetNextToken sets the NextToken field's value.
  8423  func (s *ListDeliverabilityTestReportsInput) SetNextToken(v string) *ListDeliverabilityTestReportsInput {
  8424  	s.NextToken = &v
  8425  	return s
  8426  }
  8427  
  8428  // SetPageSize sets the PageSize field's value.
  8429  func (s *ListDeliverabilityTestReportsInput) SetPageSize(v int64) *ListDeliverabilityTestReportsInput {
  8430  	s.PageSize = &v
  8431  	return s
  8432  }
  8433  
  8434  // A list of the predictive inbox placement test reports that are available
  8435  // for your account, regardless of whether or not those tests are complete.
  8436  type ListDeliverabilityTestReportsOutput struct {
  8437  	_ struct{} `type:"structure"`
  8438  
  8439  	// An object that contains a lists of predictive inbox placement tests that
  8440  	// you've performed.
  8441  	//
  8442  	// DeliverabilityTestReports is a required field
  8443  	DeliverabilityTestReports []*DeliverabilityTestReport `type:"list" required:"true"`
  8444  
  8445  	// A token that indicates that there are additional predictive inbox placement
  8446  	// tests to list. To view additional predictive inbox placement tests, issue
  8447  	// another request to ListDeliverabilityTestReports, and pass this token in
  8448  	// the NextToken parameter.
  8449  	NextToken *string `type:"string"`
  8450  }
  8451  
  8452  // String returns the string representation.
  8453  //
  8454  // API parameter values that are decorated as "sensitive" in the API will not
  8455  // be included in the string output. The member name will be present, but the
  8456  // value will be replaced with "sensitive".
  8457  func (s ListDeliverabilityTestReportsOutput) String() string {
  8458  	return awsutil.Prettify(s)
  8459  }
  8460  
  8461  // GoString returns the string representation.
  8462  //
  8463  // API parameter values that are decorated as "sensitive" in the API will not
  8464  // be included in the string output. The member name will be present, but the
  8465  // value will be replaced with "sensitive".
  8466  func (s ListDeliverabilityTestReportsOutput) GoString() string {
  8467  	return s.String()
  8468  }
  8469  
  8470  // SetDeliverabilityTestReports sets the DeliverabilityTestReports field's value.
  8471  func (s *ListDeliverabilityTestReportsOutput) SetDeliverabilityTestReports(v []*DeliverabilityTestReport) *ListDeliverabilityTestReportsOutput {
  8472  	s.DeliverabilityTestReports = v
  8473  	return s
  8474  }
  8475  
  8476  // SetNextToken sets the NextToken field's value.
  8477  func (s *ListDeliverabilityTestReportsOutput) SetNextToken(v string) *ListDeliverabilityTestReportsOutput {
  8478  	s.NextToken = &v
  8479  	return s
  8480  }
  8481  
  8482  // Retrieve deliverability data for all the campaigns that used a specific domain
  8483  // to send email during a specified time range. This data is available for a
  8484  // domain only if you enabled the Deliverability dashboard (PutDeliverabilityDashboardOption
  8485  // operation) for the domain.
  8486  type ListDomainDeliverabilityCampaignsInput struct {
  8487  	_ struct{} `type:"structure" nopayload:"true"`
  8488  
  8489  	// The last day, in Unix time format, that you want to obtain deliverability
  8490  	// data for. This value has to be less than or equal to 30 days after the value
  8491  	// of the StartDate parameter.
  8492  	//
  8493  	// EndDate is a required field
  8494  	EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp" required:"true"`
  8495  
  8496  	// A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns
  8497  	// operation. This token indicates the position of a campaign in the list of
  8498  	// campaigns.
  8499  	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
  8500  
  8501  	// The maximum number of results to include in response to a single call to
  8502  	// the ListDomainDeliverabilityCampaigns operation. If the number of results
  8503  	// is larger than the number that you specify in this parameter, the response
  8504  	// includes a NextToken element, which you can use to obtain additional results.
  8505  	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
  8506  
  8507  	// The first day, in Unix time format, that you want to obtain deliverability
  8508  	// data for.
  8509  	//
  8510  	// StartDate is a required field
  8511  	StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp" required:"true"`
  8512  
  8513  	// The domain to obtain deliverability data for.
  8514  	//
  8515  	// SubscribedDomain is a required field
  8516  	SubscribedDomain *string `location:"uri" locationName:"SubscribedDomain" type:"string" required:"true"`
  8517  }
  8518  
  8519  // String returns the string representation.
  8520  //
  8521  // API parameter values that are decorated as "sensitive" in the API will not
  8522  // be included in the string output. The member name will be present, but the
  8523  // value will be replaced with "sensitive".
  8524  func (s ListDomainDeliverabilityCampaignsInput) String() string {
  8525  	return awsutil.Prettify(s)
  8526  }
  8527  
  8528  // GoString returns the string representation.
  8529  //
  8530  // API parameter values that are decorated as "sensitive" in the API will not
  8531  // be included in the string output. The member name will be present, but the
  8532  // value will be replaced with "sensitive".
  8533  func (s ListDomainDeliverabilityCampaignsInput) GoString() string {
  8534  	return s.String()
  8535  }
  8536  
  8537  // Validate inspects the fields of the type to determine if they are valid.
  8538  func (s *ListDomainDeliverabilityCampaignsInput) Validate() error {
  8539  	invalidParams := request.ErrInvalidParams{Context: "ListDomainDeliverabilityCampaignsInput"}
  8540  	if s.EndDate == nil {
  8541  		invalidParams.Add(request.NewErrParamRequired("EndDate"))
  8542  	}
  8543  	if s.StartDate == nil {
  8544  		invalidParams.Add(request.NewErrParamRequired("StartDate"))
  8545  	}
  8546  	if s.SubscribedDomain == nil {
  8547  		invalidParams.Add(request.NewErrParamRequired("SubscribedDomain"))
  8548  	}
  8549  	if s.SubscribedDomain != nil && len(*s.SubscribedDomain) < 1 {
  8550  		invalidParams.Add(request.NewErrParamMinLen("SubscribedDomain", 1))
  8551  	}
  8552  
  8553  	if invalidParams.Len() > 0 {
  8554  		return invalidParams
  8555  	}
  8556  	return nil
  8557  }
  8558  
  8559  // SetEndDate sets the EndDate field's value.
  8560  func (s *ListDomainDeliverabilityCampaignsInput) SetEndDate(v time.Time) *ListDomainDeliverabilityCampaignsInput {
  8561  	s.EndDate = &v
  8562  	return s
  8563  }
  8564  
  8565  // SetNextToken sets the NextToken field's value.
  8566  func (s *ListDomainDeliverabilityCampaignsInput) SetNextToken(v string) *ListDomainDeliverabilityCampaignsInput {
  8567  	s.NextToken = &v
  8568  	return s
  8569  }
  8570  
  8571  // SetPageSize sets the PageSize field's value.
  8572  func (s *ListDomainDeliverabilityCampaignsInput) SetPageSize(v int64) *ListDomainDeliverabilityCampaignsInput {
  8573  	s.PageSize = &v
  8574  	return s
  8575  }
  8576  
  8577  // SetStartDate sets the StartDate field's value.
  8578  func (s *ListDomainDeliverabilityCampaignsInput) SetStartDate(v time.Time) *ListDomainDeliverabilityCampaignsInput {
  8579  	s.StartDate = &v
  8580  	return s
  8581  }
  8582  
  8583  // SetSubscribedDomain sets the SubscribedDomain field's value.
  8584  func (s *ListDomainDeliverabilityCampaignsInput) SetSubscribedDomain(v string) *ListDomainDeliverabilityCampaignsInput {
  8585  	s.SubscribedDomain = &v
  8586  	return s
  8587  }
  8588  
  8589  // An array of objects that provide deliverability data for all the campaigns
  8590  // that used a specific domain to send email during a specified time range.
  8591  // This data is available for a domain only if you enabled the Deliverability
  8592  // dashboard (PutDeliverabilityDashboardOption operation) for the domain.
  8593  type ListDomainDeliverabilityCampaignsOutput struct {
  8594  	_ struct{} `type:"structure"`
  8595  
  8596  	// An array of responses, one for each campaign that used the domain to send
  8597  	// email during the specified time range.
  8598  	//
  8599  	// DomainDeliverabilityCampaigns is a required field
  8600  	DomainDeliverabilityCampaigns []*DomainDeliverabilityCampaign `type:"list" required:"true"`
  8601  
  8602  	// A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns
  8603  	// operation. This token indicates the position of the campaign in the list
  8604  	// of campaigns.
  8605  	NextToken *string `type:"string"`
  8606  }
  8607  
  8608  // String returns the string representation.
  8609  //
  8610  // API parameter values that are decorated as "sensitive" in the API will not
  8611  // be included in the string output. The member name will be present, but the
  8612  // value will be replaced with "sensitive".
  8613  func (s ListDomainDeliverabilityCampaignsOutput) String() string {
  8614  	return awsutil.Prettify(s)
  8615  }
  8616  
  8617  // GoString returns the string representation.
  8618  //
  8619  // API parameter values that are decorated as "sensitive" in the API will not
  8620  // be included in the string output. The member name will be present, but the
  8621  // value will be replaced with "sensitive".
  8622  func (s ListDomainDeliverabilityCampaignsOutput) GoString() string {
  8623  	return s.String()
  8624  }
  8625  
  8626  // SetDomainDeliverabilityCampaigns sets the DomainDeliverabilityCampaigns field's value.
  8627  func (s *ListDomainDeliverabilityCampaignsOutput) SetDomainDeliverabilityCampaigns(v []*DomainDeliverabilityCampaign) *ListDomainDeliverabilityCampaignsOutput {
  8628  	s.DomainDeliverabilityCampaigns = v
  8629  	return s
  8630  }
  8631  
  8632  // SetNextToken sets the NextToken field's value.
  8633  func (s *ListDomainDeliverabilityCampaignsOutput) SetNextToken(v string) *ListDomainDeliverabilityCampaignsOutput {
  8634  	s.NextToken = &v
  8635  	return s
  8636  }
  8637  
  8638  // A request to list all of the email identities associated with your Amazon
  8639  // Pinpoint account. This list includes identities that you've already verified,
  8640  // identities that are unverified, and identities that were verified in the
  8641  // past, but are no longer verified.
  8642  type ListEmailIdentitiesInput struct {
  8643  	_ struct{} `type:"structure" nopayload:"true"`
  8644  
  8645  	// A token returned from a previous call to ListEmailIdentities to indicate
  8646  	// the position in the list of identities.
  8647  	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
  8648  
  8649  	// The number of results to show in a single call to ListEmailIdentities. If
  8650  	// the number of results is larger than the number you specified in this parameter,
  8651  	// then the response includes a NextToken element, which you can use to obtain
  8652  	// additional results.
  8653  	//
  8654  	// The value you specify has to be at least 0, and can be no more than 1000.
  8655  	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
  8656  }
  8657  
  8658  // String returns the string representation.
  8659  //
  8660  // API parameter values that are decorated as "sensitive" in the API will not
  8661  // be included in the string output. The member name will be present, but the
  8662  // value will be replaced with "sensitive".
  8663  func (s ListEmailIdentitiesInput) String() string {
  8664  	return awsutil.Prettify(s)
  8665  }
  8666  
  8667  // GoString returns the string representation.
  8668  //
  8669  // API parameter values that are decorated as "sensitive" in the API will not
  8670  // be included in the string output. The member name will be present, but the
  8671  // value will be replaced with "sensitive".
  8672  func (s ListEmailIdentitiesInput) GoString() string {
  8673  	return s.String()
  8674  }
  8675  
  8676  // SetNextToken sets the NextToken field's value.
  8677  func (s *ListEmailIdentitiesInput) SetNextToken(v string) *ListEmailIdentitiesInput {
  8678  	s.NextToken = &v
  8679  	return s
  8680  }
  8681  
  8682  // SetPageSize sets the PageSize field's value.
  8683  func (s *ListEmailIdentitiesInput) SetPageSize(v int64) *ListEmailIdentitiesInput {
  8684  	s.PageSize = &v
  8685  	return s
  8686  }
  8687  
  8688  // A list of all of the identities that you've attempted to verify for use with
  8689  // Amazon Pinpoint, regardless of whether or not those identities were successfully
  8690  // verified.
  8691  type ListEmailIdentitiesOutput struct {
  8692  	_ struct{} `type:"structure"`
  8693  
  8694  	// An array that includes all of the identities associated with your Amazon
  8695  	// Pinpoint account.
  8696  	EmailIdentities []*IdentityInfo `type:"list"`
  8697  
  8698  	// A token that indicates that there are additional configuration sets to list.
  8699  	// To view additional configuration sets, issue another request to ListEmailIdentities,
  8700  	// and pass this token in the NextToken parameter.
  8701  	NextToken *string `type:"string"`
  8702  }
  8703  
  8704  // String returns the string representation.
  8705  //
  8706  // API parameter values that are decorated as "sensitive" in the API will not
  8707  // be included in the string output. The member name will be present, but the
  8708  // value will be replaced with "sensitive".
  8709  func (s ListEmailIdentitiesOutput) String() string {
  8710  	return awsutil.Prettify(s)
  8711  }
  8712  
  8713  // GoString returns the string representation.
  8714  //
  8715  // API parameter values that are decorated as "sensitive" in the API will not
  8716  // be included in the string output. The member name will be present, but the
  8717  // value will be replaced with "sensitive".
  8718  func (s ListEmailIdentitiesOutput) GoString() string {
  8719  	return s.String()
  8720  }
  8721  
  8722  // SetEmailIdentities sets the EmailIdentities field's value.
  8723  func (s *ListEmailIdentitiesOutput) SetEmailIdentities(v []*IdentityInfo) *ListEmailIdentitiesOutput {
  8724  	s.EmailIdentities = v
  8725  	return s
  8726  }
  8727  
  8728  // SetNextToken sets the NextToken field's value.
  8729  func (s *ListEmailIdentitiesOutput) SetNextToken(v string) *ListEmailIdentitiesOutput {
  8730  	s.NextToken = &v
  8731  	return s
  8732  }
  8733  
  8734  type ListTagsForResourceInput struct {
  8735  	_ struct{} `type:"structure" nopayload:"true"`
  8736  
  8737  	// The Amazon Resource Name (ARN) of the resource that you want to retrieve
  8738  	// tag information for.
  8739  	//
  8740  	// ResourceArn is a required field
  8741  	ResourceArn *string `location:"querystring" locationName:"ResourceArn" type:"string" required:"true"`
  8742  }
  8743  
  8744  // String returns the string representation.
  8745  //
  8746  // API parameter values that are decorated as "sensitive" in the API will not
  8747  // be included in the string output. The member name will be present, but the
  8748  // value will be replaced with "sensitive".
  8749  func (s ListTagsForResourceInput) String() string {
  8750  	return awsutil.Prettify(s)
  8751  }
  8752  
  8753  // GoString returns the string representation.
  8754  //
  8755  // API parameter values that are decorated as "sensitive" in the API will not
  8756  // be included in the string output. The member name will be present, but the
  8757  // value will be replaced with "sensitive".
  8758  func (s ListTagsForResourceInput) GoString() string {
  8759  	return s.String()
  8760  }
  8761  
  8762  // Validate inspects the fields of the type to determine if they are valid.
  8763  func (s *ListTagsForResourceInput) Validate() error {
  8764  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  8765  	if s.ResourceArn == nil {
  8766  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  8767  	}
  8768  
  8769  	if invalidParams.Len() > 0 {
  8770  		return invalidParams
  8771  	}
  8772  	return nil
  8773  }
  8774  
  8775  // SetResourceArn sets the ResourceArn field's value.
  8776  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
  8777  	s.ResourceArn = &v
  8778  	return s
  8779  }
  8780  
  8781  type ListTagsForResourceOutput struct {
  8782  	_ struct{} `type:"structure"`
  8783  
  8784  	// An array that lists all the tags that are associated with the resource. Each
  8785  	// tag consists of a required tag key (Key) and an associated tag value (Value)
  8786  	//
  8787  	// Tags is a required field
  8788  	Tags []*Tag `type:"list" required:"true"`
  8789  }
  8790  
  8791  // String returns the string representation.
  8792  //
  8793  // API parameter values that are decorated as "sensitive" in the API will not
  8794  // be included in the string output. The member name will be present, but the
  8795  // value will be replaced with "sensitive".
  8796  func (s ListTagsForResourceOutput) String() string {
  8797  	return awsutil.Prettify(s)
  8798  }
  8799  
  8800  // GoString returns the string representation.
  8801  //
  8802  // API parameter values that are decorated as "sensitive" in the API will not
  8803  // be included in the string output. The member name will be present, but the
  8804  // value will be replaced with "sensitive".
  8805  func (s ListTagsForResourceOutput) GoString() string {
  8806  	return s.String()
  8807  }
  8808  
  8809  // SetTags sets the Tags field's value.
  8810  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
  8811  	s.Tags = v
  8812  	return s
  8813  }
  8814  
  8815  // A list of attributes that are associated with a MAIL FROM domain.
  8816  type MailFromAttributes struct {
  8817  	_ struct{} `type:"structure"`
  8818  
  8819  	// The action that Amazon Pinpoint to takes if it can't read the required MX
  8820  	// record for a custom MAIL FROM domain. When you set this value to UseDefaultValue,
  8821  	// Amazon Pinpoint uses amazonses.com as the MAIL FROM domain. When you set
  8822  	// this value to RejectMessage, Amazon Pinpoint returns a MailFromDomainNotVerified
  8823  	// error, and doesn't attempt to deliver the email.
  8824  	//
  8825  	// These behaviors are taken when the custom MAIL FROM domain configuration
  8826  	// is in the Pending, Failed, and TemporaryFailure states.
  8827  	//
  8828  	// BehaviorOnMxFailure is a required field
  8829  	BehaviorOnMxFailure *string `type:"string" required:"true" enum:"BehaviorOnMxFailure"`
  8830  
  8831  	// The name of a domain that an email identity uses as a custom MAIL FROM domain.
  8832  	//
  8833  	// MailFromDomain is a required field
  8834  	MailFromDomain *string `type:"string" required:"true"`
  8835  
  8836  	// The status of the MAIL FROM domain. This status can have the following values:
  8837  	//
  8838  	//    * PENDING – Amazon Pinpoint hasn't started searching for the MX record
  8839  	//    yet.
  8840  	//
  8841  	//    * SUCCESS – Amazon Pinpoint detected the required MX record for the
  8842  	//    MAIL FROM domain.
  8843  	//
  8844  	//    * FAILED – Amazon Pinpoint can't find the required MX record, or the
  8845  	//    record no longer exists.
  8846  	//
  8847  	//    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
  8848  	//    Pinpoint from determining the status of the MAIL FROM domain.
  8849  	//
  8850  	// MailFromDomainStatus is a required field
  8851  	MailFromDomainStatus *string `type:"string" required:"true" enum:"MailFromDomainStatus"`
  8852  }
  8853  
  8854  // String returns the string representation.
  8855  //
  8856  // API parameter values that are decorated as "sensitive" in the API will not
  8857  // be included in the string output. The member name will be present, but the
  8858  // value will be replaced with "sensitive".
  8859  func (s MailFromAttributes) String() string {
  8860  	return awsutil.Prettify(s)
  8861  }
  8862  
  8863  // GoString returns the string representation.
  8864  //
  8865  // API parameter values that are decorated as "sensitive" in the API will not
  8866  // be included in the string output. The member name will be present, but the
  8867  // value will be replaced with "sensitive".
  8868  func (s MailFromAttributes) GoString() string {
  8869  	return s.String()
  8870  }
  8871  
  8872  // SetBehaviorOnMxFailure sets the BehaviorOnMxFailure field's value.
  8873  func (s *MailFromAttributes) SetBehaviorOnMxFailure(v string) *MailFromAttributes {
  8874  	s.BehaviorOnMxFailure = &v
  8875  	return s
  8876  }
  8877  
  8878  // SetMailFromDomain sets the MailFromDomain field's value.
  8879  func (s *MailFromAttributes) SetMailFromDomain(v string) *MailFromAttributes {
  8880  	s.MailFromDomain = &v
  8881  	return s
  8882  }
  8883  
  8884  // SetMailFromDomainStatus sets the MailFromDomainStatus field's value.
  8885  func (s *MailFromAttributes) SetMailFromDomainStatus(v string) *MailFromAttributes {
  8886  	s.MailFromDomainStatus = &v
  8887  	return s
  8888  }
  8889  
  8890  // The message can't be sent because the sending domain isn't verified.
  8891  type MailFromDomainNotVerifiedException struct {
  8892  	_            struct{}                  `type:"structure"`
  8893  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8894  
  8895  	Message_ *string `locationName:"message" type:"string"`
  8896  }
  8897  
  8898  // String returns the string representation.
  8899  //
  8900  // API parameter values that are decorated as "sensitive" in the API will not
  8901  // be included in the string output. The member name will be present, but the
  8902  // value will be replaced with "sensitive".
  8903  func (s MailFromDomainNotVerifiedException) String() string {
  8904  	return awsutil.Prettify(s)
  8905  }
  8906  
  8907  // GoString returns the string representation.
  8908  //
  8909  // API parameter values that are decorated as "sensitive" in the API will not
  8910  // be included in the string output. The member name will be present, but the
  8911  // value will be replaced with "sensitive".
  8912  func (s MailFromDomainNotVerifiedException) GoString() string {
  8913  	return s.String()
  8914  }
  8915  
  8916  func newErrorMailFromDomainNotVerifiedException(v protocol.ResponseMetadata) error {
  8917  	return &MailFromDomainNotVerifiedException{
  8918  		RespMetadata: v,
  8919  	}
  8920  }
  8921  
  8922  // Code returns the exception type name.
  8923  func (s *MailFromDomainNotVerifiedException) Code() string {
  8924  	return "MailFromDomainNotVerifiedException"
  8925  }
  8926  
  8927  // Message returns the exception's message.
  8928  func (s *MailFromDomainNotVerifiedException) Message() string {
  8929  	if s.Message_ != nil {
  8930  		return *s.Message_
  8931  	}
  8932  	return ""
  8933  }
  8934  
  8935  // OrigErr always returns nil, satisfies awserr.Error interface.
  8936  func (s *MailFromDomainNotVerifiedException) OrigErr() error {
  8937  	return nil
  8938  }
  8939  
  8940  func (s *MailFromDomainNotVerifiedException) Error() string {
  8941  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8942  }
  8943  
  8944  // Status code returns the HTTP status code for the request's response error.
  8945  func (s *MailFromDomainNotVerifiedException) StatusCode() int {
  8946  	return s.RespMetadata.StatusCode
  8947  }
  8948  
  8949  // RequestID returns the service's response RequestID for request.
  8950  func (s *MailFromDomainNotVerifiedException) RequestID() string {
  8951  	return s.RespMetadata.RequestID
  8952  }
  8953  
  8954  // Represents the email message that you're sending. The Message object consists
  8955  // of a subject line and a message body.
  8956  type Message struct {
  8957  	_ struct{} `type:"structure"`
  8958  
  8959  	// The body of the message. You can specify an HTML version of the message,
  8960  	// a text-only version of the message, or both.
  8961  	//
  8962  	// Body is a required field
  8963  	Body *Body `type:"structure" required:"true"`
  8964  
  8965  	// The subject line of the email. The subject line can only contain 7-bit ASCII
  8966  	// characters. However, you can specify non-ASCII characters in the subject
  8967  	// line by using encoded-word syntax, as described in RFC 2047 (https://tools.ietf.org/html/rfc2047).
  8968  	//
  8969  	// Subject is a required field
  8970  	Subject *Content `type:"structure" required:"true"`
  8971  }
  8972  
  8973  // String returns the string representation.
  8974  //
  8975  // API parameter values that are decorated as "sensitive" in the API will not
  8976  // be included in the string output. The member name will be present, but the
  8977  // value will be replaced with "sensitive".
  8978  func (s Message) String() string {
  8979  	return awsutil.Prettify(s)
  8980  }
  8981  
  8982  // GoString returns the string representation.
  8983  //
  8984  // API parameter values that are decorated as "sensitive" in the API will not
  8985  // be included in the string output. The member name will be present, but the
  8986  // value will be replaced with "sensitive".
  8987  func (s Message) GoString() string {
  8988  	return s.String()
  8989  }
  8990  
  8991  // Validate inspects the fields of the type to determine if they are valid.
  8992  func (s *Message) Validate() error {
  8993  	invalidParams := request.ErrInvalidParams{Context: "Message"}
  8994  	if s.Body == nil {
  8995  		invalidParams.Add(request.NewErrParamRequired("Body"))
  8996  	}
  8997  	if s.Subject == nil {
  8998  		invalidParams.Add(request.NewErrParamRequired("Subject"))
  8999  	}
  9000  	if s.Body != nil {
  9001  		if err := s.Body.Validate(); err != nil {
  9002  			invalidParams.AddNested("Body", err.(request.ErrInvalidParams))
  9003  		}
  9004  	}
  9005  	if s.Subject != nil {
  9006  		if err := s.Subject.Validate(); err != nil {
  9007  			invalidParams.AddNested("Subject", err.(request.ErrInvalidParams))
  9008  		}
  9009  	}
  9010  
  9011  	if invalidParams.Len() > 0 {
  9012  		return invalidParams
  9013  	}
  9014  	return nil
  9015  }
  9016  
  9017  // SetBody sets the Body field's value.
  9018  func (s *Message) SetBody(v *Body) *Message {
  9019  	s.Body = v
  9020  	return s
  9021  }
  9022  
  9023  // SetSubject sets the Subject field's value.
  9024  func (s *Message) SetSubject(v *Content) *Message {
  9025  	s.Subject = v
  9026  	return s
  9027  }
  9028  
  9029  // The message can't be sent because it contains invalid content.
  9030  type MessageRejected struct {
  9031  	_            struct{}                  `type:"structure"`
  9032  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9033  
  9034  	Message_ *string `locationName:"message" type:"string"`
  9035  }
  9036  
  9037  // String returns the string representation.
  9038  //
  9039  // API parameter values that are decorated as "sensitive" in the API will not
  9040  // be included in the string output. The member name will be present, but the
  9041  // value will be replaced with "sensitive".
  9042  func (s MessageRejected) String() string {
  9043  	return awsutil.Prettify(s)
  9044  }
  9045  
  9046  // GoString returns the string representation.
  9047  //
  9048  // API parameter values that are decorated as "sensitive" in the API will not
  9049  // be included in the string output. The member name will be present, but the
  9050  // value will be replaced with "sensitive".
  9051  func (s MessageRejected) GoString() string {
  9052  	return s.String()
  9053  }
  9054  
  9055  func newErrorMessageRejected(v protocol.ResponseMetadata) error {
  9056  	return &MessageRejected{
  9057  		RespMetadata: v,
  9058  	}
  9059  }
  9060  
  9061  // Code returns the exception type name.
  9062  func (s *MessageRejected) Code() string {
  9063  	return "MessageRejected"
  9064  }
  9065  
  9066  // Message returns the exception's message.
  9067  func (s *MessageRejected) Message() string {
  9068  	if s.Message_ != nil {
  9069  		return *s.Message_
  9070  	}
  9071  	return ""
  9072  }
  9073  
  9074  // OrigErr always returns nil, satisfies awserr.Error interface.
  9075  func (s *MessageRejected) OrigErr() error {
  9076  	return nil
  9077  }
  9078  
  9079  func (s *MessageRejected) Error() string {
  9080  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  9081  }
  9082  
  9083  // Status code returns the HTTP status code for the request's response error.
  9084  func (s *MessageRejected) StatusCode() int {
  9085  	return s.RespMetadata.StatusCode
  9086  }
  9087  
  9088  // RequestID returns the service's response RequestID for request.
  9089  func (s *MessageRejected) RequestID() string {
  9090  	return s.RespMetadata.RequestID
  9091  }
  9092  
  9093  // Contains the name and value of a tag that you apply to an email. You can
  9094  // use message tags when you publish email sending events.
  9095  type MessageTag struct {
  9096  	_ struct{} `type:"structure"`
  9097  
  9098  	// The name of the message tag. The message tag name has to meet the following
  9099  	// criteria:
  9100  	//
  9101  	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
  9102  	//    (_), or dashes (-).
  9103  	//
  9104  	//    * It can contain no more than 256 characters.
  9105  	//
  9106  	// Name is a required field
  9107  	Name *string `type:"string" required:"true"`
  9108  
  9109  	// The value of the message tag. The message tag value has to meet the following
  9110  	// criteria:
  9111  	//
  9112  	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
  9113  	//    (_), or dashes (-).
  9114  	//
  9115  	//    * It can contain no more than 256 characters.
  9116  	//
  9117  	// Value is a required field
  9118  	Value *string `type:"string" required:"true"`
  9119  }
  9120  
  9121  // String returns the string representation.
  9122  //
  9123  // API parameter values that are decorated as "sensitive" in the API will not
  9124  // be included in the string output. The member name will be present, but the
  9125  // value will be replaced with "sensitive".
  9126  func (s MessageTag) String() string {
  9127  	return awsutil.Prettify(s)
  9128  }
  9129  
  9130  // GoString returns the string representation.
  9131  //
  9132  // API parameter values that are decorated as "sensitive" in the API will not
  9133  // be included in the string output. The member name will be present, but the
  9134  // value will be replaced with "sensitive".
  9135  func (s MessageTag) GoString() string {
  9136  	return s.String()
  9137  }
  9138  
  9139  // Validate inspects the fields of the type to determine if they are valid.
  9140  func (s *MessageTag) Validate() error {
  9141  	invalidParams := request.ErrInvalidParams{Context: "MessageTag"}
  9142  	if s.Name == nil {
  9143  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9144  	}
  9145  	if s.Value == nil {
  9146  		invalidParams.Add(request.NewErrParamRequired("Value"))
  9147  	}
  9148  
  9149  	if invalidParams.Len() > 0 {
  9150  		return invalidParams
  9151  	}
  9152  	return nil
  9153  }
  9154  
  9155  // SetName sets the Name field's value.
  9156  func (s *MessageTag) SetName(v string) *MessageTag {
  9157  	s.Name = &v
  9158  	return s
  9159  }
  9160  
  9161  // SetValue sets the Value field's value.
  9162  func (s *MessageTag) SetValue(v string) *MessageTag {
  9163  	s.Value = &v
  9164  	return s
  9165  }
  9166  
  9167  // The resource you attempted to access doesn't exist.
  9168  type NotFoundException struct {
  9169  	_            struct{}                  `type:"structure"`
  9170  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9171  
  9172  	Message_ *string `locationName:"message" type:"string"`
  9173  }
  9174  
  9175  // String returns the string representation.
  9176  //
  9177  // API parameter values that are decorated as "sensitive" in the API will not
  9178  // be included in the string output. The member name will be present, but the
  9179  // value will be replaced with "sensitive".
  9180  func (s NotFoundException) String() string {
  9181  	return awsutil.Prettify(s)
  9182  }
  9183  
  9184  // GoString returns the string representation.
  9185  //
  9186  // API parameter values that are decorated as "sensitive" in the API will not
  9187  // be included in the string output. The member name will be present, but the
  9188  // value will be replaced with "sensitive".
  9189  func (s NotFoundException) GoString() string {
  9190  	return s.String()
  9191  }
  9192  
  9193  func newErrorNotFoundException(v protocol.ResponseMetadata) error {
  9194  	return &NotFoundException{
  9195  		RespMetadata: v,
  9196  	}
  9197  }
  9198  
  9199  // Code returns the exception type name.
  9200  func (s *NotFoundException) Code() string {
  9201  	return "NotFoundException"
  9202  }
  9203  
  9204  // Message returns the exception's message.
  9205  func (s *NotFoundException) Message() string {
  9206  	if s.Message_ != nil {
  9207  		return *s.Message_
  9208  	}
  9209  	return ""
  9210  }
  9211  
  9212  // OrigErr always returns nil, satisfies awserr.Error interface.
  9213  func (s *NotFoundException) OrigErr() error {
  9214  	return nil
  9215  }
  9216  
  9217  func (s *NotFoundException) Error() string {
  9218  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  9219  }
  9220  
  9221  // Status code returns the HTTP status code for the request's response error.
  9222  func (s *NotFoundException) StatusCode() int {
  9223  	return s.RespMetadata.StatusCode
  9224  }
  9225  
  9226  // RequestID returns the service's response RequestID for request.
  9227  func (s *NotFoundException) RequestID() string {
  9228  	return s.RespMetadata.RequestID
  9229  }
  9230  
  9231  // An object that contains information about email that was sent from the selected
  9232  // domain.
  9233  type OverallVolume struct {
  9234  	_ struct{} `type:"structure"`
  9235  
  9236  	// An object that contains inbox and junk mail placement metrics for individual
  9237  	// email providers.
  9238  	DomainIspPlacements []*DomainIspPlacement `type:"list"`
  9239  
  9240  	// The percentage of emails that were sent from the domain that were read by
  9241  	// their recipients.
  9242  	ReadRatePercent *float64 `type:"double"`
  9243  
  9244  	// An object that contains information about the numbers of messages that arrived
  9245  	// in recipients' inboxes and junk mail folders.
  9246  	VolumeStatistics *VolumeStatistics `type:"structure"`
  9247  }
  9248  
  9249  // String returns the string representation.
  9250  //
  9251  // API parameter values that are decorated as "sensitive" in the API will not
  9252  // be included in the string output. The member name will be present, but the
  9253  // value will be replaced with "sensitive".
  9254  func (s OverallVolume) String() string {
  9255  	return awsutil.Prettify(s)
  9256  }
  9257  
  9258  // GoString returns the string representation.
  9259  //
  9260  // API parameter values that are decorated as "sensitive" in the API will not
  9261  // be included in the string output. The member name will be present, but the
  9262  // value will be replaced with "sensitive".
  9263  func (s OverallVolume) GoString() string {
  9264  	return s.String()
  9265  }
  9266  
  9267  // SetDomainIspPlacements sets the DomainIspPlacements field's value.
  9268  func (s *OverallVolume) SetDomainIspPlacements(v []*DomainIspPlacement) *OverallVolume {
  9269  	s.DomainIspPlacements = v
  9270  	return s
  9271  }
  9272  
  9273  // SetReadRatePercent sets the ReadRatePercent field's value.
  9274  func (s *OverallVolume) SetReadRatePercent(v float64) *OverallVolume {
  9275  	s.ReadRatePercent = &v
  9276  	return s
  9277  }
  9278  
  9279  // SetVolumeStatistics sets the VolumeStatistics field's value.
  9280  func (s *OverallVolume) SetVolumeStatistics(v *VolumeStatistics) *OverallVolume {
  9281  	s.VolumeStatistics = v
  9282  	return s
  9283  }
  9284  
  9285  // An object that defines a Amazon Pinpoint destination for email events. You
  9286  // can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects.
  9287  // You can use these attributes to create segments for your campaigns.
  9288  type PinpointDestination struct {
  9289  	_ struct{} `type:"structure"`
  9290  
  9291  	// The Amazon Resource Name (ARN) of the Amazon Pinpoint project that you want
  9292  	// to send email events to.
  9293  	ApplicationArn *string `type:"string"`
  9294  }
  9295  
  9296  // String returns the string representation.
  9297  //
  9298  // API parameter values that are decorated as "sensitive" in the API will not
  9299  // be included in the string output. The member name will be present, but the
  9300  // value will be replaced with "sensitive".
  9301  func (s PinpointDestination) String() string {
  9302  	return awsutil.Prettify(s)
  9303  }
  9304  
  9305  // GoString returns the string representation.
  9306  //
  9307  // API parameter values that are decorated as "sensitive" in the API will not
  9308  // be included in the string output. The member name will be present, but the
  9309  // value will be replaced with "sensitive".
  9310  func (s PinpointDestination) GoString() string {
  9311  	return s.String()
  9312  }
  9313  
  9314  // SetApplicationArn sets the ApplicationArn field's value.
  9315  func (s *PinpointDestination) SetApplicationArn(v string) *PinpointDestination {
  9316  	s.ApplicationArn = &v
  9317  	return s
  9318  }
  9319  
  9320  // An object that contains inbox placement data for an email provider.
  9321  type PlacementStatistics struct {
  9322  	_ struct{} `type:"structure"`
  9323  
  9324  	// The percentage of emails that were authenticated by using DomainKeys Identified
  9325  	// Mail (DKIM) during the predictive inbox placement test.
  9326  	DkimPercentage *float64 `type:"double"`
  9327  
  9328  	// The percentage of emails that arrived in recipients' inboxes during the predictive
  9329  	// inbox placement test.
  9330  	InboxPercentage *float64 `type:"double"`
  9331  
  9332  	// The percentage of emails that didn't arrive in recipients' inboxes at all
  9333  	// during the predictive inbox placement test.
  9334  	MissingPercentage *float64 `type:"double"`
  9335  
  9336  	// The percentage of emails that arrived in recipients' spam or junk mail folders
  9337  	// during the predictive inbox placement test.
  9338  	SpamPercentage *float64 `type:"double"`
  9339  
  9340  	// The percentage of emails that were authenticated by using Sender Policy Framework
  9341  	// (SPF) during the predictive inbox placement test.
  9342  	SpfPercentage *float64 `type:"double"`
  9343  }
  9344  
  9345  // String returns the string representation.
  9346  //
  9347  // API parameter values that are decorated as "sensitive" in the API will not
  9348  // be included in the string output. The member name will be present, but the
  9349  // value will be replaced with "sensitive".
  9350  func (s PlacementStatistics) String() string {
  9351  	return awsutil.Prettify(s)
  9352  }
  9353  
  9354  // GoString returns the string representation.
  9355  //
  9356  // API parameter values that are decorated as "sensitive" in the API will not
  9357  // be included in the string output. The member name will be present, but the
  9358  // value will be replaced with "sensitive".
  9359  func (s PlacementStatistics) GoString() string {
  9360  	return s.String()
  9361  }
  9362  
  9363  // SetDkimPercentage sets the DkimPercentage field's value.
  9364  func (s *PlacementStatistics) SetDkimPercentage(v float64) *PlacementStatistics {
  9365  	s.DkimPercentage = &v
  9366  	return s
  9367  }
  9368  
  9369  // SetInboxPercentage sets the InboxPercentage field's value.
  9370  func (s *PlacementStatistics) SetInboxPercentage(v float64) *PlacementStatistics {
  9371  	s.InboxPercentage = &v
  9372  	return s
  9373  }
  9374  
  9375  // SetMissingPercentage sets the MissingPercentage field's value.
  9376  func (s *PlacementStatistics) SetMissingPercentage(v float64) *PlacementStatistics {
  9377  	s.MissingPercentage = &v
  9378  	return s
  9379  }
  9380  
  9381  // SetSpamPercentage sets the SpamPercentage field's value.
  9382  func (s *PlacementStatistics) SetSpamPercentage(v float64) *PlacementStatistics {
  9383  	s.SpamPercentage = &v
  9384  	return s
  9385  }
  9386  
  9387  // SetSpfPercentage sets the SpfPercentage field's value.
  9388  func (s *PlacementStatistics) SetSpfPercentage(v float64) *PlacementStatistics {
  9389  	s.SpfPercentage = &v
  9390  	return s
  9391  }
  9392  
  9393  // A request to enable or disable the automatic IP address warm-up feature.
  9394  type PutAccountDedicatedIpWarmupAttributesInput struct {
  9395  	_ struct{} `type:"structure"`
  9396  
  9397  	// Enables or disables the automatic warm-up feature for dedicated IP addresses
  9398  	// that are associated with your Amazon Pinpoint account in the current AWS
  9399  	// Region. Set to true to enable the automatic warm-up feature, or set to false
  9400  	// to disable it.
  9401  	AutoWarmupEnabled *bool `type:"boolean"`
  9402  }
  9403  
  9404  // String returns the string representation.
  9405  //
  9406  // API parameter values that are decorated as "sensitive" in the API will not
  9407  // be included in the string output. The member name will be present, but the
  9408  // value will be replaced with "sensitive".
  9409  func (s PutAccountDedicatedIpWarmupAttributesInput) String() string {
  9410  	return awsutil.Prettify(s)
  9411  }
  9412  
  9413  // GoString returns the string representation.
  9414  //
  9415  // API parameter values that are decorated as "sensitive" in the API will not
  9416  // be included in the string output. The member name will be present, but the
  9417  // value will be replaced with "sensitive".
  9418  func (s PutAccountDedicatedIpWarmupAttributesInput) GoString() string {
  9419  	return s.String()
  9420  }
  9421  
  9422  // SetAutoWarmupEnabled sets the AutoWarmupEnabled field's value.
  9423  func (s *PutAccountDedicatedIpWarmupAttributesInput) SetAutoWarmupEnabled(v bool) *PutAccountDedicatedIpWarmupAttributesInput {
  9424  	s.AutoWarmupEnabled = &v
  9425  	return s
  9426  }
  9427  
  9428  // An HTTP 200 response if the request succeeds, or an error message if the
  9429  // request fails.
  9430  type PutAccountDedicatedIpWarmupAttributesOutput struct {
  9431  	_ struct{} `type:"structure" nopayload:"true"`
  9432  }
  9433  
  9434  // String returns the string representation.
  9435  //
  9436  // API parameter values that are decorated as "sensitive" in the API will not
  9437  // be included in the string output. The member name will be present, but the
  9438  // value will be replaced with "sensitive".
  9439  func (s PutAccountDedicatedIpWarmupAttributesOutput) String() string {
  9440  	return awsutil.Prettify(s)
  9441  }
  9442  
  9443  // GoString returns the string representation.
  9444  //
  9445  // API parameter values that are decorated as "sensitive" in the API will not
  9446  // be included in the string output. The member name will be present, but the
  9447  // value will be replaced with "sensitive".
  9448  func (s PutAccountDedicatedIpWarmupAttributesOutput) GoString() string {
  9449  	return s.String()
  9450  }
  9451  
  9452  // A request to change the ability of your account to send email.
  9453  type PutAccountSendingAttributesInput struct {
  9454  	_ struct{} `type:"structure"`
  9455  
  9456  	// Enables or disables your account's ability to send email. Set to true to
  9457  	// enable email sending, or set to false to disable email sending.
  9458  	//
  9459  	// If AWS paused your account's ability to send email, you can't use this operation
  9460  	// to resume your account's ability to send email.
  9461  	SendingEnabled *bool `type:"boolean"`
  9462  }
  9463  
  9464  // String returns the string representation.
  9465  //
  9466  // API parameter values that are decorated as "sensitive" in the API will not
  9467  // be included in the string output. The member name will be present, but the
  9468  // value will be replaced with "sensitive".
  9469  func (s PutAccountSendingAttributesInput) String() string {
  9470  	return awsutil.Prettify(s)
  9471  }
  9472  
  9473  // GoString returns the string representation.
  9474  //
  9475  // API parameter values that are decorated as "sensitive" in the API will not
  9476  // be included in the string output. The member name will be present, but the
  9477  // value will be replaced with "sensitive".
  9478  func (s PutAccountSendingAttributesInput) GoString() string {
  9479  	return s.String()
  9480  }
  9481  
  9482  // SetSendingEnabled sets the SendingEnabled field's value.
  9483  func (s *PutAccountSendingAttributesInput) SetSendingEnabled(v bool) *PutAccountSendingAttributesInput {
  9484  	s.SendingEnabled = &v
  9485  	return s
  9486  }
  9487  
  9488  // An HTTP 200 response if the request succeeds, or an error message if the
  9489  // request fails.
  9490  type PutAccountSendingAttributesOutput struct {
  9491  	_ struct{} `type:"structure" nopayload:"true"`
  9492  }
  9493  
  9494  // String returns the string representation.
  9495  //
  9496  // API parameter values that are decorated as "sensitive" in the API will not
  9497  // be included in the string output. The member name will be present, but the
  9498  // value will be replaced with "sensitive".
  9499  func (s PutAccountSendingAttributesOutput) String() string {
  9500  	return awsutil.Prettify(s)
  9501  }
  9502  
  9503  // GoString returns the string representation.
  9504  //
  9505  // API parameter values that are decorated as "sensitive" in the API will not
  9506  // be included in the string output. The member name will be present, but the
  9507  // value will be replaced with "sensitive".
  9508  func (s PutAccountSendingAttributesOutput) GoString() string {
  9509  	return s.String()
  9510  }
  9511  
  9512  // A request to associate a configuration set with a dedicated IP pool.
  9513  type PutConfigurationSetDeliveryOptionsInput struct {
  9514  	_ struct{} `type:"structure"`
  9515  
  9516  	// The name of the configuration set that you want to associate with a dedicated
  9517  	// IP pool.
  9518  	//
  9519  	// ConfigurationSetName is a required field
  9520  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  9521  
  9522  	// The name of the dedicated IP pool that you want to associate with the configuration
  9523  	// set.
  9524  	SendingPoolName *string `type:"string"`
  9525  
  9526  	// Specifies whether messages that use the configuration set are required to
  9527  	// use Transport Layer Security (TLS). If the value is Require, messages are
  9528  	// only delivered if a TLS connection can be established. If the value is Optional,
  9529  	// messages can be delivered in plain text if a TLS connection can't be established.
  9530  	TlsPolicy *string `type:"string" enum:"TlsPolicy"`
  9531  }
  9532  
  9533  // String returns the string representation.
  9534  //
  9535  // API parameter values that are decorated as "sensitive" in the API will not
  9536  // be included in the string output. The member name will be present, but the
  9537  // value will be replaced with "sensitive".
  9538  func (s PutConfigurationSetDeliveryOptionsInput) String() string {
  9539  	return awsutil.Prettify(s)
  9540  }
  9541  
  9542  // GoString returns the string representation.
  9543  //
  9544  // API parameter values that are decorated as "sensitive" in the API will not
  9545  // be included in the string output. The member name will be present, but the
  9546  // value will be replaced with "sensitive".
  9547  func (s PutConfigurationSetDeliveryOptionsInput) GoString() string {
  9548  	return s.String()
  9549  }
  9550  
  9551  // Validate inspects the fields of the type to determine if they are valid.
  9552  func (s *PutConfigurationSetDeliveryOptionsInput) Validate() error {
  9553  	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetDeliveryOptionsInput"}
  9554  	if s.ConfigurationSetName == nil {
  9555  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  9556  	}
  9557  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  9558  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  9559  	}
  9560  
  9561  	if invalidParams.Len() > 0 {
  9562  		return invalidParams
  9563  	}
  9564  	return nil
  9565  }
  9566  
  9567  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  9568  func (s *PutConfigurationSetDeliveryOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetDeliveryOptionsInput {
  9569  	s.ConfigurationSetName = &v
  9570  	return s
  9571  }
  9572  
  9573  // SetSendingPoolName sets the SendingPoolName field's value.
  9574  func (s *PutConfigurationSetDeliveryOptionsInput) SetSendingPoolName(v string) *PutConfigurationSetDeliveryOptionsInput {
  9575  	s.SendingPoolName = &v
  9576  	return s
  9577  }
  9578  
  9579  // SetTlsPolicy sets the TlsPolicy field's value.
  9580  func (s *PutConfigurationSetDeliveryOptionsInput) SetTlsPolicy(v string) *PutConfigurationSetDeliveryOptionsInput {
  9581  	s.TlsPolicy = &v
  9582  	return s
  9583  }
  9584  
  9585  // An HTTP 200 response if the request succeeds, or an error message if the
  9586  // request fails.
  9587  type PutConfigurationSetDeliveryOptionsOutput struct {
  9588  	_ struct{} `type:"structure" nopayload:"true"`
  9589  }
  9590  
  9591  // String returns the string representation.
  9592  //
  9593  // API parameter values that are decorated as "sensitive" in the API will not
  9594  // be included in the string output. The member name will be present, but the
  9595  // value will be replaced with "sensitive".
  9596  func (s PutConfigurationSetDeliveryOptionsOutput) String() string {
  9597  	return awsutil.Prettify(s)
  9598  }
  9599  
  9600  // GoString returns the string representation.
  9601  //
  9602  // API parameter values that are decorated as "sensitive" in the API will not
  9603  // be included in the string output. The member name will be present, but the
  9604  // value will be replaced with "sensitive".
  9605  func (s PutConfigurationSetDeliveryOptionsOutput) GoString() string {
  9606  	return s.String()
  9607  }
  9608  
  9609  // A request to enable or disable tracking of reputation metrics for a configuration
  9610  // set.
  9611  type PutConfigurationSetReputationOptionsInput struct {
  9612  	_ struct{} `type:"structure"`
  9613  
  9614  	// The name of the configuration set that you want to enable or disable reputation
  9615  	// metric tracking for.
  9616  	//
  9617  	// ConfigurationSetName is a required field
  9618  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  9619  
  9620  	// If true, tracking of reputation metrics is enabled for the configuration
  9621  	// set. If false, tracking of reputation metrics is disabled for the configuration
  9622  	// set.
  9623  	ReputationMetricsEnabled *bool `type:"boolean"`
  9624  }
  9625  
  9626  // String returns the string representation.
  9627  //
  9628  // API parameter values that are decorated as "sensitive" in the API will not
  9629  // be included in the string output. The member name will be present, but the
  9630  // value will be replaced with "sensitive".
  9631  func (s PutConfigurationSetReputationOptionsInput) String() string {
  9632  	return awsutil.Prettify(s)
  9633  }
  9634  
  9635  // GoString returns the string representation.
  9636  //
  9637  // API parameter values that are decorated as "sensitive" in the API will not
  9638  // be included in the string output. The member name will be present, but the
  9639  // value will be replaced with "sensitive".
  9640  func (s PutConfigurationSetReputationOptionsInput) GoString() string {
  9641  	return s.String()
  9642  }
  9643  
  9644  // Validate inspects the fields of the type to determine if they are valid.
  9645  func (s *PutConfigurationSetReputationOptionsInput) Validate() error {
  9646  	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetReputationOptionsInput"}
  9647  	if s.ConfigurationSetName == nil {
  9648  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  9649  	}
  9650  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  9651  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  9652  	}
  9653  
  9654  	if invalidParams.Len() > 0 {
  9655  		return invalidParams
  9656  	}
  9657  	return nil
  9658  }
  9659  
  9660  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  9661  func (s *PutConfigurationSetReputationOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetReputationOptionsInput {
  9662  	s.ConfigurationSetName = &v
  9663  	return s
  9664  }
  9665  
  9666  // SetReputationMetricsEnabled sets the ReputationMetricsEnabled field's value.
  9667  func (s *PutConfigurationSetReputationOptionsInput) SetReputationMetricsEnabled(v bool) *PutConfigurationSetReputationOptionsInput {
  9668  	s.ReputationMetricsEnabled = &v
  9669  	return s
  9670  }
  9671  
  9672  // An HTTP 200 response if the request succeeds, or an error message if the
  9673  // request fails.
  9674  type PutConfigurationSetReputationOptionsOutput struct {
  9675  	_ struct{} `type:"structure" nopayload:"true"`
  9676  }
  9677  
  9678  // String returns the string representation.
  9679  //
  9680  // API parameter values that are decorated as "sensitive" in the API will not
  9681  // be included in the string output. The member name will be present, but the
  9682  // value will be replaced with "sensitive".
  9683  func (s PutConfigurationSetReputationOptionsOutput) String() string {
  9684  	return awsutil.Prettify(s)
  9685  }
  9686  
  9687  // GoString returns the string representation.
  9688  //
  9689  // API parameter values that are decorated as "sensitive" in the API will not
  9690  // be included in the string output. The member name will be present, but the
  9691  // value will be replaced with "sensitive".
  9692  func (s PutConfigurationSetReputationOptionsOutput) GoString() string {
  9693  	return s.String()
  9694  }
  9695  
  9696  // A request to enable or disable the ability of Amazon Pinpoint to send emails
  9697  // that use a specific configuration set.
  9698  type PutConfigurationSetSendingOptionsInput struct {
  9699  	_ struct{} `type:"structure"`
  9700  
  9701  	// The name of the configuration set that you want to enable or disable email
  9702  	// sending for.
  9703  	//
  9704  	// ConfigurationSetName is a required field
  9705  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  9706  
  9707  	// If true, email sending is enabled for the configuration set. If false, email
  9708  	// sending is disabled for the configuration set.
  9709  	SendingEnabled *bool `type:"boolean"`
  9710  }
  9711  
  9712  // String returns the string representation.
  9713  //
  9714  // API parameter values that are decorated as "sensitive" in the API will not
  9715  // be included in the string output. The member name will be present, but the
  9716  // value will be replaced with "sensitive".
  9717  func (s PutConfigurationSetSendingOptionsInput) String() string {
  9718  	return awsutil.Prettify(s)
  9719  }
  9720  
  9721  // GoString returns the string representation.
  9722  //
  9723  // API parameter values that are decorated as "sensitive" in the API will not
  9724  // be included in the string output. The member name will be present, but the
  9725  // value will be replaced with "sensitive".
  9726  func (s PutConfigurationSetSendingOptionsInput) GoString() string {
  9727  	return s.String()
  9728  }
  9729  
  9730  // Validate inspects the fields of the type to determine if they are valid.
  9731  func (s *PutConfigurationSetSendingOptionsInput) Validate() error {
  9732  	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetSendingOptionsInput"}
  9733  	if s.ConfigurationSetName == nil {
  9734  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  9735  	}
  9736  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  9737  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  9738  	}
  9739  
  9740  	if invalidParams.Len() > 0 {
  9741  		return invalidParams
  9742  	}
  9743  	return nil
  9744  }
  9745  
  9746  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  9747  func (s *PutConfigurationSetSendingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetSendingOptionsInput {
  9748  	s.ConfigurationSetName = &v
  9749  	return s
  9750  }
  9751  
  9752  // SetSendingEnabled sets the SendingEnabled field's value.
  9753  func (s *PutConfigurationSetSendingOptionsInput) SetSendingEnabled(v bool) *PutConfigurationSetSendingOptionsInput {
  9754  	s.SendingEnabled = &v
  9755  	return s
  9756  }
  9757  
  9758  // An HTTP 200 response if the request succeeds, or an error message if the
  9759  // request fails.
  9760  type PutConfigurationSetSendingOptionsOutput struct {
  9761  	_ struct{} `type:"structure" nopayload:"true"`
  9762  }
  9763  
  9764  // String returns the string representation.
  9765  //
  9766  // API parameter values that are decorated as "sensitive" in the API will not
  9767  // be included in the string output. The member name will be present, but the
  9768  // value will be replaced with "sensitive".
  9769  func (s PutConfigurationSetSendingOptionsOutput) String() string {
  9770  	return awsutil.Prettify(s)
  9771  }
  9772  
  9773  // GoString returns the string representation.
  9774  //
  9775  // API parameter values that are decorated as "sensitive" in the API will not
  9776  // be included in the string output. The member name will be present, but the
  9777  // value will be replaced with "sensitive".
  9778  func (s PutConfigurationSetSendingOptionsOutput) GoString() string {
  9779  	return s.String()
  9780  }
  9781  
  9782  // A request to add a custom domain for tracking open and click events to a
  9783  // configuration set.
  9784  type PutConfigurationSetTrackingOptionsInput struct {
  9785  	_ struct{} `type:"structure"`
  9786  
  9787  	// The name of the configuration set that you want to add a custom tracking
  9788  	// domain to.
  9789  	//
  9790  	// ConfigurationSetName is a required field
  9791  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
  9792  
  9793  	// The domain that you want to use to track open and click events.
  9794  	CustomRedirectDomain *string `type:"string"`
  9795  }
  9796  
  9797  // String returns the string representation.
  9798  //
  9799  // API parameter values that are decorated as "sensitive" in the API will not
  9800  // be included in the string output. The member name will be present, but the
  9801  // value will be replaced with "sensitive".
  9802  func (s PutConfigurationSetTrackingOptionsInput) String() string {
  9803  	return awsutil.Prettify(s)
  9804  }
  9805  
  9806  // GoString returns the string representation.
  9807  //
  9808  // API parameter values that are decorated as "sensitive" in the API will not
  9809  // be included in the string output. The member name will be present, but the
  9810  // value will be replaced with "sensitive".
  9811  func (s PutConfigurationSetTrackingOptionsInput) GoString() string {
  9812  	return s.String()
  9813  }
  9814  
  9815  // Validate inspects the fields of the type to determine if they are valid.
  9816  func (s *PutConfigurationSetTrackingOptionsInput) Validate() error {
  9817  	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetTrackingOptionsInput"}
  9818  	if s.ConfigurationSetName == nil {
  9819  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
  9820  	}
  9821  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
  9822  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
  9823  	}
  9824  
  9825  	if invalidParams.Len() > 0 {
  9826  		return invalidParams
  9827  	}
  9828  	return nil
  9829  }
  9830  
  9831  // SetConfigurationSetName sets the ConfigurationSetName field's value.
  9832  func (s *PutConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetTrackingOptionsInput {
  9833  	s.ConfigurationSetName = &v
  9834  	return s
  9835  }
  9836  
  9837  // SetCustomRedirectDomain sets the CustomRedirectDomain field's value.
  9838  func (s *PutConfigurationSetTrackingOptionsInput) SetCustomRedirectDomain(v string) *PutConfigurationSetTrackingOptionsInput {
  9839  	s.CustomRedirectDomain = &v
  9840  	return s
  9841  }
  9842  
  9843  // An HTTP 200 response if the request succeeds, or an error message if the
  9844  // request fails.
  9845  type PutConfigurationSetTrackingOptionsOutput struct {
  9846  	_ struct{} `type:"structure" nopayload:"true"`
  9847  }
  9848  
  9849  // String returns the string representation.
  9850  //
  9851  // API parameter values that are decorated as "sensitive" in the API will not
  9852  // be included in the string output. The member name will be present, but the
  9853  // value will be replaced with "sensitive".
  9854  func (s PutConfigurationSetTrackingOptionsOutput) String() string {
  9855  	return awsutil.Prettify(s)
  9856  }
  9857  
  9858  // GoString returns the string representation.
  9859  //
  9860  // API parameter values that are decorated as "sensitive" in the API will not
  9861  // be included in the string output. The member name will be present, but the
  9862  // value will be replaced with "sensitive".
  9863  func (s PutConfigurationSetTrackingOptionsOutput) GoString() string {
  9864  	return s.String()
  9865  }
  9866  
  9867  // A request to move a dedicated IP address to a dedicated IP pool.
  9868  type PutDedicatedIpInPoolInput struct {
  9869  	_ struct{} `type:"structure"`
  9870  
  9871  	// The name of the IP pool that you want to add the dedicated IP address to.
  9872  	// You have to specify an IP pool that already exists.
  9873  	//
  9874  	// DestinationPoolName is a required field
  9875  	DestinationPoolName *string `type:"string" required:"true"`
  9876  
  9877  	// The IP address that you want to move to the dedicated IP pool. The value
  9878  	// you specify has to be a dedicated IP address that's associated with your
  9879  	// Amazon Pinpoint account.
  9880  	//
  9881  	// Ip is a required field
  9882  	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
  9883  }
  9884  
  9885  // String returns the string representation.
  9886  //
  9887  // API parameter values that are decorated as "sensitive" in the API will not
  9888  // be included in the string output. The member name will be present, but the
  9889  // value will be replaced with "sensitive".
  9890  func (s PutDedicatedIpInPoolInput) String() string {
  9891  	return awsutil.Prettify(s)
  9892  }
  9893  
  9894  // GoString returns the string representation.
  9895  //
  9896  // API parameter values that are decorated as "sensitive" in the API will not
  9897  // be included in the string output. The member name will be present, but the
  9898  // value will be replaced with "sensitive".
  9899  func (s PutDedicatedIpInPoolInput) GoString() string {
  9900  	return s.String()
  9901  }
  9902  
  9903  // Validate inspects the fields of the type to determine if they are valid.
  9904  func (s *PutDedicatedIpInPoolInput) Validate() error {
  9905  	invalidParams := request.ErrInvalidParams{Context: "PutDedicatedIpInPoolInput"}
  9906  	if s.DestinationPoolName == nil {
  9907  		invalidParams.Add(request.NewErrParamRequired("DestinationPoolName"))
  9908  	}
  9909  	if s.Ip == nil {
  9910  		invalidParams.Add(request.NewErrParamRequired("Ip"))
  9911  	}
  9912  	if s.Ip != nil && len(*s.Ip) < 1 {
  9913  		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
  9914  	}
  9915  
  9916  	if invalidParams.Len() > 0 {
  9917  		return invalidParams
  9918  	}
  9919  	return nil
  9920  }
  9921  
  9922  // SetDestinationPoolName sets the DestinationPoolName field's value.
  9923  func (s *PutDedicatedIpInPoolInput) SetDestinationPoolName(v string) *PutDedicatedIpInPoolInput {
  9924  	s.DestinationPoolName = &v
  9925  	return s
  9926  }
  9927  
  9928  // SetIp sets the Ip field's value.
  9929  func (s *PutDedicatedIpInPoolInput) SetIp(v string) *PutDedicatedIpInPoolInput {
  9930  	s.Ip = &v
  9931  	return s
  9932  }
  9933  
  9934  // An HTTP 200 response if the request succeeds, or an error message if the
  9935  // request fails.
  9936  type PutDedicatedIpInPoolOutput struct {
  9937  	_ struct{} `type:"structure" nopayload:"true"`
  9938  }
  9939  
  9940  // String returns the string representation.
  9941  //
  9942  // API parameter values that are decorated as "sensitive" in the API will not
  9943  // be included in the string output. The member name will be present, but the
  9944  // value will be replaced with "sensitive".
  9945  func (s PutDedicatedIpInPoolOutput) String() string {
  9946  	return awsutil.Prettify(s)
  9947  }
  9948  
  9949  // GoString returns the string representation.
  9950  //
  9951  // API parameter values that are decorated as "sensitive" in the API will not
  9952  // be included in the string output. The member name will be present, but the
  9953  // value will be replaced with "sensitive".
  9954  func (s PutDedicatedIpInPoolOutput) GoString() string {
  9955  	return s.String()
  9956  }
  9957  
  9958  // A request to change the warm-up attributes for a dedicated IP address. This
  9959  // operation is useful when you want to resume the warm-up process for an existing
  9960  // IP address.
  9961  type PutDedicatedIpWarmupAttributesInput struct {
  9962  	_ struct{} `type:"structure"`
  9963  
  9964  	// The dedicated IP address that you want to update the warm-up attributes for.
  9965  	//
  9966  	// Ip is a required field
  9967  	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
  9968  
  9969  	// The warm-up percentage that you want to associate with the dedicated IP address.
  9970  	//
  9971  	// WarmupPercentage is a required field
  9972  	WarmupPercentage *int64 `type:"integer" required:"true"`
  9973  }
  9974  
  9975  // String returns the string representation.
  9976  //
  9977  // API parameter values that are decorated as "sensitive" in the API will not
  9978  // be included in the string output. The member name will be present, but the
  9979  // value will be replaced with "sensitive".
  9980  func (s PutDedicatedIpWarmupAttributesInput) String() string {
  9981  	return awsutil.Prettify(s)
  9982  }
  9983  
  9984  // GoString returns the string representation.
  9985  //
  9986  // API parameter values that are decorated as "sensitive" in the API will not
  9987  // be included in the string output. The member name will be present, but the
  9988  // value will be replaced with "sensitive".
  9989  func (s PutDedicatedIpWarmupAttributesInput) GoString() string {
  9990  	return s.String()
  9991  }
  9992  
  9993  // Validate inspects the fields of the type to determine if they are valid.
  9994  func (s *PutDedicatedIpWarmupAttributesInput) Validate() error {
  9995  	invalidParams := request.ErrInvalidParams{Context: "PutDedicatedIpWarmupAttributesInput"}
  9996  	if s.Ip == nil {
  9997  		invalidParams.Add(request.NewErrParamRequired("Ip"))
  9998  	}
  9999  	if s.Ip != nil && len(*s.Ip) < 1 {
 10000  		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
 10001  	}
 10002  	if s.WarmupPercentage == nil {
 10003  		invalidParams.Add(request.NewErrParamRequired("WarmupPercentage"))
 10004  	}
 10005  
 10006  	if invalidParams.Len() > 0 {
 10007  		return invalidParams
 10008  	}
 10009  	return nil
 10010  }
 10011  
 10012  // SetIp sets the Ip field's value.
 10013  func (s *PutDedicatedIpWarmupAttributesInput) SetIp(v string) *PutDedicatedIpWarmupAttributesInput {
 10014  	s.Ip = &v
 10015  	return s
 10016  }
 10017  
 10018  // SetWarmupPercentage sets the WarmupPercentage field's value.
 10019  func (s *PutDedicatedIpWarmupAttributesInput) SetWarmupPercentage(v int64) *PutDedicatedIpWarmupAttributesInput {
 10020  	s.WarmupPercentage = &v
 10021  	return s
 10022  }
 10023  
 10024  // An HTTP 200 response if the request succeeds, or an error message if the
 10025  // request fails.
 10026  type PutDedicatedIpWarmupAttributesOutput struct {
 10027  	_ struct{} `type:"structure" nopayload:"true"`
 10028  }
 10029  
 10030  // String returns the string representation.
 10031  //
 10032  // API parameter values that are decorated as "sensitive" in the API will not
 10033  // be included in the string output. The member name will be present, but the
 10034  // value will be replaced with "sensitive".
 10035  func (s PutDedicatedIpWarmupAttributesOutput) String() string {
 10036  	return awsutil.Prettify(s)
 10037  }
 10038  
 10039  // GoString returns the string representation.
 10040  //
 10041  // API parameter values that are decorated as "sensitive" in the API will not
 10042  // be included in the string output. The member name will be present, but the
 10043  // value will be replaced with "sensitive".
 10044  func (s PutDedicatedIpWarmupAttributesOutput) GoString() string {
 10045  	return s.String()
 10046  }
 10047  
 10048  // Enable or disable the Deliverability dashboard for your Amazon Pinpoint account.
 10049  // When you enable the Deliverability dashboard, you gain access to reputation,
 10050  // deliverability, and other metrics for the domains that you use to send email
 10051  // using Amazon Pinpoint. You also gain the ability to perform predictive inbox
 10052  // placement tests.
 10053  //
 10054  // When you use the Deliverability dashboard, you pay a monthly subscription
 10055  // charge, in addition to any other fees that you accrue by using Amazon Pinpoint.
 10056  // For more information about the features and cost of a Deliverability dashboard
 10057  // subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
 10058  type PutDeliverabilityDashboardOptionInput struct {
 10059  	_ struct{} `type:"structure"`
 10060  
 10061  	// Specifies whether to enable the Deliverability dashboard for your Amazon
 10062  	// Pinpoint account. To enable the dashboard, set this value to true.
 10063  	//
 10064  	// DashboardEnabled is a required field
 10065  	DashboardEnabled *bool `type:"boolean" required:"true"`
 10066  
 10067  	// An array of objects, one for each verified domain that you use to send email
 10068  	// and enabled the Deliverability dashboard for.
 10069  	SubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
 10070  }
 10071  
 10072  // String returns the string representation.
 10073  //
 10074  // API parameter values that are decorated as "sensitive" in the API will not
 10075  // be included in the string output. The member name will be present, but the
 10076  // value will be replaced with "sensitive".
 10077  func (s PutDeliverabilityDashboardOptionInput) String() string {
 10078  	return awsutil.Prettify(s)
 10079  }
 10080  
 10081  // GoString returns the string representation.
 10082  //
 10083  // API parameter values that are decorated as "sensitive" in the API will not
 10084  // be included in the string output. The member name will be present, but the
 10085  // value will be replaced with "sensitive".
 10086  func (s PutDeliverabilityDashboardOptionInput) GoString() string {
 10087  	return s.String()
 10088  }
 10089  
 10090  // Validate inspects the fields of the type to determine if they are valid.
 10091  func (s *PutDeliverabilityDashboardOptionInput) Validate() error {
 10092  	invalidParams := request.ErrInvalidParams{Context: "PutDeliverabilityDashboardOptionInput"}
 10093  	if s.DashboardEnabled == nil {
 10094  		invalidParams.Add(request.NewErrParamRequired("DashboardEnabled"))
 10095  	}
 10096  
 10097  	if invalidParams.Len() > 0 {
 10098  		return invalidParams
 10099  	}
 10100  	return nil
 10101  }
 10102  
 10103  // SetDashboardEnabled sets the DashboardEnabled field's value.
 10104  func (s *PutDeliverabilityDashboardOptionInput) SetDashboardEnabled(v bool) *PutDeliverabilityDashboardOptionInput {
 10105  	s.DashboardEnabled = &v
 10106  	return s
 10107  }
 10108  
 10109  // SetSubscribedDomains sets the SubscribedDomains field's value.
 10110  func (s *PutDeliverabilityDashboardOptionInput) SetSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *PutDeliverabilityDashboardOptionInput {
 10111  	s.SubscribedDomains = v
 10112  	return s
 10113  }
 10114  
 10115  // A response that indicates whether the Deliverability dashboard is enabled
 10116  // for your Amazon Pinpoint account.
 10117  type PutDeliverabilityDashboardOptionOutput struct {
 10118  	_ struct{} `type:"structure" nopayload:"true"`
 10119  }
 10120  
 10121  // String returns the string representation.
 10122  //
 10123  // API parameter values that are decorated as "sensitive" in the API will not
 10124  // be included in the string output. The member name will be present, but the
 10125  // value will be replaced with "sensitive".
 10126  func (s PutDeliverabilityDashboardOptionOutput) String() string {
 10127  	return awsutil.Prettify(s)
 10128  }
 10129  
 10130  // GoString returns the string representation.
 10131  //
 10132  // API parameter values that are decorated as "sensitive" in the API will not
 10133  // be included in the string output. The member name will be present, but the
 10134  // value will be replaced with "sensitive".
 10135  func (s PutDeliverabilityDashboardOptionOutput) GoString() string {
 10136  	return s.String()
 10137  }
 10138  
 10139  // A request to enable or disable DKIM signing of email that you send from an
 10140  // email identity.
 10141  type PutEmailIdentityDkimAttributesInput struct {
 10142  	_ struct{} `type:"structure"`
 10143  
 10144  	// The email identity that you want to change the DKIM settings for.
 10145  	//
 10146  	// EmailIdentity is a required field
 10147  	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
 10148  
 10149  	// Sets the DKIM signing configuration for the identity.
 10150  	//
 10151  	// When you set this value true, then the messages that Amazon Pinpoint sends
 10152  	// from the identity are DKIM-signed. When you set this value to false, then
 10153  	// the messages that Amazon Pinpoint sends from the identity aren't DKIM-signed.
 10154  	SigningEnabled *bool `type:"boolean"`
 10155  }
 10156  
 10157  // String returns the string representation.
 10158  //
 10159  // API parameter values that are decorated as "sensitive" in the API will not
 10160  // be included in the string output. The member name will be present, but the
 10161  // value will be replaced with "sensitive".
 10162  func (s PutEmailIdentityDkimAttributesInput) String() string {
 10163  	return awsutil.Prettify(s)
 10164  }
 10165  
 10166  // GoString returns the string representation.
 10167  //
 10168  // API parameter values that are decorated as "sensitive" in the API will not
 10169  // be included in the string output. The member name will be present, but the
 10170  // value will be replaced with "sensitive".
 10171  func (s PutEmailIdentityDkimAttributesInput) GoString() string {
 10172  	return s.String()
 10173  }
 10174  
 10175  // Validate inspects the fields of the type to determine if they are valid.
 10176  func (s *PutEmailIdentityDkimAttributesInput) Validate() error {
 10177  	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityDkimAttributesInput"}
 10178  	if s.EmailIdentity == nil {
 10179  		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
 10180  	}
 10181  	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
 10182  		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
 10183  	}
 10184  
 10185  	if invalidParams.Len() > 0 {
 10186  		return invalidParams
 10187  	}
 10188  	return nil
 10189  }
 10190  
 10191  // SetEmailIdentity sets the EmailIdentity field's value.
 10192  func (s *PutEmailIdentityDkimAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityDkimAttributesInput {
 10193  	s.EmailIdentity = &v
 10194  	return s
 10195  }
 10196  
 10197  // SetSigningEnabled sets the SigningEnabled field's value.
 10198  func (s *PutEmailIdentityDkimAttributesInput) SetSigningEnabled(v bool) *PutEmailIdentityDkimAttributesInput {
 10199  	s.SigningEnabled = &v
 10200  	return s
 10201  }
 10202  
 10203  // An HTTP 200 response if the request succeeds, or an error message if the
 10204  // request fails.
 10205  type PutEmailIdentityDkimAttributesOutput struct {
 10206  	_ struct{} `type:"structure" nopayload:"true"`
 10207  }
 10208  
 10209  // String returns the string representation.
 10210  //
 10211  // API parameter values that are decorated as "sensitive" in the API will not
 10212  // be included in the string output. The member name will be present, but the
 10213  // value will be replaced with "sensitive".
 10214  func (s PutEmailIdentityDkimAttributesOutput) String() string {
 10215  	return awsutil.Prettify(s)
 10216  }
 10217  
 10218  // GoString returns the string representation.
 10219  //
 10220  // API parameter values that are decorated as "sensitive" in the API will not
 10221  // be included in the string output. The member name will be present, but the
 10222  // value will be replaced with "sensitive".
 10223  func (s PutEmailIdentityDkimAttributesOutput) GoString() string {
 10224  	return s.String()
 10225  }
 10226  
 10227  // A request to set the attributes that control how bounce and complaint events
 10228  // are processed.
 10229  type PutEmailIdentityFeedbackAttributesInput struct {
 10230  	_ struct{} `type:"structure"`
 10231  
 10232  	// Sets the feedback forwarding configuration for the identity.
 10233  	//
 10234  	// If the value is true, Amazon Pinpoint sends you email notifications when
 10235  	// bounce or complaint events occur. Amazon Pinpoint sends this notification
 10236  	// to the address that you specified in the Return-Path header of the original
 10237  	// email.
 10238  	//
 10239  	// When you set this value to false, Amazon Pinpoint sends notifications through
 10240  	// other mechanisms, such as by notifying an Amazon SNS topic or another event
 10241  	// destination. You're required to have a method of tracking bounces and complaints.
 10242  	// If you haven't set up another mechanism for receiving bounce or complaint
 10243  	// notifications, Amazon Pinpoint sends an email notification when these events
 10244  	// occur (even if this setting is disabled).
 10245  	EmailForwardingEnabled *bool `type:"boolean"`
 10246  
 10247  	// The email identity that you want to configure bounce and complaint feedback
 10248  	// forwarding for.
 10249  	//
 10250  	// EmailIdentity is a required field
 10251  	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
 10252  }
 10253  
 10254  // String returns the string representation.
 10255  //
 10256  // API parameter values that are decorated as "sensitive" in the API will not
 10257  // be included in the string output. The member name will be present, but the
 10258  // value will be replaced with "sensitive".
 10259  func (s PutEmailIdentityFeedbackAttributesInput) String() string {
 10260  	return awsutil.Prettify(s)
 10261  }
 10262  
 10263  // GoString returns the string representation.
 10264  //
 10265  // API parameter values that are decorated as "sensitive" in the API will not
 10266  // be included in the string output. The member name will be present, but the
 10267  // value will be replaced with "sensitive".
 10268  func (s PutEmailIdentityFeedbackAttributesInput) GoString() string {
 10269  	return s.String()
 10270  }
 10271  
 10272  // Validate inspects the fields of the type to determine if they are valid.
 10273  func (s *PutEmailIdentityFeedbackAttributesInput) Validate() error {
 10274  	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityFeedbackAttributesInput"}
 10275  	if s.EmailIdentity == nil {
 10276  		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
 10277  	}
 10278  	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
 10279  		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
 10280  	}
 10281  
 10282  	if invalidParams.Len() > 0 {
 10283  		return invalidParams
 10284  	}
 10285  	return nil
 10286  }
 10287  
 10288  // SetEmailForwardingEnabled sets the EmailForwardingEnabled field's value.
 10289  func (s *PutEmailIdentityFeedbackAttributesInput) SetEmailForwardingEnabled(v bool) *PutEmailIdentityFeedbackAttributesInput {
 10290  	s.EmailForwardingEnabled = &v
 10291  	return s
 10292  }
 10293  
 10294  // SetEmailIdentity sets the EmailIdentity field's value.
 10295  func (s *PutEmailIdentityFeedbackAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityFeedbackAttributesInput {
 10296  	s.EmailIdentity = &v
 10297  	return s
 10298  }
 10299  
 10300  // An HTTP 200 response if the request succeeds, or an error message if the
 10301  // request fails.
 10302  type PutEmailIdentityFeedbackAttributesOutput struct {
 10303  	_ struct{} `type:"structure" nopayload:"true"`
 10304  }
 10305  
 10306  // String returns the string representation.
 10307  //
 10308  // API parameter values that are decorated as "sensitive" in the API will not
 10309  // be included in the string output. The member name will be present, but the
 10310  // value will be replaced with "sensitive".
 10311  func (s PutEmailIdentityFeedbackAttributesOutput) String() string {
 10312  	return awsutil.Prettify(s)
 10313  }
 10314  
 10315  // GoString returns the string representation.
 10316  //
 10317  // API parameter values that are decorated as "sensitive" in the API will not
 10318  // be included in the string output. The member name will be present, but the
 10319  // value will be replaced with "sensitive".
 10320  func (s PutEmailIdentityFeedbackAttributesOutput) GoString() string {
 10321  	return s.String()
 10322  }
 10323  
 10324  // A request to configure the custom MAIL FROM domain for a verified identity.
 10325  type PutEmailIdentityMailFromAttributesInput struct {
 10326  	_ struct{} `type:"structure"`
 10327  
 10328  	// The action that you want Amazon Pinpoint to take if it can't read the required
 10329  	// MX record when you send an email. When you set this value to UseDefaultValue,
 10330  	// Amazon Pinpoint uses amazonses.com as the MAIL FROM domain. When you set
 10331  	// this value to RejectMessage, Amazon Pinpoint returns a MailFromDomainNotVerified
 10332  	// error, and doesn't attempt to deliver the email.
 10333  	//
 10334  	// These behaviors are taken when the custom MAIL FROM domain configuration
 10335  	// is in the Pending, Failed, and TemporaryFailure states.
 10336  	BehaviorOnMxFailure *string `type:"string" enum:"BehaviorOnMxFailure"`
 10337  
 10338  	// The verified email identity that you want to set up the custom MAIL FROM
 10339  	// domain for.
 10340  	//
 10341  	// EmailIdentity is a required field
 10342  	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
 10343  
 10344  	// The custom MAIL FROM domain that you want the verified identity to use. The
 10345  	// MAIL FROM domain must meet the following criteria:
 10346  	//
 10347  	//    * It has to be a subdomain of the verified identity.
 10348  	//
 10349  	//    * It can't be used to receive email.
 10350  	//
 10351  	//    * It can't be used in a "From" address if the MAIL FROM domain is a destination
 10352  	//    for feedback forwarding emails.
 10353  	MailFromDomain *string `type:"string"`
 10354  }
 10355  
 10356  // String returns the string representation.
 10357  //
 10358  // API parameter values that are decorated as "sensitive" in the API will not
 10359  // be included in the string output. The member name will be present, but the
 10360  // value will be replaced with "sensitive".
 10361  func (s PutEmailIdentityMailFromAttributesInput) String() string {
 10362  	return awsutil.Prettify(s)
 10363  }
 10364  
 10365  // GoString returns the string representation.
 10366  //
 10367  // API parameter values that are decorated as "sensitive" in the API will not
 10368  // be included in the string output. The member name will be present, but the
 10369  // value will be replaced with "sensitive".
 10370  func (s PutEmailIdentityMailFromAttributesInput) GoString() string {
 10371  	return s.String()
 10372  }
 10373  
 10374  // Validate inspects the fields of the type to determine if they are valid.
 10375  func (s *PutEmailIdentityMailFromAttributesInput) Validate() error {
 10376  	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityMailFromAttributesInput"}
 10377  	if s.EmailIdentity == nil {
 10378  		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
 10379  	}
 10380  	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
 10381  		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
 10382  	}
 10383  
 10384  	if invalidParams.Len() > 0 {
 10385  		return invalidParams
 10386  	}
 10387  	return nil
 10388  }
 10389  
 10390  // SetBehaviorOnMxFailure sets the BehaviorOnMxFailure field's value.
 10391  func (s *PutEmailIdentityMailFromAttributesInput) SetBehaviorOnMxFailure(v string) *PutEmailIdentityMailFromAttributesInput {
 10392  	s.BehaviorOnMxFailure = &v
 10393  	return s
 10394  }
 10395  
 10396  // SetEmailIdentity sets the EmailIdentity field's value.
 10397  func (s *PutEmailIdentityMailFromAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityMailFromAttributesInput {
 10398  	s.EmailIdentity = &v
 10399  	return s
 10400  }
 10401  
 10402  // SetMailFromDomain sets the MailFromDomain field's value.
 10403  func (s *PutEmailIdentityMailFromAttributesInput) SetMailFromDomain(v string) *PutEmailIdentityMailFromAttributesInput {
 10404  	s.MailFromDomain = &v
 10405  	return s
 10406  }
 10407  
 10408  // An HTTP 200 response if the request succeeds, or an error message if the
 10409  // request fails.
 10410  type PutEmailIdentityMailFromAttributesOutput struct {
 10411  	_ struct{} `type:"structure" nopayload:"true"`
 10412  }
 10413  
 10414  // String returns the string representation.
 10415  //
 10416  // API parameter values that are decorated as "sensitive" in the API will not
 10417  // be included in the string output. The member name will be present, but the
 10418  // value will be replaced with "sensitive".
 10419  func (s PutEmailIdentityMailFromAttributesOutput) String() string {
 10420  	return awsutil.Prettify(s)
 10421  }
 10422  
 10423  // GoString returns the string representation.
 10424  //
 10425  // API parameter values that are decorated as "sensitive" in the API will not
 10426  // be included in the string output. The member name will be present, but the
 10427  // value will be replaced with "sensitive".
 10428  func (s PutEmailIdentityMailFromAttributesOutput) GoString() string {
 10429  	return s.String()
 10430  }
 10431  
 10432  // The raw email message.
 10433  type RawMessage struct {
 10434  	_ struct{} `type:"structure"`
 10435  
 10436  	// The raw email message. The message has to meet the following criteria:
 10437  	//
 10438  	//    * The message has to contain a header and a body, separated by one blank
 10439  	//    line.
 10440  	//
 10441  	//    * All of the required header fields must be present in the message.
 10442  	//
 10443  	//    * Each part of a multipart MIME message must be formatted properly.
 10444  	//
 10445  	//    * Attachments must be in a file format that Amazon Pinpoint supports.
 10446  	//
 10447  	//    * The entire message must be Base64 encoded.
 10448  	//
 10449  	//    * If any of the MIME parts in your message contain content that is outside
 10450  	//    of the 7-bit ASCII character range, you should encode that content to
 10451  	//    ensure that recipients' email clients render the message properly.
 10452  	//
 10453  	//    * The length of any single line of text in the message can't exceed 1,000
 10454  	//    characters. This restriction is defined in RFC 5321 (https://tools.ietf.org/html/rfc5321).
 10455  	// Data is automatically base64 encoded/decoded by the SDK.
 10456  	//
 10457  	// Data is a required field
 10458  	Data []byte `type:"blob" required:"true"`
 10459  }
 10460  
 10461  // String returns the string representation.
 10462  //
 10463  // API parameter values that are decorated as "sensitive" in the API will not
 10464  // be included in the string output. The member name will be present, but the
 10465  // value will be replaced with "sensitive".
 10466  func (s RawMessage) String() string {
 10467  	return awsutil.Prettify(s)
 10468  }
 10469  
 10470  // GoString returns the string representation.
 10471  //
 10472  // API parameter values that are decorated as "sensitive" in the API will not
 10473  // be included in the string output. The member name will be present, but the
 10474  // value will be replaced with "sensitive".
 10475  func (s RawMessage) GoString() string {
 10476  	return s.String()
 10477  }
 10478  
 10479  // Validate inspects the fields of the type to determine if they are valid.
 10480  func (s *RawMessage) Validate() error {
 10481  	invalidParams := request.ErrInvalidParams{Context: "RawMessage"}
 10482  	if s.Data == nil {
 10483  		invalidParams.Add(request.NewErrParamRequired("Data"))
 10484  	}
 10485  
 10486  	if invalidParams.Len() > 0 {
 10487  		return invalidParams
 10488  	}
 10489  	return nil
 10490  }
 10491  
 10492  // SetData sets the Data field's value.
 10493  func (s *RawMessage) SetData(v []byte) *RawMessage {
 10494  	s.Data = v
 10495  	return s
 10496  }
 10497  
 10498  // Enable or disable collection of reputation metrics for emails that you send
 10499  // using this configuration set in the current AWS Region.
 10500  type ReputationOptions struct {
 10501  	_ struct{} `type:"structure"`
 10502  
 10503  	// The date and time (in Unix time) when the reputation metrics were last given
 10504  	// a fresh start. When your account is given a fresh start, your reputation
 10505  	// metrics are calculated starting from the date of the fresh start.
 10506  	LastFreshStart *time.Time `type:"timestamp"`
 10507  
 10508  	// If true, tracking of reputation metrics is enabled for the configuration
 10509  	// set. If false, tracking of reputation metrics is disabled for the configuration
 10510  	// set.
 10511  	ReputationMetricsEnabled *bool `type:"boolean"`
 10512  }
 10513  
 10514  // String returns the string representation.
 10515  //
 10516  // API parameter values that are decorated as "sensitive" in the API will not
 10517  // be included in the string output. The member name will be present, but the
 10518  // value will be replaced with "sensitive".
 10519  func (s ReputationOptions) String() string {
 10520  	return awsutil.Prettify(s)
 10521  }
 10522  
 10523  // GoString returns the string representation.
 10524  //
 10525  // API parameter values that are decorated as "sensitive" in the API will not
 10526  // be included in the string output. The member name will be present, but the
 10527  // value will be replaced with "sensitive".
 10528  func (s ReputationOptions) GoString() string {
 10529  	return s.String()
 10530  }
 10531  
 10532  // SetLastFreshStart sets the LastFreshStart field's value.
 10533  func (s *ReputationOptions) SetLastFreshStart(v time.Time) *ReputationOptions {
 10534  	s.LastFreshStart = &v
 10535  	return s
 10536  }
 10537  
 10538  // SetReputationMetricsEnabled sets the ReputationMetricsEnabled field's value.
 10539  func (s *ReputationOptions) SetReputationMetricsEnabled(v bool) *ReputationOptions {
 10540  	s.ReputationMetricsEnabled = &v
 10541  	return s
 10542  }
 10543  
 10544  // A request to send an email message.
 10545  type SendEmailInput struct {
 10546  	_ struct{} `type:"structure"`
 10547  
 10548  	// The name of the configuration set that you want to use when sending the email.
 10549  	ConfigurationSetName *string `type:"string"`
 10550  
 10551  	// An object that contains the body of the message. You can send either a Simple
 10552  	// message or a Raw message.
 10553  	//
 10554  	// Content is a required field
 10555  	Content *EmailContent `type:"structure" required:"true"`
 10556  
 10557  	// An object that contains the recipients of the email message.
 10558  	//
 10559  	// Destination is a required field
 10560  	Destination *Destination `type:"structure" required:"true"`
 10561  
 10562  	// A list of tags, in the form of name/value pairs, to apply to an email that
 10563  	// you send using the SendEmail operation. Tags correspond to characteristics
 10564  	// of the email that you define, so that you can publish email sending events.
 10565  	EmailTags []*MessageTag `type:"list"`
 10566  
 10567  	// The address that Amazon Pinpoint should send bounce and complaint notifications
 10568  	// to.
 10569  	FeedbackForwardingEmailAddress *string `type:"string"`
 10570  
 10571  	// The email address that you want to use as the "From" address for the email.
 10572  	// The address that you specify has to be verified.
 10573  	FromEmailAddress *string `type:"string"`
 10574  
 10575  	// The "Reply-to" email addresses for the message. When the recipient replies
 10576  	// to the message, each Reply-to address receives the reply.
 10577  	ReplyToAddresses []*string `type:"list"`
 10578  }
 10579  
 10580  // String returns the string representation.
 10581  //
 10582  // API parameter values that are decorated as "sensitive" in the API will not
 10583  // be included in the string output. The member name will be present, but the
 10584  // value will be replaced with "sensitive".
 10585  func (s SendEmailInput) String() string {
 10586  	return awsutil.Prettify(s)
 10587  }
 10588  
 10589  // GoString returns the string representation.
 10590  //
 10591  // API parameter values that are decorated as "sensitive" in the API will not
 10592  // be included in the string output. The member name will be present, but the
 10593  // value will be replaced with "sensitive".
 10594  func (s SendEmailInput) GoString() string {
 10595  	return s.String()
 10596  }
 10597  
 10598  // Validate inspects the fields of the type to determine if they are valid.
 10599  func (s *SendEmailInput) Validate() error {
 10600  	invalidParams := request.ErrInvalidParams{Context: "SendEmailInput"}
 10601  	if s.Content == nil {
 10602  		invalidParams.Add(request.NewErrParamRequired("Content"))
 10603  	}
 10604  	if s.Destination == nil {
 10605  		invalidParams.Add(request.NewErrParamRequired("Destination"))
 10606  	}
 10607  	if s.Content != nil {
 10608  		if err := s.Content.Validate(); err != nil {
 10609  			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
 10610  		}
 10611  	}
 10612  	if s.EmailTags != nil {
 10613  		for i, v := range s.EmailTags {
 10614  			if v == nil {
 10615  				continue
 10616  			}
 10617  			if err := v.Validate(); err != nil {
 10618  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmailTags", i), err.(request.ErrInvalidParams))
 10619  			}
 10620  		}
 10621  	}
 10622  
 10623  	if invalidParams.Len() > 0 {
 10624  		return invalidParams
 10625  	}
 10626  	return nil
 10627  }
 10628  
 10629  // SetConfigurationSetName sets the ConfigurationSetName field's value.
 10630  func (s *SendEmailInput) SetConfigurationSetName(v string) *SendEmailInput {
 10631  	s.ConfigurationSetName = &v
 10632  	return s
 10633  }
 10634  
 10635  // SetContent sets the Content field's value.
 10636  func (s *SendEmailInput) SetContent(v *EmailContent) *SendEmailInput {
 10637  	s.Content = v
 10638  	return s
 10639  }
 10640  
 10641  // SetDestination sets the Destination field's value.
 10642  func (s *SendEmailInput) SetDestination(v *Destination) *SendEmailInput {
 10643  	s.Destination = v
 10644  	return s
 10645  }
 10646  
 10647  // SetEmailTags sets the EmailTags field's value.
 10648  func (s *SendEmailInput) SetEmailTags(v []*MessageTag) *SendEmailInput {
 10649  	s.EmailTags = v
 10650  	return s
 10651  }
 10652  
 10653  // SetFeedbackForwardingEmailAddress sets the FeedbackForwardingEmailAddress field's value.
 10654  func (s *SendEmailInput) SetFeedbackForwardingEmailAddress(v string) *SendEmailInput {
 10655  	s.FeedbackForwardingEmailAddress = &v
 10656  	return s
 10657  }
 10658  
 10659  // SetFromEmailAddress sets the FromEmailAddress field's value.
 10660  func (s *SendEmailInput) SetFromEmailAddress(v string) *SendEmailInput {
 10661  	s.FromEmailAddress = &v
 10662  	return s
 10663  }
 10664  
 10665  // SetReplyToAddresses sets the ReplyToAddresses field's value.
 10666  func (s *SendEmailInput) SetReplyToAddresses(v []*string) *SendEmailInput {
 10667  	s.ReplyToAddresses = v
 10668  	return s
 10669  }
 10670  
 10671  // A unique message ID that you receive when Amazon Pinpoint accepts an email
 10672  // for sending.
 10673  type SendEmailOutput struct {
 10674  	_ struct{} `type:"structure"`
 10675  
 10676  	// A unique identifier for the message that is generated when Amazon Pinpoint
 10677  	// accepts the message.
 10678  	//
 10679  	// It is possible for Amazon Pinpoint to accept a message without sending it.
 10680  	// This can happen when the message you're trying to send has an attachment
 10681  	// doesn't pass a virus check, or when you send a templated email that contains
 10682  	// invalid personalization content, for example.
 10683  	MessageId *string `type:"string"`
 10684  }
 10685  
 10686  // String returns the string representation.
 10687  //
 10688  // API parameter values that are decorated as "sensitive" in the API will not
 10689  // be included in the string output. The member name will be present, but the
 10690  // value will be replaced with "sensitive".
 10691  func (s SendEmailOutput) String() string {
 10692  	return awsutil.Prettify(s)
 10693  }
 10694  
 10695  // GoString returns the string representation.
 10696  //
 10697  // API parameter values that are decorated as "sensitive" in the API will not
 10698  // be included in the string output. The member name will be present, but the
 10699  // value will be replaced with "sensitive".
 10700  func (s SendEmailOutput) GoString() string {
 10701  	return s.String()
 10702  }
 10703  
 10704  // SetMessageId sets the MessageId field's value.
 10705  func (s *SendEmailOutput) SetMessageId(v string) *SendEmailOutput {
 10706  	s.MessageId = &v
 10707  	return s
 10708  }
 10709  
 10710  // An object that contains information about the per-day and per-second sending
 10711  // limits for your Amazon Pinpoint account in the current AWS Region.
 10712  type SendQuota struct {
 10713  	_ struct{} `type:"structure"`
 10714  
 10715  	// The maximum number of emails that you can send in the current AWS Region
 10716  	// over a 24-hour period. This value is also called your sending quota.
 10717  	Max24HourSend *float64 `type:"double"`
 10718  
 10719  	// The maximum number of emails that you can send per second in the current
 10720  	// AWS Region. This value is also called your maximum sending rate or your maximum
 10721  	// TPS (transactions per second) rate.
 10722  	MaxSendRate *float64 `type:"double"`
 10723  
 10724  	// The number of emails sent from your Amazon Pinpoint account in the current
 10725  	// AWS Region over the past 24 hours.
 10726  	SentLast24Hours *float64 `type:"double"`
 10727  }
 10728  
 10729  // String returns the string representation.
 10730  //
 10731  // API parameter values that are decorated as "sensitive" in the API will not
 10732  // be included in the string output. The member name will be present, but the
 10733  // value will be replaced with "sensitive".
 10734  func (s SendQuota) String() string {
 10735  	return awsutil.Prettify(s)
 10736  }
 10737  
 10738  // GoString returns the string representation.
 10739  //
 10740  // API parameter values that are decorated as "sensitive" in the API will not
 10741  // be included in the string output. The member name will be present, but the
 10742  // value will be replaced with "sensitive".
 10743  func (s SendQuota) GoString() string {
 10744  	return s.String()
 10745  }
 10746  
 10747  // SetMax24HourSend sets the Max24HourSend field's value.
 10748  func (s *SendQuota) SetMax24HourSend(v float64) *SendQuota {
 10749  	s.Max24HourSend = &v
 10750  	return s
 10751  }
 10752  
 10753  // SetMaxSendRate sets the MaxSendRate field's value.
 10754  func (s *SendQuota) SetMaxSendRate(v float64) *SendQuota {
 10755  	s.MaxSendRate = &v
 10756  	return s
 10757  }
 10758  
 10759  // SetSentLast24Hours sets the SentLast24Hours field's value.
 10760  func (s *SendQuota) SetSentLast24Hours(v float64) *SendQuota {
 10761  	s.SentLast24Hours = &v
 10762  	return s
 10763  }
 10764  
 10765  // Used to enable or disable email sending for messages that use this configuration
 10766  // set in the current AWS Region.
 10767  type SendingOptions struct {
 10768  	_ struct{} `type:"structure"`
 10769  
 10770  	// If true, email sending is enabled for the configuration set. If false, email
 10771  	// sending is disabled for the configuration set.
 10772  	SendingEnabled *bool `type:"boolean"`
 10773  }
 10774  
 10775  // String returns the string representation.
 10776  //
 10777  // API parameter values that are decorated as "sensitive" in the API will not
 10778  // be included in the string output. The member name will be present, but the
 10779  // value will be replaced with "sensitive".
 10780  func (s SendingOptions) String() string {
 10781  	return awsutil.Prettify(s)
 10782  }
 10783  
 10784  // GoString returns the string representation.
 10785  //
 10786  // API parameter values that are decorated as "sensitive" in the API will not
 10787  // be included in the string output. The member name will be present, but the
 10788  // value will be replaced with "sensitive".
 10789  func (s SendingOptions) GoString() string {
 10790  	return s.String()
 10791  }
 10792  
 10793  // SetSendingEnabled sets the SendingEnabled field's value.
 10794  func (s *SendingOptions) SetSendingEnabled(v bool) *SendingOptions {
 10795  	s.SendingEnabled = &v
 10796  	return s
 10797  }
 10798  
 10799  // The message can't be sent because the account's ability to send email is
 10800  // currently paused.
 10801  type SendingPausedException struct {
 10802  	_            struct{}                  `type:"structure"`
 10803  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10804  
 10805  	Message_ *string `locationName:"message" type:"string"`
 10806  }
 10807  
 10808  // String returns the string representation.
 10809  //
 10810  // API parameter values that are decorated as "sensitive" in the API will not
 10811  // be included in the string output. The member name will be present, but the
 10812  // value will be replaced with "sensitive".
 10813  func (s SendingPausedException) String() string {
 10814  	return awsutil.Prettify(s)
 10815  }
 10816  
 10817  // GoString returns the string representation.
 10818  //
 10819  // API parameter values that are decorated as "sensitive" in the API will not
 10820  // be included in the string output. The member name will be present, but the
 10821  // value will be replaced with "sensitive".
 10822  func (s SendingPausedException) GoString() string {
 10823  	return s.String()
 10824  }
 10825  
 10826  func newErrorSendingPausedException(v protocol.ResponseMetadata) error {
 10827  	return &SendingPausedException{
 10828  		RespMetadata: v,
 10829  	}
 10830  }
 10831  
 10832  // Code returns the exception type name.
 10833  func (s *SendingPausedException) Code() string {
 10834  	return "SendingPausedException"
 10835  }
 10836  
 10837  // Message returns the exception's message.
 10838  func (s *SendingPausedException) Message() string {
 10839  	if s.Message_ != nil {
 10840  		return *s.Message_
 10841  	}
 10842  	return ""
 10843  }
 10844  
 10845  // OrigErr always returns nil, satisfies awserr.Error interface.
 10846  func (s *SendingPausedException) OrigErr() error {
 10847  	return nil
 10848  }
 10849  
 10850  func (s *SendingPausedException) Error() string {
 10851  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 10852  }
 10853  
 10854  // Status code returns the HTTP status code for the request's response error.
 10855  func (s *SendingPausedException) StatusCode() int {
 10856  	return s.RespMetadata.StatusCode
 10857  }
 10858  
 10859  // RequestID returns the service's response RequestID for request.
 10860  func (s *SendingPausedException) RequestID() string {
 10861  	return s.RespMetadata.RequestID
 10862  }
 10863  
 10864  // An object that defines an Amazon SNS destination for email events. You can
 10865  // use Amazon SNS to send notification when certain email events occur.
 10866  type SnsDestination struct {
 10867  	_ struct{} `type:"structure"`
 10868  
 10869  	// The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish
 10870  	// email events to. For more information about Amazon SNS topics, see the Amazon
 10871  	// SNS Developer Guide (https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
 10872  	//
 10873  	// TopicArn is a required field
 10874  	TopicArn *string `type:"string" required:"true"`
 10875  }
 10876  
 10877  // String returns the string representation.
 10878  //
 10879  // API parameter values that are decorated as "sensitive" in the API will not
 10880  // be included in the string output. The member name will be present, but the
 10881  // value will be replaced with "sensitive".
 10882  func (s SnsDestination) String() string {
 10883  	return awsutil.Prettify(s)
 10884  }
 10885  
 10886  // GoString returns the string representation.
 10887  //
 10888  // API parameter values that are decorated as "sensitive" in the API will not
 10889  // be included in the string output. The member name will be present, but the
 10890  // value will be replaced with "sensitive".
 10891  func (s SnsDestination) GoString() string {
 10892  	return s.String()
 10893  }
 10894  
 10895  // Validate inspects the fields of the type to determine if they are valid.
 10896  func (s *SnsDestination) Validate() error {
 10897  	invalidParams := request.ErrInvalidParams{Context: "SnsDestination"}
 10898  	if s.TopicArn == nil {
 10899  		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
 10900  	}
 10901  
 10902  	if invalidParams.Len() > 0 {
 10903  		return invalidParams
 10904  	}
 10905  	return nil
 10906  }
 10907  
 10908  // SetTopicArn sets the TopicArn field's value.
 10909  func (s *SnsDestination) SetTopicArn(v string) *SnsDestination {
 10910  	s.TopicArn = &v
 10911  	return s
 10912  }
 10913  
 10914  // An object that defines the tags that are associated with a resource. A tag
 10915  // is a label that you optionally define and associate with a resource in Amazon
 10916  // Pinpoint. Tags can help you categorize and manage resources in different
 10917  // ways, such as by purpose, owner, environment, or other criteria. A resource
 10918  // can have as many as 50 tags.
 10919  //
 10920  // Each tag consists of a required tag key and an associated tag value, both
 10921  // of which you define. A tag key is a general label that acts as a category
 10922  // for a more specific tag value. A tag value acts as a descriptor within a
 10923  // tag key. A tag key can contain as many as 128 characters. A tag value can
 10924  // contain as many as 256 characters. The characters can be Unicode letters,
 10925  // digits, white space, or one of the following symbols: _ . : / = + -. The
 10926  // following additional restrictions apply to tags:
 10927  //
 10928  //    * Tag keys and values are case sensitive.
 10929  //
 10930  //    * For each associated resource, each tag key must be unique and it can
 10931  //    have only one value.
 10932  //
 10933  //    * The aws: prefix is reserved for use by AWS; you can’t use it in any
 10934  //    tag keys or values that you define. In addition, you can't edit or remove
 10935  //    tag keys or values that use this prefix. Tags that use this prefix don’t
 10936  //    count against the limit of 50 tags per resource.
 10937  //
 10938  //    * You can associate tags with public or shared resources, but the tags
 10939  //    are available only for your AWS account, not any other accounts that share
 10940  //    the resource. In addition, the tags are available only for resources that
 10941  //    are located in the specified AWS Region for your AWS account.
 10942  type Tag struct {
 10943  	_ struct{} `type:"structure"`
 10944  
 10945  	// One part of a key-value pair that defines a tag. The maximum length of a
 10946  	// tag key is 128 characters. The minimum length is 1 character.
 10947  	//
 10948  	// Key is a required field
 10949  	Key *string `type:"string" required:"true"`
 10950  
 10951  	// The optional part of a key-value pair that defines a tag. The maximum length
 10952  	// of a tag value is 256 characters. The minimum length is 0 characters. If
 10953  	// you don’t want a resource to have a specific tag value, don’t specify
 10954  	// a value for this parameter. Amazon Pinpoint will set the value to an empty
 10955  	// string.
 10956  	//
 10957  	// Value is a required field
 10958  	Value *string `type:"string" required:"true"`
 10959  }
 10960  
 10961  // String returns the string representation.
 10962  //
 10963  // API parameter values that are decorated as "sensitive" in the API will not
 10964  // be included in the string output. The member name will be present, but the
 10965  // value will be replaced with "sensitive".
 10966  func (s Tag) String() string {
 10967  	return awsutil.Prettify(s)
 10968  }
 10969  
 10970  // GoString returns the string representation.
 10971  //
 10972  // API parameter values that are decorated as "sensitive" in the API will not
 10973  // be included in the string output. The member name will be present, but the
 10974  // value will be replaced with "sensitive".
 10975  func (s Tag) GoString() string {
 10976  	return s.String()
 10977  }
 10978  
 10979  // Validate inspects the fields of the type to determine if they are valid.
 10980  func (s *Tag) Validate() error {
 10981  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 10982  	if s.Key == nil {
 10983  		invalidParams.Add(request.NewErrParamRequired("Key"))
 10984  	}
 10985  	if s.Value == nil {
 10986  		invalidParams.Add(request.NewErrParamRequired("Value"))
 10987  	}
 10988  
 10989  	if invalidParams.Len() > 0 {
 10990  		return invalidParams
 10991  	}
 10992  	return nil
 10993  }
 10994  
 10995  // SetKey sets the Key field's value.
 10996  func (s *Tag) SetKey(v string) *Tag {
 10997  	s.Key = &v
 10998  	return s
 10999  }
 11000  
 11001  // SetValue sets the Value field's value.
 11002  func (s *Tag) SetValue(v string) *Tag {
 11003  	s.Value = &v
 11004  	return s
 11005  }
 11006  
 11007  type TagResourceInput struct {
 11008  	_ struct{} `type:"structure"`
 11009  
 11010  	// The Amazon Resource Name (ARN) of the resource that you want to add one or
 11011  	// more tags to.
 11012  	//
 11013  	// ResourceArn is a required field
 11014  	ResourceArn *string `type:"string" required:"true"`
 11015  
 11016  	// A list of the tags that you want to add to the resource. A tag consists of
 11017  	// a required tag key (Key) and an associated tag value (Value). The maximum
 11018  	// length of a tag key is 128 characters. The maximum length of a tag value
 11019  	// is 256 characters.
 11020  	//
 11021  	// Tags is a required field
 11022  	Tags []*Tag `type:"list" required:"true"`
 11023  }
 11024  
 11025  // String returns the string representation.
 11026  //
 11027  // API parameter values that are decorated as "sensitive" in the API will not
 11028  // be included in the string output. The member name will be present, but the
 11029  // value will be replaced with "sensitive".
 11030  func (s TagResourceInput) String() string {
 11031  	return awsutil.Prettify(s)
 11032  }
 11033  
 11034  // GoString returns the string representation.
 11035  //
 11036  // API parameter values that are decorated as "sensitive" in the API will not
 11037  // be included in the string output. The member name will be present, but the
 11038  // value will be replaced with "sensitive".
 11039  func (s TagResourceInput) GoString() string {
 11040  	return s.String()
 11041  }
 11042  
 11043  // Validate inspects the fields of the type to determine if they are valid.
 11044  func (s *TagResourceInput) Validate() error {
 11045  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 11046  	if s.ResourceArn == nil {
 11047  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 11048  	}
 11049  	if s.Tags == nil {
 11050  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 11051  	}
 11052  	if s.Tags != nil {
 11053  		for i, v := range s.Tags {
 11054  			if v == nil {
 11055  				continue
 11056  			}
 11057  			if err := v.Validate(); err != nil {
 11058  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11059  			}
 11060  		}
 11061  	}
 11062  
 11063  	if invalidParams.Len() > 0 {
 11064  		return invalidParams
 11065  	}
 11066  	return nil
 11067  }
 11068  
 11069  // SetResourceArn sets the ResourceArn field's value.
 11070  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 11071  	s.ResourceArn = &v
 11072  	return s
 11073  }
 11074  
 11075  // SetTags sets the Tags field's value.
 11076  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 11077  	s.Tags = v
 11078  	return s
 11079  }
 11080  
 11081  type TagResourceOutput struct {
 11082  	_ struct{} `type:"structure" nopayload:"true"`
 11083  }
 11084  
 11085  // String returns the string representation.
 11086  //
 11087  // API parameter values that are decorated as "sensitive" in the API will not
 11088  // be included in the string output. The member name will be present, but the
 11089  // value will be replaced with "sensitive".
 11090  func (s TagResourceOutput) String() string {
 11091  	return awsutil.Prettify(s)
 11092  }
 11093  
 11094  // GoString returns the string representation.
 11095  //
 11096  // API parameter values that are decorated as "sensitive" in the API will not
 11097  // be included in the string output. The member name will be present, but the
 11098  // value will be replaced with "sensitive".
 11099  func (s TagResourceOutput) GoString() string {
 11100  	return s.String()
 11101  }
 11102  
 11103  type Template struct {
 11104  	_ struct{} `type:"structure"`
 11105  
 11106  	// The Amazon Resource Name (ARN) of the template.
 11107  	TemplateArn *string `type:"string"`
 11108  
 11109  	// An object that defines the values to use for message variables in the template.
 11110  	// This object is a set of key-value pairs. Each key defines a message variable
 11111  	// in the template. The corresponding value defines the value to use for that
 11112  	// variable.
 11113  	TemplateData *string `type:"string"`
 11114  }
 11115  
 11116  // String returns the string representation.
 11117  //
 11118  // API parameter values that are decorated as "sensitive" in the API will not
 11119  // be included in the string output. The member name will be present, but the
 11120  // value will be replaced with "sensitive".
 11121  func (s Template) String() string {
 11122  	return awsutil.Prettify(s)
 11123  }
 11124  
 11125  // GoString returns the string representation.
 11126  //
 11127  // API parameter values that are decorated as "sensitive" in the API will not
 11128  // be included in the string output. The member name will be present, but the
 11129  // value will be replaced with "sensitive".
 11130  func (s Template) GoString() string {
 11131  	return s.String()
 11132  }
 11133  
 11134  // SetTemplateArn sets the TemplateArn field's value.
 11135  func (s *Template) SetTemplateArn(v string) *Template {
 11136  	s.TemplateArn = &v
 11137  	return s
 11138  }
 11139  
 11140  // SetTemplateData sets the TemplateData field's value.
 11141  func (s *Template) SetTemplateData(v string) *Template {
 11142  	s.TemplateData = &v
 11143  	return s
 11144  }
 11145  
 11146  // Too many requests have been made to the operation.
 11147  type TooManyRequestsException struct {
 11148  	_            struct{}                  `type:"structure"`
 11149  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11150  
 11151  	Message_ *string `locationName:"message" type:"string"`
 11152  }
 11153  
 11154  // String returns the string representation.
 11155  //
 11156  // API parameter values that are decorated as "sensitive" in the API will not
 11157  // be included in the string output. The member name will be present, but the
 11158  // value will be replaced with "sensitive".
 11159  func (s TooManyRequestsException) String() string {
 11160  	return awsutil.Prettify(s)
 11161  }
 11162  
 11163  // GoString returns the string representation.
 11164  //
 11165  // API parameter values that are decorated as "sensitive" in the API will not
 11166  // be included in the string output. The member name will be present, but the
 11167  // value will be replaced with "sensitive".
 11168  func (s TooManyRequestsException) GoString() string {
 11169  	return s.String()
 11170  }
 11171  
 11172  func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
 11173  	return &TooManyRequestsException{
 11174  		RespMetadata: v,
 11175  	}
 11176  }
 11177  
 11178  // Code returns the exception type name.
 11179  func (s *TooManyRequestsException) Code() string {
 11180  	return "TooManyRequestsException"
 11181  }
 11182  
 11183  // Message returns the exception's message.
 11184  func (s *TooManyRequestsException) Message() string {
 11185  	if s.Message_ != nil {
 11186  		return *s.Message_
 11187  	}
 11188  	return ""
 11189  }
 11190  
 11191  // OrigErr always returns nil, satisfies awserr.Error interface.
 11192  func (s *TooManyRequestsException) OrigErr() error {
 11193  	return nil
 11194  }
 11195  
 11196  func (s *TooManyRequestsException) Error() string {
 11197  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11198  }
 11199  
 11200  // Status code returns the HTTP status code for the request's response error.
 11201  func (s *TooManyRequestsException) StatusCode() int {
 11202  	return s.RespMetadata.StatusCode
 11203  }
 11204  
 11205  // RequestID returns the service's response RequestID for request.
 11206  func (s *TooManyRequestsException) RequestID() string {
 11207  	return s.RespMetadata.RequestID
 11208  }
 11209  
 11210  // An object that defines the tracking options for a configuration set. When
 11211  // you use Amazon Pinpoint to send an email, it contains an invisible image
 11212  // that's used to track when recipients open your email. If your email contains
 11213  // links, those links are changed slightly in order to track when recipients
 11214  // click them.
 11215  //
 11216  // These images and links include references to a domain operated by AWS. You
 11217  // can optionally configure Amazon Pinpoint to use a domain that you operate
 11218  // for these images and links.
 11219  type TrackingOptions struct {
 11220  	_ struct{} `type:"structure"`
 11221  
 11222  	// The domain that you want to use for tracking open and click events.
 11223  	//
 11224  	// CustomRedirectDomain is a required field
 11225  	CustomRedirectDomain *string `type:"string" required:"true"`
 11226  }
 11227  
 11228  // String returns the string representation.
 11229  //
 11230  // API parameter values that are decorated as "sensitive" in the API will not
 11231  // be included in the string output. The member name will be present, but the
 11232  // value will be replaced with "sensitive".
 11233  func (s TrackingOptions) String() string {
 11234  	return awsutil.Prettify(s)
 11235  }
 11236  
 11237  // GoString returns the string representation.
 11238  //
 11239  // API parameter values that are decorated as "sensitive" in the API will not
 11240  // be included in the string output. The member name will be present, but the
 11241  // value will be replaced with "sensitive".
 11242  func (s TrackingOptions) GoString() string {
 11243  	return s.String()
 11244  }
 11245  
 11246  // Validate inspects the fields of the type to determine if they are valid.
 11247  func (s *TrackingOptions) Validate() error {
 11248  	invalidParams := request.ErrInvalidParams{Context: "TrackingOptions"}
 11249  	if s.CustomRedirectDomain == nil {
 11250  		invalidParams.Add(request.NewErrParamRequired("CustomRedirectDomain"))
 11251  	}
 11252  
 11253  	if invalidParams.Len() > 0 {
 11254  		return invalidParams
 11255  	}
 11256  	return nil
 11257  }
 11258  
 11259  // SetCustomRedirectDomain sets the CustomRedirectDomain field's value.
 11260  func (s *TrackingOptions) SetCustomRedirectDomain(v string) *TrackingOptions {
 11261  	s.CustomRedirectDomain = &v
 11262  	return s
 11263  }
 11264  
 11265  type UntagResourceInput struct {
 11266  	_ struct{} `type:"structure" nopayload:"true"`
 11267  
 11268  	// The Amazon Resource Name (ARN) of the resource that you want to remove one
 11269  	// or more tags from.
 11270  	//
 11271  	// ResourceArn is a required field
 11272  	ResourceArn *string `location:"querystring" locationName:"ResourceArn" type:"string" required:"true"`
 11273  
 11274  	// The tags (tag keys) that you want to remove from the resource. When you specify
 11275  	// a tag key, the action removes both that key and its associated tag value.
 11276  	//
 11277  	// To remove more than one tag from the resource, append the TagKeys parameter
 11278  	// and argument for each additional tag to remove, separated by an ampersand.
 11279  	// For example: /v1/email/tags?ResourceArn=ResourceArn&TagKeys=Key1&TagKeys=Key2
 11280  	//
 11281  	// TagKeys is a required field
 11282  	TagKeys []*string `location:"querystring" locationName:"TagKeys" type:"list" required:"true"`
 11283  }
 11284  
 11285  // String returns the string representation.
 11286  //
 11287  // API parameter values that are decorated as "sensitive" in the API will not
 11288  // be included in the string output. The member name will be present, but the
 11289  // value will be replaced with "sensitive".
 11290  func (s UntagResourceInput) String() string {
 11291  	return awsutil.Prettify(s)
 11292  }
 11293  
 11294  // GoString returns the string representation.
 11295  //
 11296  // API parameter values that are decorated as "sensitive" in the API will not
 11297  // be included in the string output. The member name will be present, but the
 11298  // value will be replaced with "sensitive".
 11299  func (s UntagResourceInput) GoString() string {
 11300  	return s.String()
 11301  }
 11302  
 11303  // Validate inspects the fields of the type to determine if they are valid.
 11304  func (s *UntagResourceInput) Validate() error {
 11305  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 11306  	if s.ResourceArn == nil {
 11307  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 11308  	}
 11309  	if s.TagKeys == nil {
 11310  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 11311  	}
 11312  
 11313  	if invalidParams.Len() > 0 {
 11314  		return invalidParams
 11315  	}
 11316  	return nil
 11317  }
 11318  
 11319  // SetResourceArn sets the ResourceArn field's value.
 11320  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 11321  	s.ResourceArn = &v
 11322  	return s
 11323  }
 11324  
 11325  // SetTagKeys sets the TagKeys field's value.
 11326  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 11327  	s.TagKeys = v
 11328  	return s
 11329  }
 11330  
 11331  type UntagResourceOutput struct {
 11332  	_ struct{} `type:"structure" nopayload:"true"`
 11333  }
 11334  
 11335  // String returns the string representation.
 11336  //
 11337  // API parameter values that are decorated as "sensitive" in the API will not
 11338  // be included in the string output. The member name will be present, but the
 11339  // value will be replaced with "sensitive".
 11340  func (s UntagResourceOutput) String() string {
 11341  	return awsutil.Prettify(s)
 11342  }
 11343  
 11344  // GoString returns the string representation.
 11345  //
 11346  // API parameter values that are decorated as "sensitive" in the API will not
 11347  // be included in the string output. The member name will be present, but the
 11348  // value will be replaced with "sensitive".
 11349  func (s UntagResourceOutput) GoString() string {
 11350  	return s.String()
 11351  }
 11352  
 11353  // A request to change the settings for an event destination for a configuration
 11354  // set.
 11355  type UpdateConfigurationSetEventDestinationInput struct {
 11356  	_ struct{} `type:"structure"`
 11357  
 11358  	// The name of the configuration set that contains the event destination that
 11359  	// you want to modify.
 11360  	//
 11361  	// ConfigurationSetName is a required field
 11362  	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
 11363  
 11364  	// An object that defines the event destination.
 11365  	//
 11366  	// EventDestination is a required field
 11367  	EventDestination *EventDestinationDefinition `type:"structure" required:"true"`
 11368  
 11369  	// The name of the event destination that you want to modify.
 11370  	//
 11371  	// EventDestinationName is a required field
 11372  	EventDestinationName *string `location:"uri" locationName:"EventDestinationName" type:"string" required:"true"`
 11373  }
 11374  
 11375  // String returns the string representation.
 11376  //
 11377  // API parameter values that are decorated as "sensitive" in the API will not
 11378  // be included in the string output. The member name will be present, but the
 11379  // value will be replaced with "sensitive".
 11380  func (s UpdateConfigurationSetEventDestinationInput) String() string {
 11381  	return awsutil.Prettify(s)
 11382  }
 11383  
 11384  // GoString returns the string representation.
 11385  //
 11386  // API parameter values that are decorated as "sensitive" in the API will not
 11387  // be included in the string output. The member name will be present, but the
 11388  // value will be replaced with "sensitive".
 11389  func (s UpdateConfigurationSetEventDestinationInput) GoString() string {
 11390  	return s.String()
 11391  }
 11392  
 11393  // Validate inspects the fields of the type to determine if they are valid.
 11394  func (s *UpdateConfigurationSetEventDestinationInput) Validate() error {
 11395  	invalidParams := request.ErrInvalidParams{Context: "UpdateConfigurationSetEventDestinationInput"}
 11396  	if s.ConfigurationSetName == nil {
 11397  		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
 11398  	}
 11399  	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
 11400  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
 11401  	}
 11402  	if s.EventDestination == nil {
 11403  		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
 11404  	}
 11405  	if s.EventDestinationName == nil {
 11406  		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
 11407  	}
 11408  	if s.EventDestinationName != nil && len(*s.EventDestinationName) < 1 {
 11409  		invalidParams.Add(request.NewErrParamMinLen("EventDestinationName", 1))
 11410  	}
 11411  	if s.EventDestination != nil {
 11412  		if err := s.EventDestination.Validate(); err != nil {
 11413  			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
 11414  		}
 11415  	}
 11416  
 11417  	if invalidParams.Len() > 0 {
 11418  		return invalidParams
 11419  	}
 11420  	return nil
 11421  }
 11422  
 11423  // SetConfigurationSetName sets the ConfigurationSetName field's value.
 11424  func (s *UpdateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *UpdateConfigurationSetEventDestinationInput {
 11425  	s.ConfigurationSetName = &v
 11426  	return s
 11427  }
 11428  
 11429  // SetEventDestination sets the EventDestination field's value.
 11430  func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestinationDefinition) *UpdateConfigurationSetEventDestinationInput {
 11431  	s.EventDestination = v
 11432  	return s
 11433  }
 11434  
 11435  // SetEventDestinationName sets the EventDestinationName field's value.
 11436  func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *UpdateConfigurationSetEventDestinationInput {
 11437  	s.EventDestinationName = &v
 11438  	return s
 11439  }
 11440  
 11441  // An HTTP 200 response if the request succeeds, or an error message if the
 11442  // request fails.
 11443  type UpdateConfigurationSetEventDestinationOutput struct {
 11444  	_ struct{} `type:"structure" nopayload:"true"`
 11445  }
 11446  
 11447  // String returns the string representation.
 11448  //
 11449  // API parameter values that are decorated as "sensitive" in the API will not
 11450  // be included in the string output. The member name will be present, but the
 11451  // value will be replaced with "sensitive".
 11452  func (s UpdateConfigurationSetEventDestinationOutput) String() string {
 11453  	return awsutil.Prettify(s)
 11454  }
 11455  
 11456  // GoString returns the string representation.
 11457  //
 11458  // API parameter values that are decorated as "sensitive" in the API will not
 11459  // be included in the string output. The member name will be present, but the
 11460  // value will be replaced with "sensitive".
 11461  func (s UpdateConfigurationSetEventDestinationOutput) GoString() string {
 11462  	return s.String()
 11463  }
 11464  
 11465  // An object that contains information about the amount of email that was delivered
 11466  // to recipients.
 11467  type VolumeStatistics struct {
 11468  	_ struct{} `type:"structure"`
 11469  
 11470  	// The total number of emails that arrived in recipients' inboxes.
 11471  	InboxRawCount *int64 `type:"long"`
 11472  
 11473  	// An estimate of the percentage of emails sent from the current domain that
 11474  	// will arrive in recipients' inboxes.
 11475  	ProjectedInbox *int64 `type:"long"`
 11476  
 11477  	// An estimate of the percentage of emails sent from the current domain that
 11478  	// will arrive in recipients' spam or junk mail folders.
 11479  	ProjectedSpam *int64 `type:"long"`
 11480  
 11481  	// The total number of emails that arrived in recipients' spam or junk mail
 11482  	// folders.
 11483  	SpamRawCount *int64 `type:"long"`
 11484  }
 11485  
 11486  // String returns the string representation.
 11487  //
 11488  // API parameter values that are decorated as "sensitive" in the API will not
 11489  // be included in the string output. The member name will be present, but the
 11490  // value will be replaced with "sensitive".
 11491  func (s VolumeStatistics) String() string {
 11492  	return awsutil.Prettify(s)
 11493  }
 11494  
 11495  // GoString returns the string representation.
 11496  //
 11497  // API parameter values that are decorated as "sensitive" in the API will not
 11498  // be included in the string output. The member name will be present, but the
 11499  // value will be replaced with "sensitive".
 11500  func (s VolumeStatistics) GoString() string {
 11501  	return s.String()
 11502  }
 11503  
 11504  // SetInboxRawCount sets the InboxRawCount field's value.
 11505  func (s *VolumeStatistics) SetInboxRawCount(v int64) *VolumeStatistics {
 11506  	s.InboxRawCount = &v
 11507  	return s
 11508  }
 11509  
 11510  // SetProjectedInbox sets the ProjectedInbox field's value.
 11511  func (s *VolumeStatistics) SetProjectedInbox(v int64) *VolumeStatistics {
 11512  	s.ProjectedInbox = &v
 11513  	return s
 11514  }
 11515  
 11516  // SetProjectedSpam sets the ProjectedSpam field's value.
 11517  func (s *VolumeStatistics) SetProjectedSpam(v int64) *VolumeStatistics {
 11518  	s.ProjectedSpam = &v
 11519  	return s
 11520  }
 11521  
 11522  // SetSpamRawCount sets the SpamRawCount field's value.
 11523  func (s *VolumeStatistics) SetSpamRawCount(v int64) *VolumeStatistics {
 11524  	s.SpamRawCount = &v
 11525  	return s
 11526  }
 11527  
 11528  // The action that you want Amazon Pinpoint to take if it can't read the required
 11529  // MX record for a custom MAIL FROM domain. When you set this value to UseDefaultValue,
 11530  // Amazon Pinpoint uses amazonses.com as the MAIL FROM domain. When you set
 11531  // this value to RejectMessage, Amazon Pinpoint returns a MailFromDomainNotVerified
 11532  // error, and doesn't attempt to deliver the email.
 11533  //
 11534  // These behaviors are taken when the custom MAIL FROM domain configuration
 11535  // is in the Pending, Failed, and TemporaryFailure states.
 11536  const (
 11537  	// BehaviorOnMxFailureUseDefaultValue is a BehaviorOnMxFailure enum value
 11538  	BehaviorOnMxFailureUseDefaultValue = "USE_DEFAULT_VALUE"
 11539  
 11540  	// BehaviorOnMxFailureRejectMessage is a BehaviorOnMxFailure enum value
 11541  	BehaviorOnMxFailureRejectMessage = "REJECT_MESSAGE"
 11542  )
 11543  
 11544  // BehaviorOnMxFailure_Values returns all elements of the BehaviorOnMxFailure enum
 11545  func BehaviorOnMxFailure_Values() []string {
 11546  	return []string{
 11547  		BehaviorOnMxFailureUseDefaultValue,
 11548  		BehaviorOnMxFailureRejectMessage,
 11549  	}
 11550  }
 11551  
 11552  // The current status of your Deliverability dashboard subscription. If this
 11553  // value is PENDING_EXPIRATION, your subscription is scheduled to expire at
 11554  // the end of the current calendar month.
 11555  const (
 11556  	// DeliverabilityDashboardAccountStatusActive is a DeliverabilityDashboardAccountStatus enum value
 11557  	DeliverabilityDashboardAccountStatusActive = "ACTIVE"
 11558  
 11559  	// DeliverabilityDashboardAccountStatusPendingExpiration is a DeliverabilityDashboardAccountStatus enum value
 11560  	DeliverabilityDashboardAccountStatusPendingExpiration = "PENDING_EXPIRATION"
 11561  
 11562  	// DeliverabilityDashboardAccountStatusDisabled is a DeliverabilityDashboardAccountStatus enum value
 11563  	DeliverabilityDashboardAccountStatusDisabled = "DISABLED"
 11564  )
 11565  
 11566  // DeliverabilityDashboardAccountStatus_Values returns all elements of the DeliverabilityDashboardAccountStatus enum
 11567  func DeliverabilityDashboardAccountStatus_Values() []string {
 11568  	return []string{
 11569  		DeliverabilityDashboardAccountStatusActive,
 11570  		DeliverabilityDashboardAccountStatusPendingExpiration,
 11571  		DeliverabilityDashboardAccountStatusDisabled,
 11572  	}
 11573  }
 11574  
 11575  // The status of a predictive inbox placement test. If the status is IN_PROGRESS,
 11576  // then the predictive inbox placement test is currently running. Predictive
 11577  // inbox placement tests are usually complete within 24 hours of creating the
 11578  // test. If the status is COMPLETE, then the test is finished, and you can use
 11579  // the GetDeliverabilityTestReport operation to view the results of the test.
 11580  const (
 11581  	// DeliverabilityTestStatusInProgress is a DeliverabilityTestStatus enum value
 11582  	DeliverabilityTestStatusInProgress = "IN_PROGRESS"
 11583  
 11584  	// DeliverabilityTestStatusCompleted is a DeliverabilityTestStatus enum value
 11585  	DeliverabilityTestStatusCompleted = "COMPLETED"
 11586  )
 11587  
 11588  // DeliverabilityTestStatus_Values returns all elements of the DeliverabilityTestStatus enum
 11589  func DeliverabilityTestStatus_Values() []string {
 11590  	return []string{
 11591  		DeliverabilityTestStatusInProgress,
 11592  		DeliverabilityTestStatusCompleted,
 11593  	}
 11594  }
 11595  
 11596  // The location where Amazon Pinpoint finds the value of a dimension to publish
 11597  // to Amazon CloudWatch. If you want Amazon Pinpoint to use the message tags
 11598  // that you specify using an X-SES-MESSAGE-TAGS header or a parameter to the
 11599  // SendEmail/SendRawEmail API, choose messageTag. If you want Amazon Pinpoint
 11600  // to use your own email headers, choose emailHeader. If you want Amazon Pinpoint
 11601  // to use link tags, choose linkTags.
 11602  const (
 11603  	// DimensionValueSourceMessageTag is a DimensionValueSource enum value
 11604  	DimensionValueSourceMessageTag = "MESSAGE_TAG"
 11605  
 11606  	// DimensionValueSourceEmailHeader is a DimensionValueSource enum value
 11607  	DimensionValueSourceEmailHeader = "EMAIL_HEADER"
 11608  
 11609  	// DimensionValueSourceLinkTag is a DimensionValueSource enum value
 11610  	DimensionValueSourceLinkTag = "LINK_TAG"
 11611  )
 11612  
 11613  // DimensionValueSource_Values returns all elements of the DimensionValueSource enum
 11614  func DimensionValueSource_Values() []string {
 11615  	return []string{
 11616  		DimensionValueSourceMessageTag,
 11617  		DimensionValueSourceEmailHeader,
 11618  		DimensionValueSourceLinkTag,
 11619  	}
 11620  }
 11621  
 11622  // The DKIM authentication status of the identity. The status can be one of
 11623  // the following:
 11624  //
 11625  //    * PENDING – The DKIM verification process was initiated, and Amazon
 11626  //    Pinpoint is still waiting for the required CNAME records to appear in
 11627  //    the DNS configuration for the domain.
 11628  //
 11629  //    * SUCCESS – The DKIM authentication process completed successfully.
 11630  //
 11631  //    * FAILED – The DKIM authentication process failed. This can happen when
 11632  //    Amazon Pinpoint fails to find the required CNAME records in the DNS configuration
 11633  //    of the domain.
 11634  //
 11635  //    * TEMPORARY_FAILURE – A temporary issue is preventing Amazon Pinpoint
 11636  //    from determining the DKIM authentication status of the domain.
 11637  //
 11638  //    * NOT_STARTED – The DKIM verification process hasn't been initiated
 11639  //    for the domain.
 11640  const (
 11641  	// DkimStatusPending is a DkimStatus enum value
 11642  	DkimStatusPending = "PENDING"
 11643  
 11644  	// DkimStatusSuccess is a DkimStatus enum value
 11645  	DkimStatusSuccess = "SUCCESS"
 11646  
 11647  	// DkimStatusFailed is a DkimStatus enum value
 11648  	DkimStatusFailed = "FAILED"
 11649  
 11650  	// DkimStatusTemporaryFailure is a DkimStatus enum value
 11651  	DkimStatusTemporaryFailure = "TEMPORARY_FAILURE"
 11652  
 11653  	// DkimStatusNotStarted is a DkimStatus enum value
 11654  	DkimStatusNotStarted = "NOT_STARTED"
 11655  )
 11656  
 11657  // DkimStatus_Values returns all elements of the DkimStatus enum
 11658  func DkimStatus_Values() []string {
 11659  	return []string{
 11660  		DkimStatusPending,
 11661  		DkimStatusSuccess,
 11662  		DkimStatusFailed,
 11663  		DkimStatusTemporaryFailure,
 11664  		DkimStatusNotStarted,
 11665  	}
 11666  }
 11667  
 11668  // An email sending event type. For example, email sends, opens, and bounces
 11669  // are all email events.
 11670  const (
 11671  	// EventTypeSend is a EventType enum value
 11672  	EventTypeSend = "SEND"
 11673  
 11674  	// EventTypeReject is a EventType enum value
 11675  	EventTypeReject = "REJECT"
 11676  
 11677  	// EventTypeBounce is a EventType enum value
 11678  	EventTypeBounce = "BOUNCE"
 11679  
 11680  	// EventTypeComplaint is a EventType enum value
 11681  	EventTypeComplaint = "COMPLAINT"
 11682  
 11683  	// EventTypeDelivery is a EventType enum value
 11684  	EventTypeDelivery = "DELIVERY"
 11685  
 11686  	// EventTypeOpen is a EventType enum value
 11687  	EventTypeOpen = "OPEN"
 11688  
 11689  	// EventTypeClick is a EventType enum value
 11690  	EventTypeClick = "CLICK"
 11691  
 11692  	// EventTypeRenderingFailure is a EventType enum value
 11693  	EventTypeRenderingFailure = "RENDERING_FAILURE"
 11694  )
 11695  
 11696  // EventType_Values returns all elements of the EventType enum
 11697  func EventType_Values() []string {
 11698  	return []string{
 11699  		EventTypeSend,
 11700  		EventTypeReject,
 11701  		EventTypeBounce,
 11702  		EventTypeComplaint,
 11703  		EventTypeDelivery,
 11704  		EventTypeOpen,
 11705  		EventTypeClick,
 11706  		EventTypeRenderingFailure,
 11707  	}
 11708  }
 11709  
 11710  // The email identity type. The identity type can be one of the following:
 11711  //
 11712  //    * EMAIL_ADDRESS – The identity is an email address.
 11713  //
 11714  //    * DOMAIN – The identity is a domain.
 11715  const (
 11716  	// IdentityTypeEmailAddress is a IdentityType enum value
 11717  	IdentityTypeEmailAddress = "EMAIL_ADDRESS"
 11718  
 11719  	// IdentityTypeDomain is a IdentityType enum value
 11720  	IdentityTypeDomain = "DOMAIN"
 11721  
 11722  	// IdentityTypeManagedDomain is a IdentityType enum value
 11723  	IdentityTypeManagedDomain = "MANAGED_DOMAIN"
 11724  )
 11725  
 11726  // IdentityType_Values returns all elements of the IdentityType enum
 11727  func IdentityType_Values() []string {
 11728  	return []string{
 11729  		IdentityTypeEmailAddress,
 11730  		IdentityTypeDomain,
 11731  		IdentityTypeManagedDomain,
 11732  	}
 11733  }
 11734  
 11735  // The status of the MAIL FROM domain. This status can have the following values:
 11736  //
 11737  //    * PENDING – Amazon Pinpoint hasn't started searching for the MX record
 11738  //    yet.
 11739  //
 11740  //    * SUCCESS – Amazon Pinpoint detected the required MX record for the
 11741  //    MAIL FROM domain.
 11742  //
 11743  //    * FAILED – Amazon Pinpoint can't find the required MX record, or the
 11744  //    record no longer exists.
 11745  //
 11746  //    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
 11747  //    Pinpoint from determining the status of the MAIL FROM domain.
 11748  const (
 11749  	// MailFromDomainStatusPending is a MailFromDomainStatus enum value
 11750  	MailFromDomainStatusPending = "PENDING"
 11751  
 11752  	// MailFromDomainStatusSuccess is a MailFromDomainStatus enum value
 11753  	MailFromDomainStatusSuccess = "SUCCESS"
 11754  
 11755  	// MailFromDomainStatusFailed is a MailFromDomainStatus enum value
 11756  	MailFromDomainStatusFailed = "FAILED"
 11757  
 11758  	// MailFromDomainStatusTemporaryFailure is a MailFromDomainStatus enum value
 11759  	MailFromDomainStatusTemporaryFailure = "TEMPORARY_FAILURE"
 11760  )
 11761  
 11762  // MailFromDomainStatus_Values returns all elements of the MailFromDomainStatus enum
 11763  func MailFromDomainStatus_Values() []string {
 11764  	return []string{
 11765  		MailFromDomainStatusPending,
 11766  		MailFromDomainStatusSuccess,
 11767  		MailFromDomainStatusFailed,
 11768  		MailFromDomainStatusTemporaryFailure,
 11769  	}
 11770  }
 11771  
 11772  // Specifies whether messages that use the configuration set are required to
 11773  // use Transport Layer Security (TLS). If the value is Require, messages are
 11774  // only delivered if a TLS connection can be established. If the value is Optional,
 11775  // messages can be delivered in plain text if a TLS connection can't be established.
 11776  const (
 11777  	// TlsPolicyRequire is a TlsPolicy enum value
 11778  	TlsPolicyRequire = "REQUIRE"
 11779  
 11780  	// TlsPolicyOptional is a TlsPolicy enum value
 11781  	TlsPolicyOptional = "OPTIONAL"
 11782  )
 11783  
 11784  // TlsPolicy_Values returns all elements of the TlsPolicy enum
 11785  func TlsPolicy_Values() []string {
 11786  	return []string{
 11787  		TlsPolicyRequire,
 11788  		TlsPolicyOptional,
 11789  	}
 11790  }
 11791  
 11792  // The warmup status of a dedicated IP.
 11793  const (
 11794  	// WarmupStatusInProgress is a WarmupStatus enum value
 11795  	WarmupStatusInProgress = "IN_PROGRESS"
 11796  
 11797  	// WarmupStatusDone is a WarmupStatus enum value
 11798  	WarmupStatusDone = "DONE"
 11799  )
 11800  
 11801  // WarmupStatus_Values returns all elements of the WarmupStatus enum
 11802  func WarmupStatus_Values() []string {
 11803  	return []string{
 11804  		WarmupStatusInProgress,
 11805  		WarmupStatusDone,
 11806  	}
 11807  }