1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package customerprofiles
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opAddProfileKey = "AddProfileKey"
17
18// AddProfileKeyRequest generates a "aws/request.Request" representing the
19// client's request for the AddProfileKey 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 AddProfileKey for more information on using the AddProfileKey
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 AddProfileKeyRequest method.
34//    req, resp := client.AddProfileKeyRequest(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/customer-profiles-2020-08-15/AddProfileKey
42func (c *CustomerProfiles) AddProfileKeyRequest(input *AddProfileKeyInput) (req *request.Request, output *AddProfileKeyOutput) {
43	op := &request.Operation{
44		Name:       opAddProfileKey,
45		HTTPMethod: "POST",
46		HTTPPath:   "/domains/{DomainName}/profiles/keys",
47	}
48
49	if input == nil {
50		input = &AddProfileKeyInput{}
51	}
52
53	output = &AddProfileKeyOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AddProfileKey API operation for Amazon Connect Customer Profiles.
59//
60// Associates a new key value with a specific profile, such as a Contact Trace
61// Record (CTR) ContactId.
62//
63// A profile object can have a single unique key and any number of additional
64// keys that can be used to identify the profile that it belongs to.
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for Amazon Connect Customer Profiles's
71// API operation AddProfileKey for usage and error information.
72//
73// Returned Error Types:
74//   * BadRequestException
75//   The input you provided is invalid.
76//
77//   * AccessDeniedException
78//   You do not have sufficient access to perform this action.
79//
80//   * ResourceNotFoundException
81//   The requested resource does not exist, or access was denied.
82//
83//   * ThrottlingException
84//   You exceeded the maximum number of requests.
85//
86//   * InternalServerException
87//   An internal service error occurred.
88//
89// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AddProfileKey
90func (c *CustomerProfiles) AddProfileKey(input *AddProfileKeyInput) (*AddProfileKeyOutput, error) {
91	req, out := c.AddProfileKeyRequest(input)
92	return out, req.Send()
93}
94
95// AddProfileKeyWithContext is the same as AddProfileKey with the addition of
96// the ability to pass a context and additional request options.
97//
98// See AddProfileKey for details on how to use this API operation.
99//
100// The context must be non-nil and will be used for request cancellation. If
101// the context is nil a panic will occur. In the future the SDK may create
102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
103// for more information on using Contexts.
104func (c *CustomerProfiles) AddProfileKeyWithContext(ctx aws.Context, input *AddProfileKeyInput, opts ...request.Option) (*AddProfileKeyOutput, error) {
105	req, out := c.AddProfileKeyRequest(input)
106	req.SetContext(ctx)
107	req.ApplyOptions(opts...)
108	return out, req.Send()
109}
110
111const opCreateDomain = "CreateDomain"
112
113// CreateDomainRequest generates a "aws/request.Request" representing the
114// client's request for the CreateDomain operation. The "output" return
115// value will be populated with the request's response once the request completes
116// successfully.
117//
118// Use "Send" method on the returned Request to send the API call to the service.
119// the "output" return value is not valid until after Send returns without error.
120//
121// See CreateDomain for more information on using the CreateDomain
122// API call, and error handling.
123//
124// This method is useful when you want to inject custom logic or configuration
125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
126//
127//
128//    // Example sending a request using the CreateDomainRequest method.
129//    req, resp := client.CreateDomainRequest(params)
130//
131//    err := req.Send()
132//    if err == nil { // resp is now filled
133//        fmt.Println(resp)
134//    }
135//
136// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateDomain
137func (c *CustomerProfiles) CreateDomainRequest(input *CreateDomainInput) (req *request.Request, output *CreateDomainOutput) {
138	op := &request.Operation{
139		Name:       opCreateDomain,
140		HTTPMethod: "POST",
141		HTTPPath:   "/domains/{DomainName}",
142	}
143
144	if input == nil {
145		input = &CreateDomainInput{}
146	}
147
148	output = &CreateDomainOutput{}
149	req = c.newRequest(op, input, output)
150	return
151}
152
153// CreateDomain API operation for Amazon Connect Customer Profiles.
154//
155// Creates a domain, which is a container for all customer data, such as customer
156// profile attributes, object types, profile keys, and encryption keys. You
157// can create multiple domains, and each domain can have multiple third-party
158// integrations.
159//
160// Each Amazon Connect instance can be associated with only one domain. Multiple
161// Amazon Connect instances can be associated with one domain.
162//
163// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
164// with awserr.Error's Code and Message methods to get detailed information about
165// the error.
166//
167// See the AWS API reference guide for Amazon Connect Customer Profiles's
168// API operation CreateDomain for usage and error information.
169//
170// Returned Error Types:
171//   * BadRequestException
172//   The input you provided is invalid.
173//
174//   * ResourceNotFoundException
175//   The requested resource does not exist, or access was denied.
176//
177//   * AccessDeniedException
178//   You do not have sufficient access to perform this action.
179//
180//   * ThrottlingException
181//   You exceeded the maximum number of requests.
182//
183//   * InternalServerException
184//   An internal service error occurred.
185//
186// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateDomain
187func (c *CustomerProfiles) CreateDomain(input *CreateDomainInput) (*CreateDomainOutput, error) {
188	req, out := c.CreateDomainRequest(input)
189	return out, req.Send()
190}
191
192// CreateDomainWithContext is the same as CreateDomain with the addition of
193// the ability to pass a context and additional request options.
194//
195// See CreateDomain for details on how to use this API operation.
196//
197// The context must be non-nil and will be used for request cancellation. If
198// the context is nil a panic will occur. In the future the SDK may create
199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
200// for more information on using Contexts.
201func (c *CustomerProfiles) CreateDomainWithContext(ctx aws.Context, input *CreateDomainInput, opts ...request.Option) (*CreateDomainOutput, error) {
202	req, out := c.CreateDomainRequest(input)
203	req.SetContext(ctx)
204	req.ApplyOptions(opts...)
205	return out, req.Send()
206}
207
208const opCreateProfile = "CreateProfile"
209
210// CreateProfileRequest generates a "aws/request.Request" representing the
211// client's request for the CreateProfile operation. The "output" return
212// value will be populated with the request's response once the request completes
213// successfully.
214//
215// Use "Send" method on the returned Request to send the API call to the service.
216// the "output" return value is not valid until after Send returns without error.
217//
218// See CreateProfile for more information on using the CreateProfile
219// API call, and error handling.
220//
221// This method is useful when you want to inject custom logic or configuration
222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
223//
224//
225//    // Example sending a request using the CreateProfileRequest method.
226//    req, resp := client.CreateProfileRequest(params)
227//
228//    err := req.Send()
229//    if err == nil { // resp is now filled
230//        fmt.Println(resp)
231//    }
232//
233// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateProfile
234func (c *CustomerProfiles) CreateProfileRequest(input *CreateProfileInput) (req *request.Request, output *CreateProfileOutput) {
235	op := &request.Operation{
236		Name:       opCreateProfile,
237		HTTPMethod: "POST",
238		HTTPPath:   "/domains/{DomainName}/profiles",
239	}
240
241	if input == nil {
242		input = &CreateProfileInput{}
243	}
244
245	output = &CreateProfileOutput{}
246	req = c.newRequest(op, input, output)
247	return
248}
249
250// CreateProfile API operation for Amazon Connect Customer Profiles.
251//
252// Creates a standard profile.
253//
254// A standard profile represents the following attributes for a customer profile
255// in a domain.
256//
257// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
258// with awserr.Error's Code and Message methods to get detailed information about
259// the error.
260//
261// See the AWS API reference guide for Amazon Connect Customer Profiles's
262// API operation CreateProfile for usage and error information.
263//
264// Returned Error Types:
265//   * BadRequestException
266//   The input you provided is invalid.
267//
268//   * AccessDeniedException
269//   You do not have sufficient access to perform this action.
270//
271//   * ResourceNotFoundException
272//   The requested resource does not exist, or access was denied.
273//
274//   * ThrottlingException
275//   You exceeded the maximum number of requests.
276//
277//   * InternalServerException
278//   An internal service error occurred.
279//
280// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateProfile
281func (c *CustomerProfiles) CreateProfile(input *CreateProfileInput) (*CreateProfileOutput, error) {
282	req, out := c.CreateProfileRequest(input)
283	return out, req.Send()
284}
285
286// CreateProfileWithContext is the same as CreateProfile with the addition of
287// the ability to pass a context and additional request options.
288//
289// See CreateProfile for details on how to use this API operation.
290//
291// The context must be non-nil and will be used for request cancellation. If
292// the context is nil a panic will occur. In the future the SDK may create
293// sub-contexts for http.Requests. See https://golang.org/pkg/context/
294// for more information on using Contexts.
295func (c *CustomerProfiles) CreateProfileWithContext(ctx aws.Context, input *CreateProfileInput, opts ...request.Option) (*CreateProfileOutput, error) {
296	req, out := c.CreateProfileRequest(input)
297	req.SetContext(ctx)
298	req.ApplyOptions(opts...)
299	return out, req.Send()
300}
301
302const opDeleteDomain = "DeleteDomain"
303
304// DeleteDomainRequest generates a "aws/request.Request" representing the
305// client's request for the DeleteDomain operation. The "output" return
306// value will be populated with the request's response once the request completes
307// successfully.
308//
309// Use "Send" method on the returned Request to send the API call to the service.
310// the "output" return value is not valid until after Send returns without error.
311//
312// See DeleteDomain for more information on using the DeleteDomain
313// API call, and error handling.
314//
315// This method is useful when you want to inject custom logic or configuration
316// into the SDK's request lifecycle. Such as custom headers, or retry logic.
317//
318//
319//    // Example sending a request using the DeleteDomainRequest method.
320//    req, resp := client.DeleteDomainRequest(params)
321//
322//    err := req.Send()
323//    if err == nil { // resp is now filled
324//        fmt.Println(resp)
325//    }
326//
327// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteDomain
328func (c *CustomerProfiles) DeleteDomainRequest(input *DeleteDomainInput) (req *request.Request, output *DeleteDomainOutput) {
329	op := &request.Operation{
330		Name:       opDeleteDomain,
331		HTTPMethod: "DELETE",
332		HTTPPath:   "/domains/{DomainName}",
333	}
334
335	if input == nil {
336		input = &DeleteDomainInput{}
337	}
338
339	output = &DeleteDomainOutput{}
340	req = c.newRequest(op, input, output)
341	return
342}
343
344// DeleteDomain API operation for Amazon Connect Customer Profiles.
345//
346// Deletes a specific domain and all of its customer data, such as customer
347// profile attributes and their related objects.
348//
349// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
350// with awserr.Error's Code and Message methods to get detailed information about
351// the error.
352//
353// See the AWS API reference guide for Amazon Connect Customer Profiles's
354// API operation DeleteDomain for usage and error information.
355//
356// Returned Error Types:
357//   * BadRequestException
358//   The input you provided is invalid.
359//
360//   * ResourceNotFoundException
361//   The requested resource does not exist, or access was denied.
362//
363//   * AccessDeniedException
364//   You do not have sufficient access to perform this action.
365//
366//   * ThrottlingException
367//   You exceeded the maximum number of requests.
368//
369//   * InternalServerException
370//   An internal service error occurred.
371//
372// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteDomain
373func (c *CustomerProfiles) DeleteDomain(input *DeleteDomainInput) (*DeleteDomainOutput, error) {
374	req, out := c.DeleteDomainRequest(input)
375	return out, req.Send()
376}
377
378// DeleteDomainWithContext is the same as DeleteDomain with the addition of
379// the ability to pass a context and additional request options.
380//
381// See DeleteDomain for details on how to use this API operation.
382//
383// The context must be non-nil and will be used for request cancellation. If
384// the context is nil a panic will occur. In the future the SDK may create
385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
386// for more information on using Contexts.
387func (c *CustomerProfiles) DeleteDomainWithContext(ctx aws.Context, input *DeleteDomainInput, opts ...request.Option) (*DeleteDomainOutput, error) {
388	req, out := c.DeleteDomainRequest(input)
389	req.SetContext(ctx)
390	req.ApplyOptions(opts...)
391	return out, req.Send()
392}
393
394const opDeleteIntegration = "DeleteIntegration"
395
396// DeleteIntegrationRequest generates a "aws/request.Request" representing the
397// client's request for the DeleteIntegration operation. The "output" return
398// value will be populated with the request's response once the request completes
399// successfully.
400//
401// Use "Send" method on the returned Request to send the API call to the service.
402// the "output" return value is not valid until after Send returns without error.
403//
404// See DeleteIntegration for more information on using the DeleteIntegration
405// API call, and error handling.
406//
407// This method is useful when you want to inject custom logic or configuration
408// into the SDK's request lifecycle. Such as custom headers, or retry logic.
409//
410//
411//    // Example sending a request using the DeleteIntegrationRequest method.
412//    req, resp := client.DeleteIntegrationRequest(params)
413//
414//    err := req.Send()
415//    if err == nil { // resp is now filled
416//        fmt.Println(resp)
417//    }
418//
419// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteIntegration
420func (c *CustomerProfiles) DeleteIntegrationRequest(input *DeleteIntegrationInput) (req *request.Request, output *DeleteIntegrationOutput) {
421	op := &request.Operation{
422		Name:       opDeleteIntegration,
423		HTTPMethod: "POST",
424		HTTPPath:   "/domains/{DomainName}/integrations/delete",
425	}
426
427	if input == nil {
428		input = &DeleteIntegrationInput{}
429	}
430
431	output = &DeleteIntegrationOutput{}
432	req = c.newRequest(op, input, output)
433	return
434}
435
436// DeleteIntegration API operation for Amazon Connect Customer Profiles.
437//
438// Removes an integration from a specific domain.
439//
440// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
441// with awserr.Error's Code and Message methods to get detailed information about
442// the error.
443//
444// See the AWS API reference guide for Amazon Connect Customer Profiles's
445// API operation DeleteIntegration for usage and error information.
446//
447// Returned Error Types:
448//   * BadRequestException
449//   The input you provided is invalid.
450//
451//   * ResourceNotFoundException
452//   The requested resource does not exist, or access was denied.
453//
454//   * AccessDeniedException
455//   You do not have sufficient access to perform this action.
456//
457//   * ThrottlingException
458//   You exceeded the maximum number of requests.
459//
460//   * InternalServerException
461//   An internal service error occurred.
462//
463// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteIntegration
464func (c *CustomerProfiles) DeleteIntegration(input *DeleteIntegrationInput) (*DeleteIntegrationOutput, error) {
465	req, out := c.DeleteIntegrationRequest(input)
466	return out, req.Send()
467}
468
469// DeleteIntegrationWithContext is the same as DeleteIntegration with the addition of
470// the ability to pass a context and additional request options.
471//
472// See DeleteIntegration for details on how to use this API operation.
473//
474// The context must be non-nil and will be used for request cancellation. If
475// the context is nil a panic will occur. In the future the SDK may create
476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
477// for more information on using Contexts.
478func (c *CustomerProfiles) DeleteIntegrationWithContext(ctx aws.Context, input *DeleteIntegrationInput, opts ...request.Option) (*DeleteIntegrationOutput, error) {
479	req, out := c.DeleteIntegrationRequest(input)
480	req.SetContext(ctx)
481	req.ApplyOptions(opts...)
482	return out, req.Send()
483}
484
485const opDeleteProfile = "DeleteProfile"
486
487// DeleteProfileRequest generates a "aws/request.Request" representing the
488// client's request for the DeleteProfile operation. The "output" return
489// value will be populated with the request's response once the request completes
490// successfully.
491//
492// Use "Send" method on the returned Request to send the API call to the service.
493// the "output" return value is not valid until after Send returns without error.
494//
495// See DeleteProfile for more information on using the DeleteProfile
496// API call, and error handling.
497//
498// This method is useful when you want to inject custom logic or configuration
499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
500//
501//
502//    // Example sending a request using the DeleteProfileRequest method.
503//    req, resp := client.DeleteProfileRequest(params)
504//
505//    err := req.Send()
506//    if err == nil { // resp is now filled
507//        fmt.Println(resp)
508//    }
509//
510// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfile
511func (c *CustomerProfiles) DeleteProfileRequest(input *DeleteProfileInput) (req *request.Request, output *DeleteProfileOutput) {
512	op := &request.Operation{
513		Name:       opDeleteProfile,
514		HTTPMethod: "POST",
515		HTTPPath:   "/domains/{DomainName}/profiles/delete",
516	}
517
518	if input == nil {
519		input = &DeleteProfileInput{}
520	}
521
522	output = &DeleteProfileOutput{}
523	req = c.newRequest(op, input, output)
524	return
525}
526
527// DeleteProfile API operation for Amazon Connect Customer Profiles.
528//
529// Deletes the standard customer profile and all data pertaining to the profile.
530//
531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
532// with awserr.Error's Code and Message methods to get detailed information about
533// the error.
534//
535// See the AWS API reference guide for Amazon Connect Customer Profiles's
536// API operation DeleteProfile for usage and error information.
537//
538// Returned Error Types:
539//   * BadRequestException
540//   The input you provided is invalid.
541//
542//   * AccessDeniedException
543//   You do not have sufficient access to perform this action.
544//
545//   * ResourceNotFoundException
546//   The requested resource does not exist, or access was denied.
547//
548//   * ThrottlingException
549//   You exceeded the maximum number of requests.
550//
551//   * InternalServerException
552//   An internal service error occurred.
553//
554// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfile
555func (c *CustomerProfiles) DeleteProfile(input *DeleteProfileInput) (*DeleteProfileOutput, error) {
556	req, out := c.DeleteProfileRequest(input)
557	return out, req.Send()
558}
559
560// DeleteProfileWithContext is the same as DeleteProfile with the addition of
561// the ability to pass a context and additional request options.
562//
563// See DeleteProfile for details on how to use this API operation.
564//
565// The context must be non-nil and will be used for request cancellation. If
566// the context is nil a panic will occur. In the future the SDK may create
567// sub-contexts for http.Requests. See https://golang.org/pkg/context/
568// for more information on using Contexts.
569func (c *CustomerProfiles) DeleteProfileWithContext(ctx aws.Context, input *DeleteProfileInput, opts ...request.Option) (*DeleteProfileOutput, error) {
570	req, out := c.DeleteProfileRequest(input)
571	req.SetContext(ctx)
572	req.ApplyOptions(opts...)
573	return out, req.Send()
574}
575
576const opDeleteProfileKey = "DeleteProfileKey"
577
578// DeleteProfileKeyRequest generates a "aws/request.Request" representing the
579// client's request for the DeleteProfileKey operation. The "output" return
580// value will be populated with the request's response once the request completes
581// successfully.
582//
583// Use "Send" method on the returned Request to send the API call to the service.
584// the "output" return value is not valid until after Send returns without error.
585//
586// See DeleteProfileKey for more information on using the DeleteProfileKey
587// API call, and error handling.
588//
589// This method is useful when you want to inject custom logic or configuration
590// into the SDK's request lifecycle. Such as custom headers, or retry logic.
591//
592//
593//    // Example sending a request using the DeleteProfileKeyRequest method.
594//    req, resp := client.DeleteProfileKeyRequest(params)
595//
596//    err := req.Send()
597//    if err == nil { // resp is now filled
598//        fmt.Println(resp)
599//    }
600//
601// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileKey
602func (c *CustomerProfiles) DeleteProfileKeyRequest(input *DeleteProfileKeyInput) (req *request.Request, output *DeleteProfileKeyOutput) {
603	op := &request.Operation{
604		Name:       opDeleteProfileKey,
605		HTTPMethod: "POST",
606		HTTPPath:   "/domains/{DomainName}/profiles/keys/delete",
607	}
608
609	if input == nil {
610		input = &DeleteProfileKeyInput{}
611	}
612
613	output = &DeleteProfileKeyOutput{}
614	req = c.newRequest(op, input, output)
615	return
616}
617
618// DeleteProfileKey API operation for Amazon Connect Customer Profiles.
619//
620// Removes a searchable key from a customer profile.
621//
622// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
623// with awserr.Error's Code and Message methods to get detailed information about
624// the error.
625//
626// See the AWS API reference guide for Amazon Connect Customer Profiles's
627// API operation DeleteProfileKey for usage and error information.
628//
629// Returned Error Types:
630//   * BadRequestException
631//   The input you provided is invalid.
632//
633//   * AccessDeniedException
634//   You do not have sufficient access to perform this action.
635//
636//   * ResourceNotFoundException
637//   The requested resource does not exist, or access was denied.
638//
639//   * ThrottlingException
640//   You exceeded the maximum number of requests.
641//
642//   * InternalServerException
643//   An internal service error occurred.
644//
645// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileKey
646func (c *CustomerProfiles) DeleteProfileKey(input *DeleteProfileKeyInput) (*DeleteProfileKeyOutput, error) {
647	req, out := c.DeleteProfileKeyRequest(input)
648	return out, req.Send()
649}
650
651// DeleteProfileKeyWithContext is the same as DeleteProfileKey with the addition of
652// the ability to pass a context and additional request options.
653//
654// See DeleteProfileKey for details on how to use this API operation.
655//
656// The context must be non-nil and will be used for request cancellation. If
657// the context is nil a panic will occur. In the future the SDK may create
658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
659// for more information on using Contexts.
660func (c *CustomerProfiles) DeleteProfileKeyWithContext(ctx aws.Context, input *DeleteProfileKeyInput, opts ...request.Option) (*DeleteProfileKeyOutput, error) {
661	req, out := c.DeleteProfileKeyRequest(input)
662	req.SetContext(ctx)
663	req.ApplyOptions(opts...)
664	return out, req.Send()
665}
666
667const opDeleteProfileObject = "DeleteProfileObject"
668
669// DeleteProfileObjectRequest generates a "aws/request.Request" representing the
670// client's request for the DeleteProfileObject operation. The "output" return
671// value will be populated with the request's response once the request completes
672// successfully.
673//
674// Use "Send" method on the returned Request to send the API call to the service.
675// the "output" return value is not valid until after Send returns without error.
676//
677// See DeleteProfileObject for more information on using the DeleteProfileObject
678// API call, and error handling.
679//
680// This method is useful when you want to inject custom logic or configuration
681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
682//
683//
684//    // Example sending a request using the DeleteProfileObjectRequest method.
685//    req, resp := client.DeleteProfileObjectRequest(params)
686//
687//    err := req.Send()
688//    if err == nil { // resp is now filled
689//        fmt.Println(resp)
690//    }
691//
692// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObject
693func (c *CustomerProfiles) DeleteProfileObjectRequest(input *DeleteProfileObjectInput) (req *request.Request, output *DeleteProfileObjectOutput) {
694	op := &request.Operation{
695		Name:       opDeleteProfileObject,
696		HTTPMethod: "POST",
697		HTTPPath:   "/domains/{DomainName}/profiles/objects/delete",
698	}
699
700	if input == nil {
701		input = &DeleteProfileObjectInput{}
702	}
703
704	output = &DeleteProfileObjectOutput{}
705	req = c.newRequest(op, input, output)
706	return
707}
708
709// DeleteProfileObject API operation for Amazon Connect Customer Profiles.
710//
711// Removes an object associated with a profile of a given ProfileObjectType.
712//
713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
714// with awserr.Error's Code and Message methods to get detailed information about
715// the error.
716//
717// See the AWS API reference guide for Amazon Connect Customer Profiles's
718// API operation DeleteProfileObject for usage and error information.
719//
720// Returned Error Types:
721//   * BadRequestException
722//   The input you provided is invalid.
723//
724//   * AccessDeniedException
725//   You do not have sufficient access to perform this action.
726//
727//   * ResourceNotFoundException
728//   The requested resource does not exist, or access was denied.
729//
730//   * ThrottlingException
731//   You exceeded the maximum number of requests.
732//
733//   * InternalServerException
734//   An internal service error occurred.
735//
736// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObject
737func (c *CustomerProfiles) DeleteProfileObject(input *DeleteProfileObjectInput) (*DeleteProfileObjectOutput, error) {
738	req, out := c.DeleteProfileObjectRequest(input)
739	return out, req.Send()
740}
741
742// DeleteProfileObjectWithContext is the same as DeleteProfileObject with the addition of
743// the ability to pass a context and additional request options.
744//
745// See DeleteProfileObject for details on how to use this API operation.
746//
747// The context must be non-nil and will be used for request cancellation. If
748// the context is nil a panic will occur. In the future the SDK may create
749// sub-contexts for http.Requests. See https://golang.org/pkg/context/
750// for more information on using Contexts.
751func (c *CustomerProfiles) DeleteProfileObjectWithContext(ctx aws.Context, input *DeleteProfileObjectInput, opts ...request.Option) (*DeleteProfileObjectOutput, error) {
752	req, out := c.DeleteProfileObjectRequest(input)
753	req.SetContext(ctx)
754	req.ApplyOptions(opts...)
755	return out, req.Send()
756}
757
758const opDeleteProfileObjectType = "DeleteProfileObjectType"
759
760// DeleteProfileObjectTypeRequest generates a "aws/request.Request" representing the
761// client's request for the DeleteProfileObjectType operation. The "output" return
762// value will be populated with the request's response once the request completes
763// successfully.
764//
765// Use "Send" method on the returned Request to send the API call to the service.
766// the "output" return value is not valid until after Send returns without error.
767//
768// See DeleteProfileObjectType for more information on using the DeleteProfileObjectType
769// API call, and error handling.
770//
771// This method is useful when you want to inject custom logic or configuration
772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
773//
774//
775//    // Example sending a request using the DeleteProfileObjectTypeRequest method.
776//    req, resp := client.DeleteProfileObjectTypeRequest(params)
777//
778//    err := req.Send()
779//    if err == nil { // resp is now filled
780//        fmt.Println(resp)
781//    }
782//
783// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObjectType
784func (c *CustomerProfiles) DeleteProfileObjectTypeRequest(input *DeleteProfileObjectTypeInput) (req *request.Request, output *DeleteProfileObjectTypeOutput) {
785	op := &request.Operation{
786		Name:       opDeleteProfileObjectType,
787		HTTPMethod: "DELETE",
788		HTTPPath:   "/domains/{DomainName}/object-types/{ObjectTypeName}",
789	}
790
791	if input == nil {
792		input = &DeleteProfileObjectTypeInput{}
793	}
794
795	output = &DeleteProfileObjectTypeOutput{}
796	req = c.newRequest(op, input, output)
797	return
798}
799
800// DeleteProfileObjectType API operation for Amazon Connect Customer Profiles.
801//
802// Removes a ProfileObjectType from a specific domain as well as removes all
803// the ProfileObjects of that type. It also disables integrations from this
804// specific ProfileObjectType. In addition, it scrubs all of the fields of the
805// standard profile that were populated from this ProfileObjectType.
806//
807// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
808// with awserr.Error's Code and Message methods to get detailed information about
809// the error.
810//
811// See the AWS API reference guide for Amazon Connect Customer Profiles's
812// API operation DeleteProfileObjectType for usage and error information.
813//
814// Returned Error Types:
815//   * BadRequestException
816//   The input you provided is invalid.
817//
818//   * ResourceNotFoundException
819//   The requested resource does not exist, or access was denied.
820//
821//   * AccessDeniedException
822//   You do not have sufficient access to perform this action.
823//
824//   * ThrottlingException
825//   You exceeded the maximum number of requests.
826//
827//   * InternalServerException
828//   An internal service error occurred.
829//
830// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObjectType
831func (c *CustomerProfiles) DeleteProfileObjectType(input *DeleteProfileObjectTypeInput) (*DeleteProfileObjectTypeOutput, error) {
832	req, out := c.DeleteProfileObjectTypeRequest(input)
833	return out, req.Send()
834}
835
836// DeleteProfileObjectTypeWithContext is the same as DeleteProfileObjectType with the addition of
837// the ability to pass a context and additional request options.
838//
839// See DeleteProfileObjectType for details on how to use this API operation.
840//
841// The context must be non-nil and will be used for request cancellation. If
842// the context is nil a panic will occur. In the future the SDK may create
843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
844// for more information on using Contexts.
845func (c *CustomerProfiles) DeleteProfileObjectTypeWithContext(ctx aws.Context, input *DeleteProfileObjectTypeInput, opts ...request.Option) (*DeleteProfileObjectTypeOutput, error) {
846	req, out := c.DeleteProfileObjectTypeRequest(input)
847	req.SetContext(ctx)
848	req.ApplyOptions(opts...)
849	return out, req.Send()
850}
851
852const opGetDomain = "GetDomain"
853
854// GetDomainRequest generates a "aws/request.Request" representing the
855// client's request for the GetDomain operation. The "output" return
856// value will be populated with the request's response once the request completes
857// successfully.
858//
859// Use "Send" method on the returned Request to send the API call to the service.
860// the "output" return value is not valid until after Send returns without error.
861//
862// See GetDomain for more information on using the GetDomain
863// API call, and error handling.
864//
865// This method is useful when you want to inject custom logic or configuration
866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
867//
868//
869//    // Example sending a request using the GetDomainRequest method.
870//    req, resp := client.GetDomainRequest(params)
871//
872//    err := req.Send()
873//    if err == nil { // resp is now filled
874//        fmt.Println(resp)
875//    }
876//
877// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetDomain
878func (c *CustomerProfiles) GetDomainRequest(input *GetDomainInput) (req *request.Request, output *GetDomainOutput) {
879	op := &request.Operation{
880		Name:       opGetDomain,
881		HTTPMethod: "GET",
882		HTTPPath:   "/domains/{DomainName}",
883	}
884
885	if input == nil {
886		input = &GetDomainInput{}
887	}
888
889	output = &GetDomainOutput{}
890	req = c.newRequest(op, input, output)
891	return
892}
893
894// GetDomain API operation for Amazon Connect Customer Profiles.
895//
896// Returns information about a specific domain.
897//
898// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
899// with awserr.Error's Code and Message methods to get detailed information about
900// the error.
901//
902// See the AWS API reference guide for Amazon Connect Customer Profiles's
903// API operation GetDomain for usage and error information.
904//
905// Returned Error Types:
906//   * BadRequestException
907//   The input you provided is invalid.
908//
909//   * ResourceNotFoundException
910//   The requested resource does not exist, or access was denied.
911//
912//   * AccessDeniedException
913//   You do not have sufficient access to perform this action.
914//
915//   * ThrottlingException
916//   You exceeded the maximum number of requests.
917//
918//   * InternalServerException
919//   An internal service error occurred.
920//
921// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetDomain
922func (c *CustomerProfiles) GetDomain(input *GetDomainInput) (*GetDomainOutput, error) {
923	req, out := c.GetDomainRequest(input)
924	return out, req.Send()
925}
926
927// GetDomainWithContext is the same as GetDomain with the addition of
928// the ability to pass a context and additional request options.
929//
930// See GetDomain for details on how to use this API operation.
931//
932// The context must be non-nil and will be used for request cancellation. If
933// the context is nil a panic will occur. In the future the SDK may create
934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
935// for more information on using Contexts.
936func (c *CustomerProfiles) GetDomainWithContext(ctx aws.Context, input *GetDomainInput, opts ...request.Option) (*GetDomainOutput, error) {
937	req, out := c.GetDomainRequest(input)
938	req.SetContext(ctx)
939	req.ApplyOptions(opts...)
940	return out, req.Send()
941}
942
943const opGetIntegration = "GetIntegration"
944
945// GetIntegrationRequest generates a "aws/request.Request" representing the
946// client's request for the GetIntegration operation. The "output" return
947// value will be populated with the request's response once the request completes
948// successfully.
949//
950// Use "Send" method on the returned Request to send the API call to the service.
951// the "output" return value is not valid until after Send returns without error.
952//
953// See GetIntegration for more information on using the GetIntegration
954// API call, and error handling.
955//
956// This method is useful when you want to inject custom logic or configuration
957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
958//
959//
960//    // Example sending a request using the GetIntegrationRequest method.
961//    req, resp := client.GetIntegrationRequest(params)
962//
963//    err := req.Send()
964//    if err == nil { // resp is now filled
965//        fmt.Println(resp)
966//    }
967//
968// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetIntegration
969func (c *CustomerProfiles) GetIntegrationRequest(input *GetIntegrationInput) (req *request.Request, output *GetIntegrationOutput) {
970	op := &request.Operation{
971		Name:       opGetIntegration,
972		HTTPMethod: "POST",
973		HTTPPath:   "/domains/{DomainName}/integrations",
974	}
975
976	if input == nil {
977		input = &GetIntegrationInput{}
978	}
979
980	output = &GetIntegrationOutput{}
981	req = c.newRequest(op, input, output)
982	return
983}
984
985// GetIntegration API operation for Amazon Connect Customer Profiles.
986//
987// Returns an integration for a domain.
988//
989// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
990// with awserr.Error's Code and Message methods to get detailed information about
991// the error.
992//
993// See the AWS API reference guide for Amazon Connect Customer Profiles's
994// API operation GetIntegration for usage and error information.
995//
996// Returned Error Types:
997//   * BadRequestException
998//   The input you provided is invalid.
999//
1000//   * ResourceNotFoundException
1001//   The requested resource does not exist, or access was denied.
1002//
1003//   * AccessDeniedException
1004//   You do not have sufficient access to perform this action.
1005//
1006//   * ThrottlingException
1007//   You exceeded the maximum number of requests.
1008//
1009//   * InternalServerException
1010//   An internal service error occurred.
1011//
1012// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetIntegration
1013func (c *CustomerProfiles) GetIntegration(input *GetIntegrationInput) (*GetIntegrationOutput, error) {
1014	req, out := c.GetIntegrationRequest(input)
1015	return out, req.Send()
1016}
1017
1018// GetIntegrationWithContext is the same as GetIntegration with the addition of
1019// the ability to pass a context and additional request options.
1020//
1021// See GetIntegration for details on how to use this API operation.
1022//
1023// The context must be non-nil and will be used for request cancellation. If
1024// the context is nil a panic will occur. In the future the SDK may create
1025// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1026// for more information on using Contexts.
1027func (c *CustomerProfiles) GetIntegrationWithContext(ctx aws.Context, input *GetIntegrationInput, opts ...request.Option) (*GetIntegrationOutput, error) {
1028	req, out := c.GetIntegrationRequest(input)
1029	req.SetContext(ctx)
1030	req.ApplyOptions(opts...)
1031	return out, req.Send()
1032}
1033
1034const opGetProfileObjectType = "GetProfileObjectType"
1035
1036// GetProfileObjectTypeRequest generates a "aws/request.Request" representing the
1037// client's request for the GetProfileObjectType operation. The "output" return
1038// value will be populated with the request's response once the request completes
1039// successfully.
1040//
1041// Use "Send" method on the returned Request to send the API call to the service.
1042// the "output" return value is not valid until after Send returns without error.
1043//
1044// See GetProfileObjectType for more information on using the GetProfileObjectType
1045// API call, and error handling.
1046//
1047// This method is useful when you want to inject custom logic or configuration
1048// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1049//
1050//
1051//    // Example sending a request using the GetProfileObjectTypeRequest method.
1052//    req, resp := client.GetProfileObjectTypeRequest(params)
1053//
1054//    err := req.Send()
1055//    if err == nil { // resp is now filled
1056//        fmt.Println(resp)
1057//    }
1058//
1059// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectType
1060func (c *CustomerProfiles) GetProfileObjectTypeRequest(input *GetProfileObjectTypeInput) (req *request.Request, output *GetProfileObjectTypeOutput) {
1061	op := &request.Operation{
1062		Name:       opGetProfileObjectType,
1063		HTTPMethod: "GET",
1064		HTTPPath:   "/domains/{DomainName}/object-types/{ObjectTypeName}",
1065	}
1066
1067	if input == nil {
1068		input = &GetProfileObjectTypeInput{}
1069	}
1070
1071	output = &GetProfileObjectTypeOutput{}
1072	req = c.newRequest(op, input, output)
1073	return
1074}
1075
1076// GetProfileObjectType API operation for Amazon Connect Customer Profiles.
1077//
1078// Returns the object types for a specific domain.
1079//
1080// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1081// with awserr.Error's Code and Message methods to get detailed information about
1082// the error.
1083//
1084// See the AWS API reference guide for Amazon Connect Customer Profiles's
1085// API operation GetProfileObjectType for usage and error information.
1086//
1087// Returned Error Types:
1088//   * BadRequestException
1089//   The input you provided is invalid.
1090//
1091//   * ResourceNotFoundException
1092//   The requested resource does not exist, or access was denied.
1093//
1094//   * AccessDeniedException
1095//   You do not have sufficient access to perform this action.
1096//
1097//   * ThrottlingException
1098//   You exceeded the maximum number of requests.
1099//
1100//   * InternalServerException
1101//   An internal service error occurred.
1102//
1103// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectType
1104func (c *CustomerProfiles) GetProfileObjectType(input *GetProfileObjectTypeInput) (*GetProfileObjectTypeOutput, error) {
1105	req, out := c.GetProfileObjectTypeRequest(input)
1106	return out, req.Send()
1107}
1108
1109// GetProfileObjectTypeWithContext is the same as GetProfileObjectType with the addition of
1110// the ability to pass a context and additional request options.
1111//
1112// See GetProfileObjectType for details on how to use this API operation.
1113//
1114// The context must be non-nil and will be used for request cancellation. If
1115// the context is nil a panic will occur. In the future the SDK may create
1116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1117// for more information on using Contexts.
1118func (c *CustomerProfiles) GetProfileObjectTypeWithContext(ctx aws.Context, input *GetProfileObjectTypeInput, opts ...request.Option) (*GetProfileObjectTypeOutput, error) {
1119	req, out := c.GetProfileObjectTypeRequest(input)
1120	req.SetContext(ctx)
1121	req.ApplyOptions(opts...)
1122	return out, req.Send()
1123}
1124
1125const opGetProfileObjectTypeTemplate = "GetProfileObjectTypeTemplate"
1126
1127// GetProfileObjectTypeTemplateRequest generates a "aws/request.Request" representing the
1128// client's request for the GetProfileObjectTypeTemplate operation. The "output" return
1129// value will be populated with the request's response once the request completes
1130// successfully.
1131//
1132// Use "Send" method on the returned Request to send the API call to the service.
1133// the "output" return value is not valid until after Send returns without error.
1134//
1135// See GetProfileObjectTypeTemplate for more information on using the GetProfileObjectTypeTemplate
1136// API call, and error handling.
1137//
1138// This method is useful when you want to inject custom logic or configuration
1139// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1140//
1141//
1142//    // Example sending a request using the GetProfileObjectTypeTemplateRequest method.
1143//    req, resp := client.GetProfileObjectTypeTemplateRequest(params)
1144//
1145//    err := req.Send()
1146//    if err == nil { // resp is now filled
1147//        fmt.Println(resp)
1148//    }
1149//
1150// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectTypeTemplate
1151func (c *CustomerProfiles) GetProfileObjectTypeTemplateRequest(input *GetProfileObjectTypeTemplateInput) (req *request.Request, output *GetProfileObjectTypeTemplateOutput) {
1152	op := &request.Operation{
1153		Name:       opGetProfileObjectTypeTemplate,
1154		HTTPMethod: "GET",
1155		HTTPPath:   "/templates/{TemplateId}",
1156	}
1157
1158	if input == nil {
1159		input = &GetProfileObjectTypeTemplateInput{}
1160	}
1161
1162	output = &GetProfileObjectTypeTemplateOutput{}
1163	req = c.newRequest(op, input, output)
1164	return
1165}
1166
1167// GetProfileObjectTypeTemplate API operation for Amazon Connect Customer Profiles.
1168//
1169// Returns the template information for a specific object type.
1170//
1171// A template is a predefined ProfileObjectType, such as “Salesforce-Account”
1172// or “Salesforce-Contact.” When a user sends a ProfileObject, using the
1173// PutProfileObject API, with an ObjectTypeName that matches one of the TemplateIds,
1174// it uses the mappings from the template.
1175//
1176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1177// with awserr.Error's Code and Message methods to get detailed information about
1178// the error.
1179//
1180// See the AWS API reference guide for Amazon Connect Customer Profiles's
1181// API operation GetProfileObjectTypeTemplate for usage and error information.
1182//
1183// Returned Error Types:
1184//   * BadRequestException
1185//   The input you provided is invalid.
1186//
1187//   * ResourceNotFoundException
1188//   The requested resource does not exist, or access was denied.
1189//
1190//   * AccessDeniedException
1191//   You do not have sufficient access to perform this action.
1192//
1193//   * ThrottlingException
1194//   You exceeded the maximum number of requests.
1195//
1196//   * InternalServerException
1197//   An internal service error occurred.
1198//
1199// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectTypeTemplate
1200func (c *CustomerProfiles) GetProfileObjectTypeTemplate(input *GetProfileObjectTypeTemplateInput) (*GetProfileObjectTypeTemplateOutput, error) {
1201	req, out := c.GetProfileObjectTypeTemplateRequest(input)
1202	return out, req.Send()
1203}
1204
1205// GetProfileObjectTypeTemplateWithContext is the same as GetProfileObjectTypeTemplate with the addition of
1206// the ability to pass a context and additional request options.
1207//
1208// See GetProfileObjectTypeTemplate for details on how to use this API operation.
1209//
1210// The context must be non-nil and will be used for request cancellation. If
1211// the context is nil a panic will occur. In the future the SDK may create
1212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1213// for more information on using Contexts.
1214func (c *CustomerProfiles) GetProfileObjectTypeTemplateWithContext(ctx aws.Context, input *GetProfileObjectTypeTemplateInput, opts ...request.Option) (*GetProfileObjectTypeTemplateOutput, error) {
1215	req, out := c.GetProfileObjectTypeTemplateRequest(input)
1216	req.SetContext(ctx)
1217	req.ApplyOptions(opts...)
1218	return out, req.Send()
1219}
1220
1221const opListAccountIntegrations = "ListAccountIntegrations"
1222
1223// ListAccountIntegrationsRequest generates a "aws/request.Request" representing the
1224// client's request for the ListAccountIntegrations operation. The "output" return
1225// value will be populated with the request's response once the request completes
1226// successfully.
1227//
1228// Use "Send" method on the returned Request to send the API call to the service.
1229// the "output" return value is not valid until after Send returns without error.
1230//
1231// See ListAccountIntegrations for more information on using the ListAccountIntegrations
1232// API call, and error handling.
1233//
1234// This method is useful when you want to inject custom logic or configuration
1235// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1236//
1237//
1238//    // Example sending a request using the ListAccountIntegrationsRequest method.
1239//    req, resp := client.ListAccountIntegrationsRequest(params)
1240//
1241//    err := req.Send()
1242//    if err == nil { // resp is now filled
1243//        fmt.Println(resp)
1244//    }
1245//
1246// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListAccountIntegrations
1247func (c *CustomerProfiles) ListAccountIntegrationsRequest(input *ListAccountIntegrationsInput) (req *request.Request, output *ListAccountIntegrationsOutput) {
1248	op := &request.Operation{
1249		Name:       opListAccountIntegrations,
1250		HTTPMethod: "POST",
1251		HTTPPath:   "/integrations",
1252	}
1253
1254	if input == nil {
1255		input = &ListAccountIntegrationsInput{}
1256	}
1257
1258	output = &ListAccountIntegrationsOutput{}
1259	req = c.newRequest(op, input, output)
1260	return
1261}
1262
1263// ListAccountIntegrations API operation for Amazon Connect Customer Profiles.
1264//
1265// Lists all of the integrations associated to a specific URI in the AWS account.
1266//
1267// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1268// with awserr.Error's Code and Message methods to get detailed information about
1269// the error.
1270//
1271// See the AWS API reference guide for Amazon Connect Customer Profiles's
1272// API operation ListAccountIntegrations for usage and error information.
1273//
1274// Returned Error Types:
1275//   * BadRequestException
1276//   The input you provided is invalid.
1277//
1278//   * ResourceNotFoundException
1279//   The requested resource does not exist, or access was denied.
1280//
1281//   * AccessDeniedException
1282//   You do not have sufficient access to perform this action.
1283//
1284//   * ThrottlingException
1285//   You exceeded the maximum number of requests.
1286//
1287//   * InternalServerException
1288//   An internal service error occurred.
1289//
1290// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListAccountIntegrations
1291func (c *CustomerProfiles) ListAccountIntegrations(input *ListAccountIntegrationsInput) (*ListAccountIntegrationsOutput, error) {
1292	req, out := c.ListAccountIntegrationsRequest(input)
1293	return out, req.Send()
1294}
1295
1296// ListAccountIntegrationsWithContext is the same as ListAccountIntegrations with the addition of
1297// the ability to pass a context and additional request options.
1298//
1299// See ListAccountIntegrations for details on how to use this API operation.
1300//
1301// The context must be non-nil and will be used for request cancellation. If
1302// the context is nil a panic will occur. In the future the SDK may create
1303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1304// for more information on using Contexts.
1305func (c *CustomerProfiles) ListAccountIntegrationsWithContext(ctx aws.Context, input *ListAccountIntegrationsInput, opts ...request.Option) (*ListAccountIntegrationsOutput, error) {
1306	req, out := c.ListAccountIntegrationsRequest(input)
1307	req.SetContext(ctx)
1308	req.ApplyOptions(opts...)
1309	return out, req.Send()
1310}
1311
1312const opListDomains = "ListDomains"
1313
1314// ListDomainsRequest generates a "aws/request.Request" representing the
1315// client's request for the ListDomains operation. The "output" return
1316// value will be populated with the request's response once the request completes
1317// successfully.
1318//
1319// Use "Send" method on the returned Request to send the API call to the service.
1320// the "output" return value is not valid until after Send returns without error.
1321//
1322// See ListDomains for more information on using the ListDomains
1323// API call, and error handling.
1324//
1325// This method is useful when you want to inject custom logic or configuration
1326// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1327//
1328//
1329//    // Example sending a request using the ListDomainsRequest method.
1330//    req, resp := client.ListDomainsRequest(params)
1331//
1332//    err := req.Send()
1333//    if err == nil { // resp is now filled
1334//        fmt.Println(resp)
1335//    }
1336//
1337// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListDomains
1338func (c *CustomerProfiles) ListDomainsRequest(input *ListDomainsInput) (req *request.Request, output *ListDomainsOutput) {
1339	op := &request.Operation{
1340		Name:       opListDomains,
1341		HTTPMethod: "GET",
1342		HTTPPath:   "/domains",
1343	}
1344
1345	if input == nil {
1346		input = &ListDomainsInput{}
1347	}
1348
1349	output = &ListDomainsOutput{}
1350	req = c.newRequest(op, input, output)
1351	return
1352}
1353
1354// ListDomains API operation for Amazon Connect Customer Profiles.
1355//
1356// Returns a list of all the domains for an AWS account that have been created.
1357//
1358// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1359// with awserr.Error's Code and Message methods to get detailed information about
1360// the error.
1361//
1362// See the AWS API reference guide for Amazon Connect Customer Profiles's
1363// API operation ListDomains for usage and error information.
1364//
1365// Returned Error Types:
1366//   * BadRequestException
1367//   The input you provided is invalid.
1368//
1369//   * ResourceNotFoundException
1370//   The requested resource does not exist, or access was denied.
1371//
1372//   * AccessDeniedException
1373//   You do not have sufficient access to perform this action.
1374//
1375//   * ThrottlingException
1376//   You exceeded the maximum number of requests.
1377//
1378//   * InternalServerException
1379//   An internal service error occurred.
1380//
1381// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListDomains
1382func (c *CustomerProfiles) ListDomains(input *ListDomainsInput) (*ListDomainsOutput, error) {
1383	req, out := c.ListDomainsRequest(input)
1384	return out, req.Send()
1385}
1386
1387// ListDomainsWithContext is the same as ListDomains with the addition of
1388// the ability to pass a context and additional request options.
1389//
1390// See ListDomains for details on how to use this API operation.
1391//
1392// The context must be non-nil and will be used for request cancellation. If
1393// the context is nil a panic will occur. In the future the SDK may create
1394// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1395// for more information on using Contexts.
1396func (c *CustomerProfiles) ListDomainsWithContext(ctx aws.Context, input *ListDomainsInput, opts ...request.Option) (*ListDomainsOutput, error) {
1397	req, out := c.ListDomainsRequest(input)
1398	req.SetContext(ctx)
1399	req.ApplyOptions(opts...)
1400	return out, req.Send()
1401}
1402
1403const opListIntegrations = "ListIntegrations"
1404
1405// ListIntegrationsRequest generates a "aws/request.Request" representing the
1406// client's request for the ListIntegrations operation. The "output" return
1407// value will be populated with the request's response once the request completes
1408// successfully.
1409//
1410// Use "Send" method on the returned Request to send the API call to the service.
1411// the "output" return value is not valid until after Send returns without error.
1412//
1413// See ListIntegrations for more information on using the ListIntegrations
1414// API call, and error handling.
1415//
1416// This method is useful when you want to inject custom logic or configuration
1417// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1418//
1419//
1420//    // Example sending a request using the ListIntegrationsRequest method.
1421//    req, resp := client.ListIntegrationsRequest(params)
1422//
1423//    err := req.Send()
1424//    if err == nil { // resp is now filled
1425//        fmt.Println(resp)
1426//    }
1427//
1428// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListIntegrations
1429func (c *CustomerProfiles) ListIntegrationsRequest(input *ListIntegrationsInput) (req *request.Request, output *ListIntegrationsOutput) {
1430	op := &request.Operation{
1431		Name:       opListIntegrations,
1432		HTTPMethod: "GET",
1433		HTTPPath:   "/domains/{DomainName}/integrations",
1434	}
1435
1436	if input == nil {
1437		input = &ListIntegrationsInput{}
1438	}
1439
1440	output = &ListIntegrationsOutput{}
1441	req = c.newRequest(op, input, output)
1442	return
1443}
1444
1445// ListIntegrations API operation for Amazon Connect Customer Profiles.
1446//
1447// Lists all of the integrations in your domain.
1448//
1449// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1450// with awserr.Error's Code and Message methods to get detailed information about
1451// the error.
1452//
1453// See the AWS API reference guide for Amazon Connect Customer Profiles's
1454// API operation ListIntegrations for usage and error information.
1455//
1456// Returned Error Types:
1457//   * BadRequestException
1458//   The input you provided is invalid.
1459//
1460//   * ResourceNotFoundException
1461//   The requested resource does not exist, or access was denied.
1462//
1463//   * AccessDeniedException
1464//   You do not have sufficient access to perform this action.
1465//
1466//   * ThrottlingException
1467//   You exceeded the maximum number of requests.
1468//
1469//   * InternalServerException
1470//   An internal service error occurred.
1471//
1472// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListIntegrations
1473func (c *CustomerProfiles) ListIntegrations(input *ListIntegrationsInput) (*ListIntegrationsOutput, error) {
1474	req, out := c.ListIntegrationsRequest(input)
1475	return out, req.Send()
1476}
1477
1478// ListIntegrationsWithContext is the same as ListIntegrations with the addition of
1479// the ability to pass a context and additional request options.
1480//
1481// See ListIntegrations for details on how to use this API operation.
1482//
1483// The context must be non-nil and will be used for request cancellation. If
1484// the context is nil a panic will occur. In the future the SDK may create
1485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1486// for more information on using Contexts.
1487func (c *CustomerProfiles) ListIntegrationsWithContext(ctx aws.Context, input *ListIntegrationsInput, opts ...request.Option) (*ListIntegrationsOutput, error) {
1488	req, out := c.ListIntegrationsRequest(input)
1489	req.SetContext(ctx)
1490	req.ApplyOptions(opts...)
1491	return out, req.Send()
1492}
1493
1494const opListProfileObjectTypeTemplates = "ListProfileObjectTypeTemplates"
1495
1496// ListProfileObjectTypeTemplatesRequest generates a "aws/request.Request" representing the
1497// client's request for the ListProfileObjectTypeTemplates operation. The "output" return
1498// value will be populated with the request's response once the request completes
1499// successfully.
1500//
1501// Use "Send" method on the returned Request to send the API call to the service.
1502// the "output" return value is not valid until after Send returns without error.
1503//
1504// See ListProfileObjectTypeTemplates for more information on using the ListProfileObjectTypeTemplates
1505// API call, and error handling.
1506//
1507// This method is useful when you want to inject custom logic or configuration
1508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1509//
1510//
1511//    // Example sending a request using the ListProfileObjectTypeTemplatesRequest method.
1512//    req, resp := client.ListProfileObjectTypeTemplatesRequest(params)
1513//
1514//    err := req.Send()
1515//    if err == nil { // resp is now filled
1516//        fmt.Println(resp)
1517//    }
1518//
1519// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypeTemplates
1520func (c *CustomerProfiles) ListProfileObjectTypeTemplatesRequest(input *ListProfileObjectTypeTemplatesInput) (req *request.Request, output *ListProfileObjectTypeTemplatesOutput) {
1521	op := &request.Operation{
1522		Name:       opListProfileObjectTypeTemplates,
1523		HTTPMethod: "GET",
1524		HTTPPath:   "/templates",
1525	}
1526
1527	if input == nil {
1528		input = &ListProfileObjectTypeTemplatesInput{}
1529	}
1530
1531	output = &ListProfileObjectTypeTemplatesOutput{}
1532	req = c.newRequest(op, input, output)
1533	return
1534}
1535
1536// ListProfileObjectTypeTemplates API operation for Amazon Connect Customer Profiles.
1537//
1538// Lists all of the template information for object types.
1539//
1540// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1541// with awserr.Error's Code and Message methods to get detailed information about
1542// the error.
1543//
1544// See the AWS API reference guide for Amazon Connect Customer Profiles's
1545// API operation ListProfileObjectTypeTemplates for usage and error information.
1546//
1547// Returned Error Types:
1548//   * BadRequestException
1549//   The input you provided is invalid.
1550//
1551//   * ResourceNotFoundException
1552//   The requested resource does not exist, or access was denied.
1553//
1554//   * AccessDeniedException
1555//   You do not have sufficient access to perform this action.
1556//
1557//   * ThrottlingException
1558//   You exceeded the maximum number of requests.
1559//
1560//   * InternalServerException
1561//   An internal service error occurred.
1562//
1563// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypeTemplates
1564func (c *CustomerProfiles) ListProfileObjectTypeTemplates(input *ListProfileObjectTypeTemplatesInput) (*ListProfileObjectTypeTemplatesOutput, error) {
1565	req, out := c.ListProfileObjectTypeTemplatesRequest(input)
1566	return out, req.Send()
1567}
1568
1569// ListProfileObjectTypeTemplatesWithContext is the same as ListProfileObjectTypeTemplates with the addition of
1570// the ability to pass a context and additional request options.
1571//
1572// See ListProfileObjectTypeTemplates for details on how to use this API operation.
1573//
1574// The context must be non-nil and will be used for request cancellation. If
1575// the context is nil a panic will occur. In the future the SDK may create
1576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1577// for more information on using Contexts.
1578func (c *CustomerProfiles) ListProfileObjectTypeTemplatesWithContext(ctx aws.Context, input *ListProfileObjectTypeTemplatesInput, opts ...request.Option) (*ListProfileObjectTypeTemplatesOutput, error) {
1579	req, out := c.ListProfileObjectTypeTemplatesRequest(input)
1580	req.SetContext(ctx)
1581	req.ApplyOptions(opts...)
1582	return out, req.Send()
1583}
1584
1585const opListProfileObjectTypes = "ListProfileObjectTypes"
1586
1587// ListProfileObjectTypesRequest generates a "aws/request.Request" representing the
1588// client's request for the ListProfileObjectTypes operation. The "output" return
1589// value will be populated with the request's response once the request completes
1590// successfully.
1591//
1592// Use "Send" method on the returned Request to send the API call to the service.
1593// the "output" return value is not valid until after Send returns without error.
1594//
1595// See ListProfileObjectTypes for more information on using the ListProfileObjectTypes
1596// API call, and error handling.
1597//
1598// This method is useful when you want to inject custom logic or configuration
1599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1600//
1601//
1602//    // Example sending a request using the ListProfileObjectTypesRequest method.
1603//    req, resp := client.ListProfileObjectTypesRequest(params)
1604//
1605//    err := req.Send()
1606//    if err == nil { // resp is now filled
1607//        fmt.Println(resp)
1608//    }
1609//
1610// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypes
1611func (c *CustomerProfiles) ListProfileObjectTypesRequest(input *ListProfileObjectTypesInput) (req *request.Request, output *ListProfileObjectTypesOutput) {
1612	op := &request.Operation{
1613		Name:       opListProfileObjectTypes,
1614		HTTPMethod: "GET",
1615		HTTPPath:   "/domains/{DomainName}/object-types",
1616	}
1617
1618	if input == nil {
1619		input = &ListProfileObjectTypesInput{}
1620	}
1621
1622	output = &ListProfileObjectTypesOutput{}
1623	req = c.newRequest(op, input, output)
1624	return
1625}
1626
1627// ListProfileObjectTypes API operation for Amazon Connect Customer Profiles.
1628//
1629// Lists all of the templates available within the service.
1630//
1631// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1632// with awserr.Error's Code and Message methods to get detailed information about
1633// the error.
1634//
1635// See the AWS API reference guide for Amazon Connect Customer Profiles's
1636// API operation ListProfileObjectTypes for usage and error information.
1637//
1638// Returned Error Types:
1639//   * BadRequestException
1640//   The input you provided is invalid.
1641//
1642//   * ResourceNotFoundException
1643//   The requested resource does not exist, or access was denied.
1644//
1645//   * AccessDeniedException
1646//   You do not have sufficient access to perform this action.
1647//
1648//   * ThrottlingException
1649//   You exceeded the maximum number of requests.
1650//
1651//   * InternalServerException
1652//   An internal service error occurred.
1653//
1654// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypes
1655func (c *CustomerProfiles) ListProfileObjectTypes(input *ListProfileObjectTypesInput) (*ListProfileObjectTypesOutput, error) {
1656	req, out := c.ListProfileObjectTypesRequest(input)
1657	return out, req.Send()
1658}
1659
1660// ListProfileObjectTypesWithContext is the same as ListProfileObjectTypes with the addition of
1661// the ability to pass a context and additional request options.
1662//
1663// See ListProfileObjectTypes for details on how to use this API operation.
1664//
1665// The context must be non-nil and will be used for request cancellation. If
1666// the context is nil a panic will occur. In the future the SDK may create
1667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1668// for more information on using Contexts.
1669func (c *CustomerProfiles) ListProfileObjectTypesWithContext(ctx aws.Context, input *ListProfileObjectTypesInput, opts ...request.Option) (*ListProfileObjectTypesOutput, error) {
1670	req, out := c.ListProfileObjectTypesRequest(input)
1671	req.SetContext(ctx)
1672	req.ApplyOptions(opts...)
1673	return out, req.Send()
1674}
1675
1676const opListProfileObjects = "ListProfileObjects"
1677
1678// ListProfileObjectsRequest generates a "aws/request.Request" representing the
1679// client's request for the ListProfileObjects operation. The "output" return
1680// value will be populated with the request's response once the request completes
1681// successfully.
1682//
1683// Use "Send" method on the returned Request to send the API call to the service.
1684// the "output" return value is not valid until after Send returns without error.
1685//
1686// See ListProfileObjects for more information on using the ListProfileObjects
1687// API call, and error handling.
1688//
1689// This method is useful when you want to inject custom logic or configuration
1690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1691//
1692//
1693//    // Example sending a request using the ListProfileObjectsRequest method.
1694//    req, resp := client.ListProfileObjectsRequest(params)
1695//
1696//    err := req.Send()
1697//    if err == nil { // resp is now filled
1698//        fmt.Println(resp)
1699//    }
1700//
1701// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjects
1702func (c *CustomerProfiles) ListProfileObjectsRequest(input *ListProfileObjectsInput) (req *request.Request, output *ListProfileObjectsOutput) {
1703	op := &request.Operation{
1704		Name:       opListProfileObjects,
1705		HTTPMethod: "POST",
1706		HTTPPath:   "/domains/{DomainName}/profiles/objects",
1707	}
1708
1709	if input == nil {
1710		input = &ListProfileObjectsInput{}
1711	}
1712
1713	output = &ListProfileObjectsOutput{}
1714	req = c.newRequest(op, input, output)
1715	return
1716}
1717
1718// ListProfileObjects API operation for Amazon Connect Customer Profiles.
1719//
1720// Returns a list of objects associated with a profile of a given ProfileObjectType.
1721//
1722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1723// with awserr.Error's Code and Message methods to get detailed information about
1724// the error.
1725//
1726// See the AWS API reference guide for Amazon Connect Customer Profiles's
1727// API operation ListProfileObjects for usage and error information.
1728//
1729// Returned Error Types:
1730//   * BadRequestException
1731//   The input you provided is invalid.
1732//
1733//   * AccessDeniedException
1734//   You do not have sufficient access to perform this action.
1735//
1736//   * ResourceNotFoundException
1737//   The requested resource does not exist, or access was denied.
1738//
1739//   * ThrottlingException
1740//   You exceeded the maximum number of requests.
1741//
1742//   * InternalServerException
1743//   An internal service error occurred.
1744//
1745// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjects
1746func (c *CustomerProfiles) ListProfileObjects(input *ListProfileObjectsInput) (*ListProfileObjectsOutput, error) {
1747	req, out := c.ListProfileObjectsRequest(input)
1748	return out, req.Send()
1749}
1750
1751// ListProfileObjectsWithContext is the same as ListProfileObjects with the addition of
1752// the ability to pass a context and additional request options.
1753//
1754// See ListProfileObjects for details on how to use this API operation.
1755//
1756// The context must be non-nil and will be used for request cancellation. If
1757// the context is nil a panic will occur. In the future the SDK may create
1758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1759// for more information on using Contexts.
1760func (c *CustomerProfiles) ListProfileObjectsWithContext(ctx aws.Context, input *ListProfileObjectsInput, opts ...request.Option) (*ListProfileObjectsOutput, error) {
1761	req, out := c.ListProfileObjectsRequest(input)
1762	req.SetContext(ctx)
1763	req.ApplyOptions(opts...)
1764	return out, req.Send()
1765}
1766
1767const opListTagsForResource = "ListTagsForResource"
1768
1769// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1770// client's request for the ListTagsForResource operation. The "output" return
1771// value will be populated with the request's response once the request completes
1772// successfully.
1773//
1774// Use "Send" method on the returned Request to send the API call to the service.
1775// the "output" return value is not valid until after Send returns without error.
1776//
1777// See ListTagsForResource for more information on using the ListTagsForResource
1778// API call, and error handling.
1779//
1780// This method is useful when you want to inject custom logic or configuration
1781// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1782//
1783//
1784//    // Example sending a request using the ListTagsForResourceRequest method.
1785//    req, resp := client.ListTagsForResourceRequest(params)
1786//
1787//    err := req.Send()
1788//    if err == nil { // resp is now filled
1789//        fmt.Println(resp)
1790//    }
1791//
1792// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListTagsForResource
1793func (c *CustomerProfiles) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1794	op := &request.Operation{
1795		Name:       opListTagsForResource,
1796		HTTPMethod: "GET",
1797		HTTPPath:   "/tags/{resourceArn}",
1798	}
1799
1800	if input == nil {
1801		input = &ListTagsForResourceInput{}
1802	}
1803
1804	output = &ListTagsForResourceOutput{}
1805	req = c.newRequest(op, input, output)
1806	return
1807}
1808
1809// ListTagsForResource API operation for Amazon Connect Customer Profiles.
1810//
1811// Displays the tags associated with an Amazon Connect Customer Profiles resource.
1812// In Connect Customer Profiles, domains, profile object types, and integrations
1813// can be tagged.
1814//
1815// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1816// with awserr.Error's Code and Message methods to get detailed information about
1817// the error.
1818//
1819// See the AWS API reference guide for Amazon Connect Customer Profiles's
1820// API operation ListTagsForResource for usage and error information.
1821//
1822// Returned Error Types:
1823//   * InternalServerException
1824//   An internal service error occurred.
1825//
1826//   * BadRequestException
1827//   The input you provided is invalid.
1828//
1829//   * ResourceNotFoundException
1830//   The requested resource does not exist, or access was denied.
1831//
1832// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListTagsForResource
1833func (c *CustomerProfiles) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1834	req, out := c.ListTagsForResourceRequest(input)
1835	return out, req.Send()
1836}
1837
1838// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1839// the ability to pass a context and additional request options.
1840//
1841// See ListTagsForResource for details on how to use this API operation.
1842//
1843// The context must be non-nil and will be used for request cancellation. If
1844// the context is nil a panic will occur. In the future the SDK may create
1845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1846// for more information on using Contexts.
1847func (c *CustomerProfiles) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1848	req, out := c.ListTagsForResourceRequest(input)
1849	req.SetContext(ctx)
1850	req.ApplyOptions(opts...)
1851	return out, req.Send()
1852}
1853
1854const opPutIntegration = "PutIntegration"
1855
1856// PutIntegrationRequest generates a "aws/request.Request" representing the
1857// client's request for the PutIntegration operation. The "output" return
1858// value will be populated with the request's response once the request completes
1859// successfully.
1860//
1861// Use "Send" method on the returned Request to send the API call to the service.
1862// the "output" return value is not valid until after Send returns without error.
1863//
1864// See PutIntegration for more information on using the PutIntegration
1865// API call, and error handling.
1866//
1867// This method is useful when you want to inject custom logic or configuration
1868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1869//
1870//
1871//    // Example sending a request using the PutIntegrationRequest method.
1872//    req, resp := client.PutIntegrationRequest(params)
1873//
1874//    err := req.Send()
1875//    if err == nil { // resp is now filled
1876//        fmt.Println(resp)
1877//    }
1878//
1879// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutIntegration
1880func (c *CustomerProfiles) PutIntegrationRequest(input *PutIntegrationInput) (req *request.Request, output *PutIntegrationOutput) {
1881	op := &request.Operation{
1882		Name:       opPutIntegration,
1883		HTTPMethod: "PUT",
1884		HTTPPath:   "/domains/{DomainName}/integrations",
1885	}
1886
1887	if input == nil {
1888		input = &PutIntegrationInput{}
1889	}
1890
1891	output = &PutIntegrationOutput{}
1892	req = c.newRequest(op, input, output)
1893	return
1894}
1895
1896// PutIntegration API operation for Amazon Connect Customer Profiles.
1897//
1898// Adds an integration between the service and a third-party service, which
1899// includes Amazon AppFlow and Amazon Connect.
1900//
1901// An integration can belong to only one domain.
1902//
1903// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1904// with awserr.Error's Code and Message methods to get detailed information about
1905// the error.
1906//
1907// See the AWS API reference guide for Amazon Connect Customer Profiles's
1908// API operation PutIntegration for usage and error information.
1909//
1910// Returned Error Types:
1911//   * BadRequestException
1912//   The input you provided is invalid.
1913//
1914//   * ResourceNotFoundException
1915//   The requested resource does not exist, or access was denied.
1916//
1917//   * AccessDeniedException
1918//   You do not have sufficient access to perform this action.
1919//
1920//   * ThrottlingException
1921//   You exceeded the maximum number of requests.
1922//
1923//   * InternalServerException
1924//   An internal service error occurred.
1925//
1926// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutIntegration
1927func (c *CustomerProfiles) PutIntegration(input *PutIntegrationInput) (*PutIntegrationOutput, error) {
1928	req, out := c.PutIntegrationRequest(input)
1929	return out, req.Send()
1930}
1931
1932// PutIntegrationWithContext is the same as PutIntegration with the addition of
1933// the ability to pass a context and additional request options.
1934//
1935// See PutIntegration for details on how to use this API operation.
1936//
1937// The context must be non-nil and will be used for request cancellation. If
1938// the context is nil a panic will occur. In the future the SDK may create
1939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1940// for more information on using Contexts.
1941func (c *CustomerProfiles) PutIntegrationWithContext(ctx aws.Context, input *PutIntegrationInput, opts ...request.Option) (*PutIntegrationOutput, error) {
1942	req, out := c.PutIntegrationRequest(input)
1943	req.SetContext(ctx)
1944	req.ApplyOptions(opts...)
1945	return out, req.Send()
1946}
1947
1948const opPutProfileObject = "PutProfileObject"
1949
1950// PutProfileObjectRequest generates a "aws/request.Request" representing the
1951// client's request for the PutProfileObject operation. The "output" return
1952// value will be populated with the request's response once the request completes
1953// successfully.
1954//
1955// Use "Send" method on the returned Request to send the API call to the service.
1956// the "output" return value is not valid until after Send returns without error.
1957//
1958// See PutProfileObject for more information on using the PutProfileObject
1959// API call, and error handling.
1960//
1961// This method is useful when you want to inject custom logic or configuration
1962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1963//
1964//
1965//    // Example sending a request using the PutProfileObjectRequest method.
1966//    req, resp := client.PutProfileObjectRequest(params)
1967//
1968//    err := req.Send()
1969//    if err == nil { // resp is now filled
1970//        fmt.Println(resp)
1971//    }
1972//
1973// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObject
1974func (c *CustomerProfiles) PutProfileObjectRequest(input *PutProfileObjectInput) (req *request.Request, output *PutProfileObjectOutput) {
1975	op := &request.Operation{
1976		Name:       opPutProfileObject,
1977		HTTPMethod: "PUT",
1978		HTTPPath:   "/domains/{DomainName}/profiles/objects",
1979	}
1980
1981	if input == nil {
1982		input = &PutProfileObjectInput{}
1983	}
1984
1985	output = &PutProfileObjectOutput{}
1986	req = c.newRequest(op, input, output)
1987	return
1988}
1989
1990// PutProfileObject API operation for Amazon Connect Customer Profiles.
1991//
1992// Adds additional objects to customer profiles of a given ObjectType.
1993//
1994// When adding a specific profile object, like a Contact Trace Record (CTR),
1995// an inferred profile can get created if it is not mapped to an existing profile.
1996// The resulting profile will only have a phone number populated in the standard
1997// ProfileObject. Any additional CTRs with the same phone number will be mapped
1998// to the same inferred profile.
1999//
2000// When a ProfileObject is created and if a ProfileObjectType already exists
2001// for the ProfileObject, it will provide data to a standard profile depending
2002// on the ProfileObjectType definition.
2003//
2004// PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType.
2005//
2006// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2007// with awserr.Error's Code and Message methods to get detailed information about
2008// the error.
2009//
2010// See the AWS API reference guide for Amazon Connect Customer Profiles's
2011// API operation PutProfileObject for usage and error information.
2012//
2013// Returned Error Types:
2014//   * BadRequestException
2015//   The input you provided is invalid.
2016//
2017//   * AccessDeniedException
2018//   You do not have sufficient access to perform this action.
2019//
2020//   * ResourceNotFoundException
2021//   The requested resource does not exist, or access was denied.
2022//
2023//   * ThrottlingException
2024//   You exceeded the maximum number of requests.
2025//
2026//   * InternalServerException
2027//   An internal service error occurred.
2028//
2029// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObject
2030func (c *CustomerProfiles) PutProfileObject(input *PutProfileObjectInput) (*PutProfileObjectOutput, error) {
2031	req, out := c.PutProfileObjectRequest(input)
2032	return out, req.Send()
2033}
2034
2035// PutProfileObjectWithContext is the same as PutProfileObject with the addition of
2036// the ability to pass a context and additional request options.
2037//
2038// See PutProfileObject for details on how to use this API operation.
2039//
2040// The context must be non-nil and will be used for request cancellation. If
2041// the context is nil a panic will occur. In the future the SDK may create
2042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2043// for more information on using Contexts.
2044func (c *CustomerProfiles) PutProfileObjectWithContext(ctx aws.Context, input *PutProfileObjectInput, opts ...request.Option) (*PutProfileObjectOutput, error) {
2045	req, out := c.PutProfileObjectRequest(input)
2046	req.SetContext(ctx)
2047	req.ApplyOptions(opts...)
2048	return out, req.Send()
2049}
2050
2051const opPutProfileObjectType = "PutProfileObjectType"
2052
2053// PutProfileObjectTypeRequest generates a "aws/request.Request" representing the
2054// client's request for the PutProfileObjectType operation. The "output" return
2055// value will be populated with the request's response once the request completes
2056// successfully.
2057//
2058// Use "Send" method on the returned Request to send the API call to the service.
2059// the "output" return value is not valid until after Send returns without error.
2060//
2061// See PutProfileObjectType for more information on using the PutProfileObjectType
2062// API call, and error handling.
2063//
2064// This method is useful when you want to inject custom logic or configuration
2065// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2066//
2067//
2068//    // Example sending a request using the PutProfileObjectTypeRequest method.
2069//    req, resp := client.PutProfileObjectTypeRequest(params)
2070//
2071//    err := req.Send()
2072//    if err == nil { // resp is now filled
2073//        fmt.Println(resp)
2074//    }
2075//
2076// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObjectType
2077func (c *CustomerProfiles) PutProfileObjectTypeRequest(input *PutProfileObjectTypeInput) (req *request.Request, output *PutProfileObjectTypeOutput) {
2078	op := &request.Operation{
2079		Name:       opPutProfileObjectType,
2080		HTTPMethod: "PUT",
2081		HTTPPath:   "/domains/{DomainName}/object-types/{ObjectTypeName}",
2082	}
2083
2084	if input == nil {
2085		input = &PutProfileObjectTypeInput{}
2086	}
2087
2088	output = &PutProfileObjectTypeOutput{}
2089	req = c.newRequest(op, input, output)
2090	return
2091}
2092
2093// PutProfileObjectType API operation for Amazon Connect Customer Profiles.
2094//
2095// Defines a ProfileObjectType.
2096//
2097// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2098// with awserr.Error's Code and Message methods to get detailed information about
2099// the error.
2100//
2101// See the AWS API reference guide for Amazon Connect Customer Profiles's
2102// API operation PutProfileObjectType for usage and error information.
2103//
2104// Returned Error Types:
2105//   * BadRequestException
2106//   The input you provided is invalid.
2107//
2108//   * ResourceNotFoundException
2109//   The requested resource does not exist, or access was denied.
2110//
2111//   * AccessDeniedException
2112//   You do not have sufficient access to perform this action.
2113//
2114//   * ThrottlingException
2115//   You exceeded the maximum number of requests.
2116//
2117//   * InternalServerException
2118//   An internal service error occurred.
2119//
2120// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObjectType
2121func (c *CustomerProfiles) PutProfileObjectType(input *PutProfileObjectTypeInput) (*PutProfileObjectTypeOutput, error) {
2122	req, out := c.PutProfileObjectTypeRequest(input)
2123	return out, req.Send()
2124}
2125
2126// PutProfileObjectTypeWithContext is the same as PutProfileObjectType with the addition of
2127// the ability to pass a context and additional request options.
2128//
2129// See PutProfileObjectType for details on how to use this API operation.
2130//
2131// The context must be non-nil and will be used for request cancellation. If
2132// the context is nil a panic will occur. In the future the SDK may create
2133// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2134// for more information on using Contexts.
2135func (c *CustomerProfiles) PutProfileObjectTypeWithContext(ctx aws.Context, input *PutProfileObjectTypeInput, opts ...request.Option) (*PutProfileObjectTypeOutput, error) {
2136	req, out := c.PutProfileObjectTypeRequest(input)
2137	req.SetContext(ctx)
2138	req.ApplyOptions(opts...)
2139	return out, req.Send()
2140}
2141
2142const opSearchProfiles = "SearchProfiles"
2143
2144// SearchProfilesRequest generates a "aws/request.Request" representing the
2145// client's request for the SearchProfiles operation. The "output" return
2146// value will be populated with the request's response once the request completes
2147// successfully.
2148//
2149// Use "Send" method on the returned Request to send the API call to the service.
2150// the "output" return value is not valid until after Send returns without error.
2151//
2152// See SearchProfiles for more information on using the SearchProfiles
2153// API call, and error handling.
2154//
2155// This method is useful when you want to inject custom logic or configuration
2156// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2157//
2158//
2159//    // Example sending a request using the SearchProfilesRequest method.
2160//    req, resp := client.SearchProfilesRequest(params)
2161//
2162//    err := req.Send()
2163//    if err == nil { // resp is now filled
2164//        fmt.Println(resp)
2165//    }
2166//
2167// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/SearchProfiles
2168func (c *CustomerProfiles) SearchProfilesRequest(input *SearchProfilesInput) (req *request.Request, output *SearchProfilesOutput) {
2169	op := &request.Operation{
2170		Name:       opSearchProfiles,
2171		HTTPMethod: "POST",
2172		HTTPPath:   "/domains/{DomainName}/profiles/search",
2173	}
2174
2175	if input == nil {
2176		input = &SearchProfilesInput{}
2177	}
2178
2179	output = &SearchProfilesOutput{}
2180	req = c.newRequest(op, input, output)
2181	return
2182}
2183
2184// SearchProfiles API operation for Amazon Connect Customer Profiles.
2185//
2186// Searches for profiles within a specific domain name using name, phone number,
2187// email address, account number, or a custom defined index.
2188//
2189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2190// with awserr.Error's Code and Message methods to get detailed information about
2191// the error.
2192//
2193// See the AWS API reference guide for Amazon Connect Customer Profiles's
2194// API operation SearchProfiles for usage and error information.
2195//
2196// Returned Error Types:
2197//   * BadRequestException
2198//   The input you provided is invalid.
2199//
2200//   * AccessDeniedException
2201//   You do not have sufficient access to perform this action.
2202//
2203//   * ResourceNotFoundException
2204//   The requested resource does not exist, or access was denied.
2205//
2206//   * ThrottlingException
2207//   You exceeded the maximum number of requests.
2208//
2209//   * InternalServerException
2210//   An internal service error occurred.
2211//
2212// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/SearchProfiles
2213func (c *CustomerProfiles) SearchProfiles(input *SearchProfilesInput) (*SearchProfilesOutput, error) {
2214	req, out := c.SearchProfilesRequest(input)
2215	return out, req.Send()
2216}
2217
2218// SearchProfilesWithContext is the same as SearchProfiles with the addition of
2219// the ability to pass a context and additional request options.
2220//
2221// See SearchProfiles for details on how to use this API operation.
2222//
2223// The context must be non-nil and will be used for request cancellation. If
2224// the context is nil a panic will occur. In the future the SDK may create
2225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2226// for more information on using Contexts.
2227func (c *CustomerProfiles) SearchProfilesWithContext(ctx aws.Context, input *SearchProfilesInput, opts ...request.Option) (*SearchProfilesOutput, error) {
2228	req, out := c.SearchProfilesRequest(input)
2229	req.SetContext(ctx)
2230	req.ApplyOptions(opts...)
2231	return out, req.Send()
2232}
2233
2234const opTagResource = "TagResource"
2235
2236// TagResourceRequest generates a "aws/request.Request" representing the
2237// client's request for the TagResource operation. The "output" return
2238// value will be populated with the request's response once the request completes
2239// successfully.
2240//
2241// Use "Send" method on the returned Request to send the API call to the service.
2242// the "output" return value is not valid until after Send returns without error.
2243//
2244// See TagResource for more information on using the TagResource
2245// API call, and error handling.
2246//
2247// This method is useful when you want to inject custom logic or configuration
2248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2249//
2250//
2251//    // Example sending a request using the TagResourceRequest method.
2252//    req, resp := client.TagResourceRequest(params)
2253//
2254//    err := req.Send()
2255//    if err == nil { // resp is now filled
2256//        fmt.Println(resp)
2257//    }
2258//
2259// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/TagResource
2260func (c *CustomerProfiles) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2261	op := &request.Operation{
2262		Name:       opTagResource,
2263		HTTPMethod: "POST",
2264		HTTPPath:   "/tags/{resourceArn}",
2265	}
2266
2267	if input == nil {
2268		input = &TagResourceInput{}
2269	}
2270
2271	output = &TagResourceOutput{}
2272	req = c.newRequest(op, input, output)
2273	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2274	return
2275}
2276
2277// TagResource API operation for Amazon Connect Customer Profiles.
2278//
2279// Assigns one or more tags (key-value pairs) to the specified Amazon Connect
2280// Customer Profiles resource. Tags can help you organize and categorize your
2281// resources. You can also use them to scope user permissions by granting a
2282// user permission to access or change only resources with certain tag values.
2283// In Connect Customer Profiles, domains, profile object types, and integrations
2284// can be tagged.
2285//
2286// Tags don't have any semantic meaning to AWS and are interpreted strictly
2287// as strings of characters.
2288//
2289// You can use the TagResource action with a resource that already has tags.
2290// If you specify a new tag key, this tag is appended to the list of tags associated
2291// with the resource. If you specify a tag key that is already associated with
2292// the resource, the new tag value that you specify replaces the previous value
2293// for that tag.
2294//
2295// You can associate as many as 50 tags with a resource.
2296//
2297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2298// with awserr.Error's Code and Message methods to get detailed information about
2299// the error.
2300//
2301// See the AWS API reference guide for Amazon Connect Customer Profiles's
2302// API operation TagResource for usage and error information.
2303//
2304// Returned Error Types:
2305//   * InternalServerException
2306//   An internal service error occurred.
2307//
2308//   * BadRequestException
2309//   The input you provided is invalid.
2310//
2311//   * ResourceNotFoundException
2312//   The requested resource does not exist, or access was denied.
2313//
2314// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/TagResource
2315func (c *CustomerProfiles) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2316	req, out := c.TagResourceRequest(input)
2317	return out, req.Send()
2318}
2319
2320// TagResourceWithContext is the same as TagResource with the addition of
2321// the ability to pass a context and additional request options.
2322//
2323// See TagResource for details on how to use this API operation.
2324//
2325// The context must be non-nil and will be used for request cancellation. If
2326// the context is nil a panic will occur. In the future the SDK may create
2327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2328// for more information on using Contexts.
2329func (c *CustomerProfiles) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2330	req, out := c.TagResourceRequest(input)
2331	req.SetContext(ctx)
2332	req.ApplyOptions(opts...)
2333	return out, req.Send()
2334}
2335
2336const opUntagResource = "UntagResource"
2337
2338// UntagResourceRequest generates a "aws/request.Request" representing the
2339// client's request for the UntagResource operation. The "output" return
2340// value will be populated with the request's response once the request completes
2341// successfully.
2342//
2343// Use "Send" method on the returned Request to send the API call to the service.
2344// the "output" return value is not valid until after Send returns without error.
2345//
2346// See UntagResource for more information on using the UntagResource
2347// API call, and error handling.
2348//
2349// This method is useful when you want to inject custom logic or configuration
2350// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2351//
2352//
2353//    // Example sending a request using the UntagResourceRequest method.
2354//    req, resp := client.UntagResourceRequest(params)
2355//
2356//    err := req.Send()
2357//    if err == nil { // resp is now filled
2358//        fmt.Println(resp)
2359//    }
2360//
2361// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UntagResource
2362func (c *CustomerProfiles) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2363	op := &request.Operation{
2364		Name:       opUntagResource,
2365		HTTPMethod: "DELETE",
2366		HTTPPath:   "/tags/{resourceArn}",
2367	}
2368
2369	if input == nil {
2370		input = &UntagResourceInput{}
2371	}
2372
2373	output = &UntagResourceOutput{}
2374	req = c.newRequest(op, input, output)
2375	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2376	return
2377}
2378
2379// UntagResource API operation for Amazon Connect Customer Profiles.
2380//
2381// Removes one or more tags from the specified Amazon Connect Customer Profiles
2382// resource. In Connect Customer Profiles, domains, profile object types, and
2383// integrations can be tagged.
2384//
2385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2386// with awserr.Error's Code and Message methods to get detailed information about
2387// the error.
2388//
2389// See the AWS API reference guide for Amazon Connect Customer Profiles's
2390// API operation UntagResource for usage and error information.
2391//
2392// Returned Error Types:
2393//   * InternalServerException
2394//   An internal service error occurred.
2395//
2396//   * BadRequestException
2397//   The input you provided is invalid.
2398//
2399//   * ResourceNotFoundException
2400//   The requested resource does not exist, or access was denied.
2401//
2402// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UntagResource
2403func (c *CustomerProfiles) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2404	req, out := c.UntagResourceRequest(input)
2405	return out, req.Send()
2406}
2407
2408// UntagResourceWithContext is the same as UntagResource with the addition of
2409// the ability to pass a context and additional request options.
2410//
2411// See UntagResource for details on how to use this API operation.
2412//
2413// The context must be non-nil and will be used for request cancellation. If
2414// the context is nil a panic will occur. In the future the SDK may create
2415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2416// for more information on using Contexts.
2417func (c *CustomerProfiles) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2418	req, out := c.UntagResourceRequest(input)
2419	req.SetContext(ctx)
2420	req.ApplyOptions(opts...)
2421	return out, req.Send()
2422}
2423
2424const opUpdateDomain = "UpdateDomain"
2425
2426// UpdateDomainRequest generates a "aws/request.Request" representing the
2427// client's request for the UpdateDomain operation. The "output" return
2428// value will be populated with the request's response once the request completes
2429// successfully.
2430//
2431// Use "Send" method on the returned Request to send the API call to the service.
2432// the "output" return value is not valid until after Send returns without error.
2433//
2434// See UpdateDomain for more information on using the UpdateDomain
2435// API call, and error handling.
2436//
2437// This method is useful when you want to inject custom logic or configuration
2438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2439//
2440//
2441//    // Example sending a request using the UpdateDomainRequest method.
2442//    req, resp := client.UpdateDomainRequest(params)
2443//
2444//    err := req.Send()
2445//    if err == nil { // resp is now filled
2446//        fmt.Println(resp)
2447//    }
2448//
2449// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateDomain
2450func (c *CustomerProfiles) UpdateDomainRequest(input *UpdateDomainInput) (req *request.Request, output *UpdateDomainOutput) {
2451	op := &request.Operation{
2452		Name:       opUpdateDomain,
2453		HTTPMethod: "PUT",
2454		HTTPPath:   "/domains/{DomainName}",
2455	}
2456
2457	if input == nil {
2458		input = &UpdateDomainInput{}
2459	}
2460
2461	output = &UpdateDomainOutput{}
2462	req = c.newRequest(op, input, output)
2463	return
2464}
2465
2466// UpdateDomain API operation for Amazon Connect Customer Profiles.
2467//
2468// Updates the properties of a domain, including creating or selecting a dead
2469// letter queue or an encryption key.
2470//
2471// Once a domain is created, the name can’t be changed.
2472//
2473// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2474// with awserr.Error's Code and Message methods to get detailed information about
2475// the error.
2476//
2477// See the AWS API reference guide for Amazon Connect Customer Profiles's
2478// API operation UpdateDomain for usage and error information.
2479//
2480// Returned Error Types:
2481//   * BadRequestException
2482//   The input you provided is invalid.
2483//
2484//   * ResourceNotFoundException
2485//   The requested resource does not exist, or access was denied.
2486//
2487//   * AccessDeniedException
2488//   You do not have sufficient access to perform this action.
2489//
2490//   * ThrottlingException
2491//   You exceeded the maximum number of requests.
2492//
2493//   * InternalServerException
2494//   An internal service error occurred.
2495//
2496// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateDomain
2497func (c *CustomerProfiles) UpdateDomain(input *UpdateDomainInput) (*UpdateDomainOutput, error) {
2498	req, out := c.UpdateDomainRequest(input)
2499	return out, req.Send()
2500}
2501
2502// UpdateDomainWithContext is the same as UpdateDomain with the addition of
2503// the ability to pass a context and additional request options.
2504//
2505// See UpdateDomain for details on how to use this API operation.
2506//
2507// The context must be non-nil and will be used for request cancellation. If
2508// the context is nil a panic will occur. In the future the SDK may create
2509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2510// for more information on using Contexts.
2511func (c *CustomerProfiles) UpdateDomainWithContext(ctx aws.Context, input *UpdateDomainInput, opts ...request.Option) (*UpdateDomainOutput, error) {
2512	req, out := c.UpdateDomainRequest(input)
2513	req.SetContext(ctx)
2514	req.ApplyOptions(opts...)
2515	return out, req.Send()
2516}
2517
2518const opUpdateProfile = "UpdateProfile"
2519
2520// UpdateProfileRequest generates a "aws/request.Request" representing the
2521// client's request for the UpdateProfile operation. The "output" return
2522// value will be populated with the request's response once the request completes
2523// successfully.
2524//
2525// Use "Send" method on the returned Request to send the API call to the service.
2526// the "output" return value is not valid until after Send returns without error.
2527//
2528// See UpdateProfile for more information on using the UpdateProfile
2529// API call, and error handling.
2530//
2531// This method is useful when you want to inject custom logic or configuration
2532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2533//
2534//
2535//    // Example sending a request using the UpdateProfileRequest method.
2536//    req, resp := client.UpdateProfileRequest(params)
2537//
2538//    err := req.Send()
2539//    if err == nil { // resp is now filled
2540//        fmt.Println(resp)
2541//    }
2542//
2543// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateProfile
2544func (c *CustomerProfiles) UpdateProfileRequest(input *UpdateProfileInput) (req *request.Request, output *UpdateProfileOutput) {
2545	op := &request.Operation{
2546		Name:       opUpdateProfile,
2547		HTTPMethod: "PUT",
2548		HTTPPath:   "/domains/{DomainName}/profiles",
2549	}
2550
2551	if input == nil {
2552		input = &UpdateProfileInput{}
2553	}
2554
2555	output = &UpdateProfileOutput{}
2556	req = c.newRequest(op, input, output)
2557	return
2558}
2559
2560// UpdateProfile API operation for Amazon Connect Customer Profiles.
2561//
2562// Updates the properties of a profile. The ProfileId is required for updating
2563// a customer profile.
2564//
2565// When calling the UpdateProfile API, specifying an empty string value means
2566// that any existing value will be removed. Not specifying a string value means
2567// that any value already there will be kept.
2568//
2569// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2570// with awserr.Error's Code and Message methods to get detailed information about
2571// the error.
2572//
2573// See the AWS API reference guide for Amazon Connect Customer Profiles's
2574// API operation UpdateProfile for usage and error information.
2575//
2576// Returned Error Types:
2577//   * BadRequestException
2578//   The input you provided is invalid.
2579//
2580//   * AccessDeniedException
2581//   You do not have sufficient access to perform this action.
2582//
2583//   * ResourceNotFoundException
2584//   The requested resource does not exist, or access was denied.
2585//
2586//   * ThrottlingException
2587//   You exceeded the maximum number of requests.
2588//
2589//   * InternalServerException
2590//   An internal service error occurred.
2591//
2592// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateProfile
2593func (c *CustomerProfiles) UpdateProfile(input *UpdateProfileInput) (*UpdateProfileOutput, error) {
2594	req, out := c.UpdateProfileRequest(input)
2595	return out, req.Send()
2596}
2597
2598// UpdateProfileWithContext is the same as UpdateProfile with the addition of
2599// the ability to pass a context and additional request options.
2600//
2601// See UpdateProfile for details on how to use this API operation.
2602//
2603// The context must be non-nil and will be used for request cancellation. If
2604// the context is nil a panic will occur. In the future the SDK may create
2605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2606// for more information on using Contexts.
2607func (c *CustomerProfiles) UpdateProfileWithContext(ctx aws.Context, input *UpdateProfileInput, opts ...request.Option) (*UpdateProfileOutput, error) {
2608	req, out := c.UpdateProfileRequest(input)
2609	req.SetContext(ctx)
2610	req.ApplyOptions(opts...)
2611	return out, req.Send()
2612}
2613
2614// You do not have sufficient access to perform this action.
2615type AccessDeniedException struct {
2616	_            struct{}                  `type:"structure"`
2617	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2618
2619	Message_ *string `locationName:"Message" type:"string"`
2620}
2621
2622// String returns the string representation
2623func (s AccessDeniedException) String() string {
2624	return awsutil.Prettify(s)
2625}
2626
2627// GoString returns the string representation
2628func (s AccessDeniedException) GoString() string {
2629	return s.String()
2630}
2631
2632func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
2633	return &AccessDeniedException{
2634		RespMetadata: v,
2635	}
2636}
2637
2638// Code returns the exception type name.
2639func (s *AccessDeniedException) Code() string {
2640	return "AccessDeniedException"
2641}
2642
2643// Message returns the exception's message.
2644func (s *AccessDeniedException) Message() string {
2645	if s.Message_ != nil {
2646		return *s.Message_
2647	}
2648	return ""
2649}
2650
2651// OrigErr always returns nil, satisfies awserr.Error interface.
2652func (s *AccessDeniedException) OrigErr() error {
2653	return nil
2654}
2655
2656func (s *AccessDeniedException) Error() string {
2657	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2658}
2659
2660// Status code returns the HTTP status code for the request's response error.
2661func (s *AccessDeniedException) StatusCode() int {
2662	return s.RespMetadata.StatusCode
2663}
2664
2665// RequestID returns the service's response RequestID for request.
2666func (s *AccessDeniedException) RequestID() string {
2667	return s.RespMetadata.RequestID
2668}
2669
2670type AddProfileKeyInput struct {
2671	_ struct{} `type:"structure"`
2672
2673	// The unique name of the domain.
2674	//
2675	// DomainName is a required field
2676	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
2677
2678	// A searchable identifier of a customer profile.
2679	//
2680	// KeyName is a required field
2681	KeyName *string `min:"1" type:"string" required:"true"`
2682
2683	// The unique identifier of a customer profile.
2684	//
2685	// ProfileId is a required field
2686	ProfileId *string `type:"string" required:"true"`
2687
2688	// A list of key values.
2689	//
2690	// Values is a required field
2691	Values []*string `type:"list" required:"true"`
2692}
2693
2694// String returns the string representation
2695func (s AddProfileKeyInput) String() string {
2696	return awsutil.Prettify(s)
2697}
2698
2699// GoString returns the string representation
2700func (s AddProfileKeyInput) GoString() string {
2701	return s.String()
2702}
2703
2704// Validate inspects the fields of the type to determine if they are valid.
2705func (s *AddProfileKeyInput) Validate() error {
2706	invalidParams := request.ErrInvalidParams{Context: "AddProfileKeyInput"}
2707	if s.DomainName == nil {
2708		invalidParams.Add(request.NewErrParamRequired("DomainName"))
2709	}
2710	if s.DomainName != nil && len(*s.DomainName) < 1 {
2711		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
2712	}
2713	if s.KeyName == nil {
2714		invalidParams.Add(request.NewErrParamRequired("KeyName"))
2715	}
2716	if s.KeyName != nil && len(*s.KeyName) < 1 {
2717		invalidParams.Add(request.NewErrParamMinLen("KeyName", 1))
2718	}
2719	if s.ProfileId == nil {
2720		invalidParams.Add(request.NewErrParamRequired("ProfileId"))
2721	}
2722	if s.Values == nil {
2723		invalidParams.Add(request.NewErrParamRequired("Values"))
2724	}
2725
2726	if invalidParams.Len() > 0 {
2727		return invalidParams
2728	}
2729	return nil
2730}
2731
2732// SetDomainName sets the DomainName field's value.
2733func (s *AddProfileKeyInput) SetDomainName(v string) *AddProfileKeyInput {
2734	s.DomainName = &v
2735	return s
2736}
2737
2738// SetKeyName sets the KeyName field's value.
2739func (s *AddProfileKeyInput) SetKeyName(v string) *AddProfileKeyInput {
2740	s.KeyName = &v
2741	return s
2742}
2743
2744// SetProfileId sets the ProfileId field's value.
2745func (s *AddProfileKeyInput) SetProfileId(v string) *AddProfileKeyInput {
2746	s.ProfileId = &v
2747	return s
2748}
2749
2750// SetValues sets the Values field's value.
2751func (s *AddProfileKeyInput) SetValues(v []*string) *AddProfileKeyInput {
2752	s.Values = v
2753	return s
2754}
2755
2756type AddProfileKeyOutput struct {
2757	_ struct{} `type:"structure"`
2758
2759	// A searchable identifier of a customer profile.
2760	KeyName *string `min:"1" type:"string"`
2761
2762	// A list of key values.
2763	Values []*string `type:"list"`
2764}
2765
2766// String returns the string representation
2767func (s AddProfileKeyOutput) String() string {
2768	return awsutil.Prettify(s)
2769}
2770
2771// GoString returns the string representation
2772func (s AddProfileKeyOutput) GoString() string {
2773	return s.String()
2774}
2775
2776// SetKeyName sets the KeyName field's value.
2777func (s *AddProfileKeyOutput) SetKeyName(v string) *AddProfileKeyOutput {
2778	s.KeyName = &v
2779	return s
2780}
2781
2782// SetValues sets the Values field's value.
2783func (s *AddProfileKeyOutput) SetValues(v []*string) *AddProfileKeyOutput {
2784	s.Values = v
2785	return s
2786}
2787
2788// A generic address associated with the customer that is not mailing, shipping,
2789// or billing.
2790type Address struct {
2791	_ struct{} `type:"structure"`
2792
2793	// The first line of a customer address.
2794	Address1 *string `min:"1" type:"string"`
2795
2796	// The second line of a customer address.
2797	Address2 *string `min:"1" type:"string"`
2798
2799	// The third line of a customer address.
2800	Address3 *string `min:"1" type:"string"`
2801
2802	// The fourth line of a customer address.
2803	Address4 *string `min:"1" type:"string"`
2804
2805	// The city in which a customer lives.
2806	City *string `min:"1" type:"string"`
2807
2808	// The country in which a customer lives.
2809	Country *string `min:"1" type:"string"`
2810
2811	// The county in which a customer lives.
2812	County *string `min:"1" type:"string"`
2813
2814	// The postal code of a customer address.
2815	PostalCode *string `min:"1" type:"string"`
2816
2817	// The province in which a customer lives.
2818	Province *string `min:"1" type:"string"`
2819
2820	// The state in which a customer lives.
2821	State *string `min:"1" type:"string"`
2822}
2823
2824// String returns the string representation
2825func (s Address) String() string {
2826	return awsutil.Prettify(s)
2827}
2828
2829// GoString returns the string representation
2830func (s Address) GoString() string {
2831	return s.String()
2832}
2833
2834// Validate inspects the fields of the type to determine if they are valid.
2835func (s *Address) Validate() error {
2836	invalidParams := request.ErrInvalidParams{Context: "Address"}
2837	if s.Address1 != nil && len(*s.Address1) < 1 {
2838		invalidParams.Add(request.NewErrParamMinLen("Address1", 1))
2839	}
2840	if s.Address2 != nil && len(*s.Address2) < 1 {
2841		invalidParams.Add(request.NewErrParamMinLen("Address2", 1))
2842	}
2843	if s.Address3 != nil && len(*s.Address3) < 1 {
2844		invalidParams.Add(request.NewErrParamMinLen("Address3", 1))
2845	}
2846	if s.Address4 != nil && len(*s.Address4) < 1 {
2847		invalidParams.Add(request.NewErrParamMinLen("Address4", 1))
2848	}
2849	if s.City != nil && len(*s.City) < 1 {
2850		invalidParams.Add(request.NewErrParamMinLen("City", 1))
2851	}
2852	if s.Country != nil && len(*s.Country) < 1 {
2853		invalidParams.Add(request.NewErrParamMinLen("Country", 1))
2854	}
2855	if s.County != nil && len(*s.County) < 1 {
2856		invalidParams.Add(request.NewErrParamMinLen("County", 1))
2857	}
2858	if s.PostalCode != nil && len(*s.PostalCode) < 1 {
2859		invalidParams.Add(request.NewErrParamMinLen("PostalCode", 1))
2860	}
2861	if s.Province != nil && len(*s.Province) < 1 {
2862		invalidParams.Add(request.NewErrParamMinLen("Province", 1))
2863	}
2864	if s.State != nil && len(*s.State) < 1 {
2865		invalidParams.Add(request.NewErrParamMinLen("State", 1))
2866	}
2867
2868	if invalidParams.Len() > 0 {
2869		return invalidParams
2870	}
2871	return nil
2872}
2873
2874// SetAddress1 sets the Address1 field's value.
2875func (s *Address) SetAddress1(v string) *Address {
2876	s.Address1 = &v
2877	return s
2878}
2879
2880// SetAddress2 sets the Address2 field's value.
2881func (s *Address) SetAddress2(v string) *Address {
2882	s.Address2 = &v
2883	return s
2884}
2885
2886// SetAddress3 sets the Address3 field's value.
2887func (s *Address) SetAddress3(v string) *Address {
2888	s.Address3 = &v
2889	return s
2890}
2891
2892// SetAddress4 sets the Address4 field's value.
2893func (s *Address) SetAddress4(v string) *Address {
2894	s.Address4 = &v
2895	return s
2896}
2897
2898// SetCity sets the City field's value.
2899func (s *Address) SetCity(v string) *Address {
2900	s.City = &v
2901	return s
2902}
2903
2904// SetCountry sets the Country field's value.
2905func (s *Address) SetCountry(v string) *Address {
2906	s.Country = &v
2907	return s
2908}
2909
2910// SetCounty sets the County field's value.
2911func (s *Address) SetCounty(v string) *Address {
2912	s.County = &v
2913	return s
2914}
2915
2916// SetPostalCode sets the PostalCode field's value.
2917func (s *Address) SetPostalCode(v string) *Address {
2918	s.PostalCode = &v
2919	return s
2920}
2921
2922// SetProvince sets the Province field's value.
2923func (s *Address) SetProvince(v string) *Address {
2924	s.Province = &v
2925	return s
2926}
2927
2928// SetState sets the State field's value.
2929func (s *Address) SetState(v string) *Address {
2930	s.State = &v
2931	return s
2932}
2933
2934// The input you provided is invalid.
2935type BadRequestException struct {
2936	_            struct{}                  `type:"structure"`
2937	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2938
2939	Message_ *string `locationName:"Message" type:"string"`
2940}
2941
2942// String returns the string representation
2943func (s BadRequestException) String() string {
2944	return awsutil.Prettify(s)
2945}
2946
2947// GoString returns the string representation
2948func (s BadRequestException) GoString() string {
2949	return s.String()
2950}
2951
2952func newErrorBadRequestException(v protocol.ResponseMetadata) error {
2953	return &BadRequestException{
2954		RespMetadata: v,
2955	}
2956}
2957
2958// Code returns the exception type name.
2959func (s *BadRequestException) Code() string {
2960	return "BadRequestException"
2961}
2962
2963// Message returns the exception's message.
2964func (s *BadRequestException) Message() string {
2965	if s.Message_ != nil {
2966		return *s.Message_
2967	}
2968	return ""
2969}
2970
2971// OrigErr always returns nil, satisfies awserr.Error interface.
2972func (s *BadRequestException) OrigErr() error {
2973	return nil
2974}
2975
2976func (s *BadRequestException) Error() string {
2977	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2978}
2979
2980// Status code returns the HTTP status code for the request's response error.
2981func (s *BadRequestException) StatusCode() int {
2982	return s.RespMetadata.StatusCode
2983}
2984
2985// RequestID returns the service's response RequestID for request.
2986func (s *BadRequestException) RequestID() string {
2987	return s.RespMetadata.RequestID
2988}
2989
2990type CreateDomainInput struct {
2991	_ struct{} `type:"structure"`
2992
2993	// The URL of the SQS dead letter queue, which is used for reporting errors
2994	// associated with ingesting data from third party applications. You must set
2995	// up a policy on the DeadLetterQueue for the SendMessage operation to enable
2996	// Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.
2997	DeadLetterQueueUrl *string `type:"string"`
2998
2999	// The default encryption key, which is an AWS managed key, is used when no
3000	// specific type of encryption key is specified. It is used to encrypt all data
3001	// before it is placed in permanent or semi-permanent storage.
3002	DefaultEncryptionKey *string `type:"string"`
3003
3004	// The default number of days until the data within the domain expires.
3005	//
3006	// DefaultExpirationDays is a required field
3007	DefaultExpirationDays *int64 `min:"1" type:"integer" required:"true"`
3008
3009	// The unique name of the domain.
3010	//
3011	// DomainName is a required field
3012	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3013
3014	// The tags used to organize, track, or control access for this resource.
3015	Tags map[string]*string `min:"1" type:"map"`
3016}
3017
3018// String returns the string representation
3019func (s CreateDomainInput) String() string {
3020	return awsutil.Prettify(s)
3021}
3022
3023// GoString returns the string representation
3024func (s CreateDomainInput) GoString() string {
3025	return s.String()
3026}
3027
3028// Validate inspects the fields of the type to determine if they are valid.
3029func (s *CreateDomainInput) Validate() error {
3030	invalidParams := request.ErrInvalidParams{Context: "CreateDomainInput"}
3031	if s.DefaultExpirationDays == nil {
3032		invalidParams.Add(request.NewErrParamRequired("DefaultExpirationDays"))
3033	}
3034	if s.DefaultExpirationDays != nil && *s.DefaultExpirationDays < 1 {
3035		invalidParams.Add(request.NewErrParamMinValue("DefaultExpirationDays", 1))
3036	}
3037	if s.DomainName == nil {
3038		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3039	}
3040	if s.DomainName != nil && len(*s.DomainName) < 1 {
3041		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3042	}
3043	if s.Tags != nil && len(s.Tags) < 1 {
3044		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
3045	}
3046
3047	if invalidParams.Len() > 0 {
3048		return invalidParams
3049	}
3050	return nil
3051}
3052
3053// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value.
3054func (s *CreateDomainInput) SetDeadLetterQueueUrl(v string) *CreateDomainInput {
3055	s.DeadLetterQueueUrl = &v
3056	return s
3057}
3058
3059// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value.
3060func (s *CreateDomainInput) SetDefaultEncryptionKey(v string) *CreateDomainInput {
3061	s.DefaultEncryptionKey = &v
3062	return s
3063}
3064
3065// SetDefaultExpirationDays sets the DefaultExpirationDays field's value.
3066func (s *CreateDomainInput) SetDefaultExpirationDays(v int64) *CreateDomainInput {
3067	s.DefaultExpirationDays = &v
3068	return s
3069}
3070
3071// SetDomainName sets the DomainName field's value.
3072func (s *CreateDomainInput) SetDomainName(v string) *CreateDomainInput {
3073	s.DomainName = &v
3074	return s
3075}
3076
3077// SetTags sets the Tags field's value.
3078func (s *CreateDomainInput) SetTags(v map[string]*string) *CreateDomainInput {
3079	s.Tags = v
3080	return s
3081}
3082
3083type CreateDomainOutput struct {
3084	_ struct{} `type:"structure"`
3085
3086	// The timestamp of when the domain was created.
3087	//
3088	// CreatedAt is a required field
3089	CreatedAt *time.Time `type:"timestamp" required:"true"`
3090
3091	// The URL of the SQS dead letter queue, which is used for reporting errors
3092	// associated with ingesting data from third party applications.
3093	DeadLetterQueueUrl *string `type:"string"`
3094
3095	// The default encryption key, which is an AWS managed key, is used when no
3096	// specific type of encryption key is specified. It is used to encrypt all data
3097	// before it is placed in permanent or semi-permanent storage.
3098	DefaultEncryptionKey *string `type:"string"`
3099
3100	// The default number of days until the data within the domain expires.
3101	//
3102	// DefaultExpirationDays is a required field
3103	DefaultExpirationDays *int64 `min:"1" type:"integer" required:"true"`
3104
3105	// The unique name of the domain.
3106	//
3107	// DomainName is a required field
3108	DomainName *string `min:"1" type:"string" required:"true"`
3109
3110	// The timestamp of when the domain was most recently edited.
3111	//
3112	// LastUpdatedAt is a required field
3113	LastUpdatedAt *time.Time `type:"timestamp" required:"true"`
3114
3115	// The tags used to organize, track, or control access for this resource.
3116	Tags map[string]*string `min:"1" type:"map"`
3117}
3118
3119// String returns the string representation
3120func (s CreateDomainOutput) String() string {
3121	return awsutil.Prettify(s)
3122}
3123
3124// GoString returns the string representation
3125func (s CreateDomainOutput) GoString() string {
3126	return s.String()
3127}
3128
3129// SetCreatedAt sets the CreatedAt field's value.
3130func (s *CreateDomainOutput) SetCreatedAt(v time.Time) *CreateDomainOutput {
3131	s.CreatedAt = &v
3132	return s
3133}
3134
3135// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value.
3136func (s *CreateDomainOutput) SetDeadLetterQueueUrl(v string) *CreateDomainOutput {
3137	s.DeadLetterQueueUrl = &v
3138	return s
3139}
3140
3141// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value.
3142func (s *CreateDomainOutput) SetDefaultEncryptionKey(v string) *CreateDomainOutput {
3143	s.DefaultEncryptionKey = &v
3144	return s
3145}
3146
3147// SetDefaultExpirationDays sets the DefaultExpirationDays field's value.
3148func (s *CreateDomainOutput) SetDefaultExpirationDays(v int64) *CreateDomainOutput {
3149	s.DefaultExpirationDays = &v
3150	return s
3151}
3152
3153// SetDomainName sets the DomainName field's value.
3154func (s *CreateDomainOutput) SetDomainName(v string) *CreateDomainOutput {
3155	s.DomainName = &v
3156	return s
3157}
3158
3159// SetLastUpdatedAt sets the LastUpdatedAt field's value.
3160func (s *CreateDomainOutput) SetLastUpdatedAt(v time.Time) *CreateDomainOutput {
3161	s.LastUpdatedAt = &v
3162	return s
3163}
3164
3165// SetTags sets the Tags field's value.
3166func (s *CreateDomainOutput) SetTags(v map[string]*string) *CreateDomainOutput {
3167	s.Tags = v
3168	return s
3169}
3170
3171type CreateProfileInput struct {
3172	_ struct{} `type:"structure"`
3173
3174	// A unique account number that you have given to the customer.
3175	AccountNumber *string `min:"1" type:"string"`
3176
3177	// Any additional information relevant to the customer's profile.
3178	AdditionalInformation *string `min:"1" type:"string"`
3179
3180	// A generic address associated with the customer that is not mailing, shipping,
3181	// or billing.
3182	Address *Address `type:"structure"`
3183
3184	// A key value pair of attributes of a customer profile.
3185	Attributes map[string]*string `type:"map"`
3186
3187	// The customer’s billing address.
3188	BillingAddress *Address `type:"structure"`
3189
3190	// The customer’s birth date.
3191	BirthDate *string `min:"1" type:"string"`
3192
3193	// The customer’s business email address.
3194	BusinessEmailAddress *string `min:"1" type:"string"`
3195
3196	// The name of the customer’s business.
3197	BusinessName *string `min:"1" type:"string"`
3198
3199	// The customer’s business phone number.
3200	BusinessPhoneNumber *string `min:"1" type:"string"`
3201
3202	// The unique name of the domain.
3203	//
3204	// DomainName is a required field
3205	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3206
3207	// The customer's email address, which has not been specified as a personal
3208	// or business address.
3209	EmailAddress *string `min:"1" type:"string"`
3210
3211	// The customer’s first name.
3212	FirstName *string `min:"1" type:"string"`
3213
3214	// The gender with which the customer identifies.
3215	Gender *string `type:"string" enum:"Gender"`
3216
3217	// The customer’s home phone number.
3218	HomePhoneNumber *string `min:"1" type:"string"`
3219
3220	// The customer’s last name.
3221	LastName *string `min:"1" type:"string"`
3222
3223	// The customer’s mailing address.
3224	MailingAddress *Address `type:"structure"`
3225
3226	// The customer’s middle name.
3227	MiddleName *string `min:"1" type:"string"`
3228
3229	// The customer’s mobile phone number.
3230	MobilePhoneNumber *string `min:"1" type:"string"`
3231
3232	// The type of profile used to describe the customer.
3233	PartyType *string `type:"string" enum:"PartyType"`
3234
3235	// The customer’s personal email address.
3236	PersonalEmailAddress *string `min:"1" type:"string"`
3237
3238	// The customer's phone number, which has not been specified as a mobile, home,
3239	// or business number.
3240	PhoneNumber *string `min:"1" type:"string"`
3241
3242	// The customer’s shipping address.
3243	ShippingAddress *Address `type:"structure"`
3244}
3245
3246// String returns the string representation
3247func (s CreateProfileInput) String() string {
3248	return awsutil.Prettify(s)
3249}
3250
3251// GoString returns the string representation
3252func (s CreateProfileInput) GoString() string {
3253	return s.String()
3254}
3255
3256// Validate inspects the fields of the type to determine if they are valid.
3257func (s *CreateProfileInput) Validate() error {
3258	invalidParams := request.ErrInvalidParams{Context: "CreateProfileInput"}
3259	if s.AccountNumber != nil && len(*s.AccountNumber) < 1 {
3260		invalidParams.Add(request.NewErrParamMinLen("AccountNumber", 1))
3261	}
3262	if s.AdditionalInformation != nil && len(*s.AdditionalInformation) < 1 {
3263		invalidParams.Add(request.NewErrParamMinLen("AdditionalInformation", 1))
3264	}
3265	if s.BirthDate != nil && len(*s.BirthDate) < 1 {
3266		invalidParams.Add(request.NewErrParamMinLen("BirthDate", 1))
3267	}
3268	if s.BusinessEmailAddress != nil && len(*s.BusinessEmailAddress) < 1 {
3269		invalidParams.Add(request.NewErrParamMinLen("BusinessEmailAddress", 1))
3270	}
3271	if s.BusinessName != nil && len(*s.BusinessName) < 1 {
3272		invalidParams.Add(request.NewErrParamMinLen("BusinessName", 1))
3273	}
3274	if s.BusinessPhoneNumber != nil && len(*s.BusinessPhoneNumber) < 1 {
3275		invalidParams.Add(request.NewErrParamMinLen("BusinessPhoneNumber", 1))
3276	}
3277	if s.DomainName == nil {
3278		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3279	}
3280	if s.DomainName != nil && len(*s.DomainName) < 1 {
3281		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3282	}
3283	if s.EmailAddress != nil && len(*s.EmailAddress) < 1 {
3284		invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1))
3285	}
3286	if s.FirstName != nil && len(*s.FirstName) < 1 {
3287		invalidParams.Add(request.NewErrParamMinLen("FirstName", 1))
3288	}
3289	if s.HomePhoneNumber != nil && len(*s.HomePhoneNumber) < 1 {
3290		invalidParams.Add(request.NewErrParamMinLen("HomePhoneNumber", 1))
3291	}
3292	if s.LastName != nil && len(*s.LastName) < 1 {
3293		invalidParams.Add(request.NewErrParamMinLen("LastName", 1))
3294	}
3295	if s.MiddleName != nil && len(*s.MiddleName) < 1 {
3296		invalidParams.Add(request.NewErrParamMinLen("MiddleName", 1))
3297	}
3298	if s.MobilePhoneNumber != nil && len(*s.MobilePhoneNumber) < 1 {
3299		invalidParams.Add(request.NewErrParamMinLen("MobilePhoneNumber", 1))
3300	}
3301	if s.PersonalEmailAddress != nil && len(*s.PersonalEmailAddress) < 1 {
3302		invalidParams.Add(request.NewErrParamMinLen("PersonalEmailAddress", 1))
3303	}
3304	if s.PhoneNumber != nil && len(*s.PhoneNumber) < 1 {
3305		invalidParams.Add(request.NewErrParamMinLen("PhoneNumber", 1))
3306	}
3307	if s.Address != nil {
3308		if err := s.Address.Validate(); err != nil {
3309			invalidParams.AddNested("Address", err.(request.ErrInvalidParams))
3310		}
3311	}
3312	if s.BillingAddress != nil {
3313		if err := s.BillingAddress.Validate(); err != nil {
3314			invalidParams.AddNested("BillingAddress", err.(request.ErrInvalidParams))
3315		}
3316	}
3317	if s.MailingAddress != nil {
3318		if err := s.MailingAddress.Validate(); err != nil {
3319			invalidParams.AddNested("MailingAddress", err.(request.ErrInvalidParams))
3320		}
3321	}
3322	if s.ShippingAddress != nil {
3323		if err := s.ShippingAddress.Validate(); err != nil {
3324			invalidParams.AddNested("ShippingAddress", err.(request.ErrInvalidParams))
3325		}
3326	}
3327
3328	if invalidParams.Len() > 0 {
3329		return invalidParams
3330	}
3331	return nil
3332}
3333
3334// SetAccountNumber sets the AccountNumber field's value.
3335func (s *CreateProfileInput) SetAccountNumber(v string) *CreateProfileInput {
3336	s.AccountNumber = &v
3337	return s
3338}
3339
3340// SetAdditionalInformation sets the AdditionalInformation field's value.
3341func (s *CreateProfileInput) SetAdditionalInformation(v string) *CreateProfileInput {
3342	s.AdditionalInformation = &v
3343	return s
3344}
3345
3346// SetAddress sets the Address field's value.
3347func (s *CreateProfileInput) SetAddress(v *Address) *CreateProfileInput {
3348	s.Address = v
3349	return s
3350}
3351
3352// SetAttributes sets the Attributes field's value.
3353func (s *CreateProfileInput) SetAttributes(v map[string]*string) *CreateProfileInput {
3354	s.Attributes = v
3355	return s
3356}
3357
3358// SetBillingAddress sets the BillingAddress field's value.
3359func (s *CreateProfileInput) SetBillingAddress(v *Address) *CreateProfileInput {
3360	s.BillingAddress = v
3361	return s
3362}
3363
3364// SetBirthDate sets the BirthDate field's value.
3365func (s *CreateProfileInput) SetBirthDate(v string) *CreateProfileInput {
3366	s.BirthDate = &v
3367	return s
3368}
3369
3370// SetBusinessEmailAddress sets the BusinessEmailAddress field's value.
3371func (s *CreateProfileInput) SetBusinessEmailAddress(v string) *CreateProfileInput {
3372	s.BusinessEmailAddress = &v
3373	return s
3374}
3375
3376// SetBusinessName sets the BusinessName field's value.
3377func (s *CreateProfileInput) SetBusinessName(v string) *CreateProfileInput {
3378	s.BusinessName = &v
3379	return s
3380}
3381
3382// SetBusinessPhoneNumber sets the BusinessPhoneNumber field's value.
3383func (s *CreateProfileInput) SetBusinessPhoneNumber(v string) *CreateProfileInput {
3384	s.BusinessPhoneNumber = &v
3385	return s
3386}
3387
3388// SetDomainName sets the DomainName field's value.
3389func (s *CreateProfileInput) SetDomainName(v string) *CreateProfileInput {
3390	s.DomainName = &v
3391	return s
3392}
3393
3394// SetEmailAddress sets the EmailAddress field's value.
3395func (s *CreateProfileInput) SetEmailAddress(v string) *CreateProfileInput {
3396	s.EmailAddress = &v
3397	return s
3398}
3399
3400// SetFirstName sets the FirstName field's value.
3401func (s *CreateProfileInput) SetFirstName(v string) *CreateProfileInput {
3402	s.FirstName = &v
3403	return s
3404}
3405
3406// SetGender sets the Gender field's value.
3407func (s *CreateProfileInput) SetGender(v string) *CreateProfileInput {
3408	s.Gender = &v
3409	return s
3410}
3411
3412// SetHomePhoneNumber sets the HomePhoneNumber field's value.
3413func (s *CreateProfileInput) SetHomePhoneNumber(v string) *CreateProfileInput {
3414	s.HomePhoneNumber = &v
3415	return s
3416}
3417
3418// SetLastName sets the LastName field's value.
3419func (s *CreateProfileInput) SetLastName(v string) *CreateProfileInput {
3420	s.LastName = &v
3421	return s
3422}
3423
3424// SetMailingAddress sets the MailingAddress field's value.
3425func (s *CreateProfileInput) SetMailingAddress(v *Address) *CreateProfileInput {
3426	s.MailingAddress = v
3427	return s
3428}
3429
3430// SetMiddleName sets the MiddleName field's value.
3431func (s *CreateProfileInput) SetMiddleName(v string) *CreateProfileInput {
3432	s.MiddleName = &v
3433	return s
3434}
3435
3436// SetMobilePhoneNumber sets the MobilePhoneNumber field's value.
3437func (s *CreateProfileInput) SetMobilePhoneNumber(v string) *CreateProfileInput {
3438	s.MobilePhoneNumber = &v
3439	return s
3440}
3441
3442// SetPartyType sets the PartyType field's value.
3443func (s *CreateProfileInput) SetPartyType(v string) *CreateProfileInput {
3444	s.PartyType = &v
3445	return s
3446}
3447
3448// SetPersonalEmailAddress sets the PersonalEmailAddress field's value.
3449func (s *CreateProfileInput) SetPersonalEmailAddress(v string) *CreateProfileInput {
3450	s.PersonalEmailAddress = &v
3451	return s
3452}
3453
3454// SetPhoneNumber sets the PhoneNumber field's value.
3455func (s *CreateProfileInput) SetPhoneNumber(v string) *CreateProfileInput {
3456	s.PhoneNumber = &v
3457	return s
3458}
3459
3460// SetShippingAddress sets the ShippingAddress field's value.
3461func (s *CreateProfileInput) SetShippingAddress(v *Address) *CreateProfileInput {
3462	s.ShippingAddress = v
3463	return s
3464}
3465
3466type CreateProfileOutput struct {
3467	_ struct{} `type:"structure"`
3468
3469	// The unique identifier of a customer profile.
3470	//
3471	// ProfileId is a required field
3472	ProfileId *string `type:"string" required:"true"`
3473}
3474
3475// String returns the string representation
3476func (s CreateProfileOutput) String() string {
3477	return awsutil.Prettify(s)
3478}
3479
3480// GoString returns the string representation
3481func (s CreateProfileOutput) GoString() string {
3482	return s.String()
3483}
3484
3485// SetProfileId sets the ProfileId field's value.
3486func (s *CreateProfileOutput) SetProfileId(v string) *CreateProfileOutput {
3487	s.ProfileId = &v
3488	return s
3489}
3490
3491type DeleteDomainInput struct {
3492	_ struct{} `type:"structure"`
3493
3494	// The unique name of the domain.
3495	//
3496	// DomainName is a required field
3497	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3498}
3499
3500// String returns the string representation
3501func (s DeleteDomainInput) String() string {
3502	return awsutil.Prettify(s)
3503}
3504
3505// GoString returns the string representation
3506func (s DeleteDomainInput) GoString() string {
3507	return s.String()
3508}
3509
3510// Validate inspects the fields of the type to determine if they are valid.
3511func (s *DeleteDomainInput) Validate() error {
3512	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainInput"}
3513	if s.DomainName == nil {
3514		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3515	}
3516	if s.DomainName != nil && len(*s.DomainName) < 1 {
3517		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3518	}
3519
3520	if invalidParams.Len() > 0 {
3521		return invalidParams
3522	}
3523	return nil
3524}
3525
3526// SetDomainName sets the DomainName field's value.
3527func (s *DeleteDomainInput) SetDomainName(v string) *DeleteDomainInput {
3528	s.DomainName = &v
3529	return s
3530}
3531
3532type DeleteDomainOutput struct {
3533	_ struct{} `type:"structure"`
3534
3535	// A message that indicates the delete request is done.
3536	//
3537	// Message is a required field
3538	Message *string `type:"string" required:"true"`
3539}
3540
3541// String returns the string representation
3542func (s DeleteDomainOutput) String() string {
3543	return awsutil.Prettify(s)
3544}
3545
3546// GoString returns the string representation
3547func (s DeleteDomainOutput) GoString() string {
3548	return s.String()
3549}
3550
3551// SetMessage sets the Message field's value.
3552func (s *DeleteDomainOutput) SetMessage(v string) *DeleteDomainOutput {
3553	s.Message = &v
3554	return s
3555}
3556
3557type DeleteIntegrationInput struct {
3558	_ struct{} `type:"structure"`
3559
3560	// The unique name of the domain.
3561	//
3562	// DomainName is a required field
3563	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3564
3565	// The URI of the S3 bucket or any other type of data source.
3566	//
3567	// Uri is a required field
3568	Uri *string `min:"1" type:"string" required:"true"`
3569}
3570
3571// String returns the string representation
3572func (s DeleteIntegrationInput) String() string {
3573	return awsutil.Prettify(s)
3574}
3575
3576// GoString returns the string representation
3577func (s DeleteIntegrationInput) GoString() string {
3578	return s.String()
3579}
3580
3581// Validate inspects the fields of the type to determine if they are valid.
3582func (s *DeleteIntegrationInput) Validate() error {
3583	invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationInput"}
3584	if s.DomainName == nil {
3585		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3586	}
3587	if s.DomainName != nil && len(*s.DomainName) < 1 {
3588		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3589	}
3590	if s.Uri == nil {
3591		invalidParams.Add(request.NewErrParamRequired("Uri"))
3592	}
3593	if s.Uri != nil && len(*s.Uri) < 1 {
3594		invalidParams.Add(request.NewErrParamMinLen("Uri", 1))
3595	}
3596
3597	if invalidParams.Len() > 0 {
3598		return invalidParams
3599	}
3600	return nil
3601}
3602
3603// SetDomainName sets the DomainName field's value.
3604func (s *DeleteIntegrationInput) SetDomainName(v string) *DeleteIntegrationInput {
3605	s.DomainName = &v
3606	return s
3607}
3608
3609// SetUri sets the Uri field's value.
3610func (s *DeleteIntegrationInput) SetUri(v string) *DeleteIntegrationInput {
3611	s.Uri = &v
3612	return s
3613}
3614
3615type DeleteIntegrationOutput struct {
3616	_ struct{} `type:"structure"`
3617
3618	// A message that indicates the delete request is done.
3619	//
3620	// Message is a required field
3621	Message *string `type:"string" required:"true"`
3622}
3623
3624// String returns the string representation
3625func (s DeleteIntegrationOutput) String() string {
3626	return awsutil.Prettify(s)
3627}
3628
3629// GoString returns the string representation
3630func (s DeleteIntegrationOutput) GoString() string {
3631	return s.String()
3632}
3633
3634// SetMessage sets the Message field's value.
3635func (s *DeleteIntegrationOutput) SetMessage(v string) *DeleteIntegrationOutput {
3636	s.Message = &v
3637	return s
3638}
3639
3640type DeleteProfileInput struct {
3641	_ struct{} `type:"structure"`
3642
3643	// The unique name of the domain.
3644	//
3645	// DomainName is a required field
3646	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3647
3648	// The unique identifier of a customer profile.
3649	//
3650	// ProfileId is a required field
3651	ProfileId *string `type:"string" required:"true"`
3652}
3653
3654// String returns the string representation
3655func (s DeleteProfileInput) String() string {
3656	return awsutil.Prettify(s)
3657}
3658
3659// GoString returns the string representation
3660func (s DeleteProfileInput) GoString() string {
3661	return s.String()
3662}
3663
3664// Validate inspects the fields of the type to determine if they are valid.
3665func (s *DeleteProfileInput) Validate() error {
3666	invalidParams := request.ErrInvalidParams{Context: "DeleteProfileInput"}
3667	if s.DomainName == nil {
3668		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3669	}
3670	if s.DomainName != nil && len(*s.DomainName) < 1 {
3671		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3672	}
3673	if s.ProfileId == nil {
3674		invalidParams.Add(request.NewErrParamRequired("ProfileId"))
3675	}
3676
3677	if invalidParams.Len() > 0 {
3678		return invalidParams
3679	}
3680	return nil
3681}
3682
3683// SetDomainName sets the DomainName field's value.
3684func (s *DeleteProfileInput) SetDomainName(v string) *DeleteProfileInput {
3685	s.DomainName = &v
3686	return s
3687}
3688
3689// SetProfileId sets the ProfileId field's value.
3690func (s *DeleteProfileInput) SetProfileId(v string) *DeleteProfileInput {
3691	s.ProfileId = &v
3692	return s
3693}
3694
3695type DeleteProfileKeyInput struct {
3696	_ struct{} `type:"structure"`
3697
3698	// The unique name of the domain.
3699	//
3700	// DomainName is a required field
3701	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3702
3703	// A searchable identifier of a customer profile.
3704	//
3705	// KeyName is a required field
3706	KeyName *string `min:"1" type:"string" required:"true"`
3707
3708	// The unique identifier of a customer profile.
3709	//
3710	// ProfileId is a required field
3711	ProfileId *string `type:"string" required:"true"`
3712
3713	// A list of key values.
3714	//
3715	// Values is a required field
3716	Values []*string `type:"list" required:"true"`
3717}
3718
3719// String returns the string representation
3720func (s DeleteProfileKeyInput) String() string {
3721	return awsutil.Prettify(s)
3722}
3723
3724// GoString returns the string representation
3725func (s DeleteProfileKeyInput) GoString() string {
3726	return s.String()
3727}
3728
3729// Validate inspects the fields of the type to determine if they are valid.
3730func (s *DeleteProfileKeyInput) Validate() error {
3731	invalidParams := request.ErrInvalidParams{Context: "DeleteProfileKeyInput"}
3732	if s.DomainName == nil {
3733		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3734	}
3735	if s.DomainName != nil && len(*s.DomainName) < 1 {
3736		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3737	}
3738	if s.KeyName == nil {
3739		invalidParams.Add(request.NewErrParamRequired("KeyName"))
3740	}
3741	if s.KeyName != nil && len(*s.KeyName) < 1 {
3742		invalidParams.Add(request.NewErrParamMinLen("KeyName", 1))
3743	}
3744	if s.ProfileId == nil {
3745		invalidParams.Add(request.NewErrParamRequired("ProfileId"))
3746	}
3747	if s.Values == nil {
3748		invalidParams.Add(request.NewErrParamRequired("Values"))
3749	}
3750
3751	if invalidParams.Len() > 0 {
3752		return invalidParams
3753	}
3754	return nil
3755}
3756
3757// SetDomainName sets the DomainName field's value.
3758func (s *DeleteProfileKeyInput) SetDomainName(v string) *DeleteProfileKeyInput {
3759	s.DomainName = &v
3760	return s
3761}
3762
3763// SetKeyName sets the KeyName field's value.
3764func (s *DeleteProfileKeyInput) SetKeyName(v string) *DeleteProfileKeyInput {
3765	s.KeyName = &v
3766	return s
3767}
3768
3769// SetProfileId sets the ProfileId field's value.
3770func (s *DeleteProfileKeyInput) SetProfileId(v string) *DeleteProfileKeyInput {
3771	s.ProfileId = &v
3772	return s
3773}
3774
3775// SetValues sets the Values field's value.
3776func (s *DeleteProfileKeyInput) SetValues(v []*string) *DeleteProfileKeyInput {
3777	s.Values = v
3778	return s
3779}
3780
3781type DeleteProfileKeyOutput struct {
3782	_ struct{} `type:"structure"`
3783
3784	// A message that indicates the delete request is done.
3785	Message *string `type:"string"`
3786}
3787
3788// String returns the string representation
3789func (s DeleteProfileKeyOutput) String() string {
3790	return awsutil.Prettify(s)
3791}
3792
3793// GoString returns the string representation
3794func (s DeleteProfileKeyOutput) GoString() string {
3795	return s.String()
3796}
3797
3798// SetMessage sets the Message field's value.
3799func (s *DeleteProfileKeyOutput) SetMessage(v string) *DeleteProfileKeyOutput {
3800	s.Message = &v
3801	return s
3802}
3803
3804type DeleteProfileObjectInput struct {
3805	_ struct{} `type:"structure"`
3806
3807	// The unique name of the domain.
3808	//
3809	// DomainName is a required field
3810	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3811
3812	// The name of the profile object type.
3813	//
3814	// ObjectTypeName is a required field
3815	ObjectTypeName *string `min:"1" type:"string" required:"true"`
3816
3817	// The unique identifier of a customer profile.
3818	//
3819	// ProfileId is a required field
3820	ProfileId *string `type:"string" required:"true"`
3821
3822	// The unique identifier of the profile object generated by the service.
3823	//
3824	// ProfileObjectUniqueKey is a required field
3825	ProfileObjectUniqueKey *string `min:"1" type:"string" required:"true"`
3826}
3827
3828// String returns the string representation
3829func (s DeleteProfileObjectInput) String() string {
3830	return awsutil.Prettify(s)
3831}
3832
3833// GoString returns the string representation
3834func (s DeleteProfileObjectInput) GoString() string {
3835	return s.String()
3836}
3837
3838// Validate inspects the fields of the type to determine if they are valid.
3839func (s *DeleteProfileObjectInput) Validate() error {
3840	invalidParams := request.ErrInvalidParams{Context: "DeleteProfileObjectInput"}
3841	if s.DomainName == nil {
3842		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3843	}
3844	if s.DomainName != nil && len(*s.DomainName) < 1 {
3845		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3846	}
3847	if s.ObjectTypeName == nil {
3848		invalidParams.Add(request.NewErrParamRequired("ObjectTypeName"))
3849	}
3850	if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 {
3851		invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1))
3852	}
3853	if s.ProfileId == nil {
3854		invalidParams.Add(request.NewErrParamRequired("ProfileId"))
3855	}
3856	if s.ProfileObjectUniqueKey == nil {
3857		invalidParams.Add(request.NewErrParamRequired("ProfileObjectUniqueKey"))
3858	}
3859	if s.ProfileObjectUniqueKey != nil && len(*s.ProfileObjectUniqueKey) < 1 {
3860		invalidParams.Add(request.NewErrParamMinLen("ProfileObjectUniqueKey", 1))
3861	}
3862
3863	if invalidParams.Len() > 0 {
3864		return invalidParams
3865	}
3866	return nil
3867}
3868
3869// SetDomainName sets the DomainName field's value.
3870func (s *DeleteProfileObjectInput) SetDomainName(v string) *DeleteProfileObjectInput {
3871	s.DomainName = &v
3872	return s
3873}
3874
3875// SetObjectTypeName sets the ObjectTypeName field's value.
3876func (s *DeleteProfileObjectInput) SetObjectTypeName(v string) *DeleteProfileObjectInput {
3877	s.ObjectTypeName = &v
3878	return s
3879}
3880
3881// SetProfileId sets the ProfileId field's value.
3882func (s *DeleteProfileObjectInput) SetProfileId(v string) *DeleteProfileObjectInput {
3883	s.ProfileId = &v
3884	return s
3885}
3886
3887// SetProfileObjectUniqueKey sets the ProfileObjectUniqueKey field's value.
3888func (s *DeleteProfileObjectInput) SetProfileObjectUniqueKey(v string) *DeleteProfileObjectInput {
3889	s.ProfileObjectUniqueKey = &v
3890	return s
3891}
3892
3893type DeleteProfileObjectOutput struct {
3894	_ struct{} `type:"structure"`
3895
3896	// A message that indicates the delete request is done.
3897	Message *string `type:"string"`
3898}
3899
3900// String returns the string representation
3901func (s DeleteProfileObjectOutput) String() string {
3902	return awsutil.Prettify(s)
3903}
3904
3905// GoString returns the string representation
3906func (s DeleteProfileObjectOutput) GoString() string {
3907	return s.String()
3908}
3909
3910// SetMessage sets the Message field's value.
3911func (s *DeleteProfileObjectOutput) SetMessage(v string) *DeleteProfileObjectOutput {
3912	s.Message = &v
3913	return s
3914}
3915
3916type DeleteProfileObjectTypeInput struct {
3917	_ struct{} `type:"structure"`
3918
3919	// The unique name of the domain.
3920	//
3921	// DomainName is a required field
3922	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
3923
3924	// The name of the profile object type.
3925	//
3926	// ObjectTypeName is a required field
3927	ObjectTypeName *string `location:"uri" locationName:"ObjectTypeName" min:"1" type:"string" required:"true"`
3928}
3929
3930// String returns the string representation
3931func (s DeleteProfileObjectTypeInput) String() string {
3932	return awsutil.Prettify(s)
3933}
3934
3935// GoString returns the string representation
3936func (s DeleteProfileObjectTypeInput) GoString() string {
3937	return s.String()
3938}
3939
3940// Validate inspects the fields of the type to determine if they are valid.
3941func (s *DeleteProfileObjectTypeInput) Validate() error {
3942	invalidParams := request.ErrInvalidParams{Context: "DeleteProfileObjectTypeInput"}
3943	if s.DomainName == nil {
3944		invalidParams.Add(request.NewErrParamRequired("DomainName"))
3945	}
3946	if s.DomainName != nil && len(*s.DomainName) < 1 {
3947		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
3948	}
3949	if s.ObjectTypeName == nil {
3950		invalidParams.Add(request.NewErrParamRequired("ObjectTypeName"))
3951	}
3952	if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 {
3953		invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1))
3954	}
3955
3956	if invalidParams.Len() > 0 {
3957		return invalidParams
3958	}
3959	return nil
3960}
3961
3962// SetDomainName sets the DomainName field's value.
3963func (s *DeleteProfileObjectTypeInput) SetDomainName(v string) *DeleteProfileObjectTypeInput {
3964	s.DomainName = &v
3965	return s
3966}
3967
3968// SetObjectTypeName sets the ObjectTypeName field's value.
3969func (s *DeleteProfileObjectTypeInput) SetObjectTypeName(v string) *DeleteProfileObjectTypeInput {
3970	s.ObjectTypeName = &v
3971	return s
3972}
3973
3974type DeleteProfileObjectTypeOutput struct {
3975	_ struct{} `type:"structure"`
3976
3977	// A message that indicates the delete request is done.
3978	//
3979	// Message is a required field
3980	Message *string `type:"string" required:"true"`
3981}
3982
3983// String returns the string representation
3984func (s DeleteProfileObjectTypeOutput) String() string {
3985	return awsutil.Prettify(s)
3986}
3987
3988// GoString returns the string representation
3989func (s DeleteProfileObjectTypeOutput) GoString() string {
3990	return s.String()
3991}
3992
3993// SetMessage sets the Message field's value.
3994func (s *DeleteProfileObjectTypeOutput) SetMessage(v string) *DeleteProfileObjectTypeOutput {
3995	s.Message = &v
3996	return s
3997}
3998
3999type DeleteProfileOutput struct {
4000	_ struct{} `type:"structure"`
4001
4002	// A message that indicates the delete request is done.
4003	Message *string `type:"string"`
4004}
4005
4006// String returns the string representation
4007func (s DeleteProfileOutput) String() string {
4008	return awsutil.Prettify(s)
4009}
4010
4011// GoString returns the string representation
4012func (s DeleteProfileOutput) GoString() string {
4013	return s.String()
4014}
4015
4016// SetMessage sets the Message field's value.
4017func (s *DeleteProfileOutput) SetMessage(v string) *DeleteProfileOutput {
4018	s.Message = &v
4019	return s
4020}
4021
4022// Usage-specific statistics about the domain.
4023type DomainStats struct {
4024	_ struct{} `type:"structure"`
4025
4026	// The number of profiles that you are currently paying for in the domain. If
4027	// you have more than 100 objects associated with a single profile, that profile
4028	// counts as two profiles. If you have more than 200 objects, that profile counts
4029	// as three, and so on.
4030	MeteringProfileCount *int64 `type:"long"`
4031
4032	// The total number of objects in domain.
4033	ObjectCount *int64 `type:"long"`
4034
4035	// The total number of profiles currently in the domain.
4036	ProfileCount *int64 `type:"long"`
4037
4038	// The total size, in bytes, of all objects in the domain.
4039	TotalSize *int64 `type:"long"`
4040}
4041
4042// String returns the string representation
4043func (s DomainStats) String() string {
4044	return awsutil.Prettify(s)
4045}
4046
4047// GoString returns the string representation
4048func (s DomainStats) GoString() string {
4049	return s.String()
4050}
4051
4052// SetMeteringProfileCount sets the MeteringProfileCount field's value.
4053func (s *DomainStats) SetMeteringProfileCount(v int64) *DomainStats {
4054	s.MeteringProfileCount = &v
4055	return s
4056}
4057
4058// SetObjectCount sets the ObjectCount field's value.
4059func (s *DomainStats) SetObjectCount(v int64) *DomainStats {
4060	s.ObjectCount = &v
4061	return s
4062}
4063
4064// SetProfileCount sets the ProfileCount field's value.
4065func (s *DomainStats) SetProfileCount(v int64) *DomainStats {
4066	s.ProfileCount = &v
4067	return s
4068}
4069
4070// SetTotalSize sets the TotalSize field's value.
4071func (s *DomainStats) SetTotalSize(v int64) *DomainStats {
4072	s.TotalSize = &v
4073	return s
4074}
4075
4076type GetDomainInput struct {
4077	_ struct{} `type:"structure"`
4078
4079	// A unique name for the domain.
4080	//
4081	// DomainName is a required field
4082	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
4083}
4084
4085// String returns the string representation
4086func (s GetDomainInput) String() string {
4087	return awsutil.Prettify(s)
4088}
4089
4090// GoString returns the string representation
4091func (s GetDomainInput) GoString() string {
4092	return s.String()
4093}
4094
4095// Validate inspects the fields of the type to determine if they are valid.
4096func (s *GetDomainInput) Validate() error {
4097	invalidParams := request.ErrInvalidParams{Context: "GetDomainInput"}
4098	if s.DomainName == nil {
4099		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4100	}
4101	if s.DomainName != nil && len(*s.DomainName) < 1 {
4102		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
4103	}
4104
4105	if invalidParams.Len() > 0 {
4106		return invalidParams
4107	}
4108	return nil
4109}
4110
4111// SetDomainName sets the DomainName field's value.
4112func (s *GetDomainInput) SetDomainName(v string) *GetDomainInput {
4113	s.DomainName = &v
4114	return s
4115}
4116
4117type GetDomainOutput struct {
4118	_ struct{} `type:"structure"`
4119
4120	// The timestamp of when the domain was created.
4121	//
4122	// CreatedAt is a required field
4123	CreatedAt *time.Time `type:"timestamp" required:"true"`
4124
4125	// The URL of the SQS dead letter queue, which is used for reporting errors
4126	// associated with ingesting data from third party applications.
4127	DeadLetterQueueUrl *string `type:"string"`
4128
4129	// The default encryption key, which is an AWS managed key, is used when no
4130	// specific type of encryption key is specified. It is used to encrypt all data
4131	// before it is placed in permanent or semi-permanent storage.
4132	DefaultEncryptionKey *string `type:"string"`
4133
4134	// The default number of days until the data within the domain expires.
4135	DefaultExpirationDays *int64 `min:"1" type:"integer"`
4136
4137	// The unique name of the domain.
4138	//
4139	// DomainName is a required field
4140	DomainName *string `min:"1" type:"string" required:"true"`
4141
4142	// The timestamp of when the domain was most recently edited.
4143	//
4144	// LastUpdatedAt is a required field
4145	LastUpdatedAt *time.Time `type:"timestamp" required:"true"`
4146
4147	// Usage-specific statistics about the domain.
4148	Stats *DomainStats `type:"structure"`
4149
4150	// The tags used to organize, track, or control access for this resource.
4151	Tags map[string]*string `min:"1" type:"map"`
4152}
4153
4154// String returns the string representation
4155func (s GetDomainOutput) String() string {
4156	return awsutil.Prettify(s)
4157}
4158
4159// GoString returns the string representation
4160func (s GetDomainOutput) GoString() string {
4161	return s.String()
4162}
4163
4164// SetCreatedAt sets the CreatedAt field's value.
4165func (s *GetDomainOutput) SetCreatedAt(v time.Time) *GetDomainOutput {
4166	s.CreatedAt = &v
4167	return s
4168}
4169
4170// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value.
4171func (s *GetDomainOutput) SetDeadLetterQueueUrl(v string) *GetDomainOutput {
4172	s.DeadLetterQueueUrl = &v
4173	return s
4174}
4175
4176// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value.
4177func (s *GetDomainOutput) SetDefaultEncryptionKey(v string) *GetDomainOutput {
4178	s.DefaultEncryptionKey = &v
4179	return s
4180}
4181
4182// SetDefaultExpirationDays sets the DefaultExpirationDays field's value.
4183func (s *GetDomainOutput) SetDefaultExpirationDays(v int64) *GetDomainOutput {
4184	s.DefaultExpirationDays = &v
4185	return s
4186}
4187
4188// SetDomainName sets the DomainName field's value.
4189func (s *GetDomainOutput) SetDomainName(v string) *GetDomainOutput {
4190	s.DomainName = &v
4191	return s
4192}
4193
4194// SetLastUpdatedAt sets the LastUpdatedAt field's value.
4195func (s *GetDomainOutput) SetLastUpdatedAt(v time.Time) *GetDomainOutput {
4196	s.LastUpdatedAt = &v
4197	return s
4198}
4199
4200// SetStats sets the Stats field's value.
4201func (s *GetDomainOutput) SetStats(v *DomainStats) *GetDomainOutput {
4202	s.Stats = v
4203	return s
4204}
4205
4206// SetTags sets the Tags field's value.
4207func (s *GetDomainOutput) SetTags(v map[string]*string) *GetDomainOutput {
4208	s.Tags = v
4209	return s
4210}
4211
4212type GetIntegrationInput struct {
4213	_ struct{} `type:"structure"`
4214
4215	// The unique name of the domain.
4216	//
4217	// DomainName is a required field
4218	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
4219
4220	// The URI of the S3 bucket or any other type of data source.
4221	//
4222	// Uri is a required field
4223	Uri *string `min:"1" type:"string" required:"true"`
4224}
4225
4226// String returns the string representation
4227func (s GetIntegrationInput) String() string {
4228	return awsutil.Prettify(s)
4229}
4230
4231// GoString returns the string representation
4232func (s GetIntegrationInput) GoString() string {
4233	return s.String()
4234}
4235
4236// Validate inspects the fields of the type to determine if they are valid.
4237func (s *GetIntegrationInput) Validate() error {
4238	invalidParams := request.ErrInvalidParams{Context: "GetIntegrationInput"}
4239	if s.DomainName == nil {
4240		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4241	}
4242	if s.DomainName != nil && len(*s.DomainName) < 1 {
4243		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
4244	}
4245	if s.Uri == nil {
4246		invalidParams.Add(request.NewErrParamRequired("Uri"))
4247	}
4248	if s.Uri != nil && len(*s.Uri) < 1 {
4249		invalidParams.Add(request.NewErrParamMinLen("Uri", 1))
4250	}
4251
4252	if invalidParams.Len() > 0 {
4253		return invalidParams
4254	}
4255	return nil
4256}
4257
4258// SetDomainName sets the DomainName field's value.
4259func (s *GetIntegrationInput) SetDomainName(v string) *GetIntegrationInput {
4260	s.DomainName = &v
4261	return s
4262}
4263
4264// SetUri sets the Uri field's value.
4265func (s *GetIntegrationInput) SetUri(v string) *GetIntegrationInput {
4266	s.Uri = &v
4267	return s
4268}
4269
4270type GetIntegrationOutput struct {
4271	_ struct{} `type:"structure"`
4272
4273	// The timestamp of when the domain was created.
4274	//
4275	// CreatedAt is a required field
4276	CreatedAt *time.Time `type:"timestamp" required:"true"`
4277
4278	// The unique name of the domain.
4279	//
4280	// DomainName is a required field
4281	DomainName *string `min:"1" type:"string" required:"true"`
4282
4283	// The timestamp of when the domain was most recently edited.
4284	//
4285	// LastUpdatedAt is a required field
4286	LastUpdatedAt *time.Time `type:"timestamp" required:"true"`
4287
4288	// The name of the profile object type.
4289	//
4290	// ObjectTypeName is a required field
4291	ObjectTypeName *string `min:"1" type:"string" required:"true"`
4292
4293	// The tags used to organize, track, or control access for this resource.
4294	Tags map[string]*string `min:"1" type:"map"`
4295
4296	// The URI of the S3 bucket or any other type of data source.
4297	//
4298	// Uri is a required field
4299	Uri *string `min:"1" type:"string" required:"true"`
4300}
4301
4302// String returns the string representation
4303func (s GetIntegrationOutput) String() string {
4304	return awsutil.Prettify(s)
4305}
4306
4307// GoString returns the string representation
4308func (s GetIntegrationOutput) GoString() string {
4309	return s.String()
4310}
4311
4312// SetCreatedAt sets the CreatedAt field's value.
4313func (s *GetIntegrationOutput) SetCreatedAt(v time.Time) *GetIntegrationOutput {
4314	s.CreatedAt = &v
4315	return s
4316}
4317
4318// SetDomainName sets the DomainName field's value.
4319func (s *GetIntegrationOutput) SetDomainName(v string) *GetIntegrationOutput {
4320	s.DomainName = &v
4321	return s
4322}
4323
4324// SetLastUpdatedAt sets the LastUpdatedAt field's value.
4325func (s *GetIntegrationOutput) SetLastUpdatedAt(v time.Time) *GetIntegrationOutput {
4326	s.LastUpdatedAt = &v
4327	return s
4328}
4329
4330// SetObjectTypeName sets the ObjectTypeName field's value.
4331func (s *GetIntegrationOutput) SetObjectTypeName(v string) *GetIntegrationOutput {
4332	s.ObjectTypeName = &v
4333	return s
4334}
4335
4336// SetTags sets the Tags field's value.
4337func (s *GetIntegrationOutput) SetTags(v map[string]*string) *GetIntegrationOutput {
4338	s.Tags = v
4339	return s
4340}
4341
4342// SetUri sets the Uri field's value.
4343func (s *GetIntegrationOutput) SetUri(v string) *GetIntegrationOutput {
4344	s.Uri = &v
4345	return s
4346}
4347
4348type GetProfileObjectTypeInput struct {
4349	_ struct{} `type:"structure"`
4350
4351	// The unique name of the domain.
4352	//
4353	// DomainName is a required field
4354	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
4355
4356	// The name of the profile object type.
4357	//
4358	// ObjectTypeName is a required field
4359	ObjectTypeName *string `location:"uri" locationName:"ObjectTypeName" min:"1" type:"string" required:"true"`
4360}
4361
4362// String returns the string representation
4363func (s GetProfileObjectTypeInput) String() string {
4364	return awsutil.Prettify(s)
4365}
4366
4367// GoString returns the string representation
4368func (s GetProfileObjectTypeInput) GoString() string {
4369	return s.String()
4370}
4371
4372// Validate inspects the fields of the type to determine if they are valid.
4373func (s *GetProfileObjectTypeInput) Validate() error {
4374	invalidParams := request.ErrInvalidParams{Context: "GetProfileObjectTypeInput"}
4375	if s.DomainName == nil {
4376		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4377	}
4378	if s.DomainName != nil && len(*s.DomainName) < 1 {
4379		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
4380	}
4381	if s.ObjectTypeName == nil {
4382		invalidParams.Add(request.NewErrParamRequired("ObjectTypeName"))
4383	}
4384	if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 {
4385		invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1))
4386	}
4387
4388	if invalidParams.Len() > 0 {
4389		return invalidParams
4390	}
4391	return nil
4392}
4393
4394// SetDomainName sets the DomainName field's value.
4395func (s *GetProfileObjectTypeInput) SetDomainName(v string) *GetProfileObjectTypeInput {
4396	s.DomainName = &v
4397	return s
4398}
4399
4400// SetObjectTypeName sets the ObjectTypeName field's value.
4401func (s *GetProfileObjectTypeInput) SetObjectTypeName(v string) *GetProfileObjectTypeInput {
4402	s.ObjectTypeName = &v
4403	return s
4404}
4405
4406type GetProfileObjectTypeOutput struct {
4407	_ struct{} `type:"structure"`
4408
4409	// Indicates whether a profile should be created when data is received if one
4410	// doesn’t exist for an object of this type. The default is FALSE. If the
4411	// AllowProfileCreation flag is set to FALSE, then the service tries to fetch
4412	// a standard profile and associate this object with the profile. If it is set
4413	// to TRUE, and if no match is found, then the service creates a new standard
4414	// profile.
4415	AllowProfileCreation *bool `type:"boolean"`
4416
4417	// The timestamp of when the domain was created.
4418	CreatedAt *time.Time `type:"timestamp"`
4419
4420	// The description of the profile object type.
4421	//
4422	// Description is a required field
4423	Description *string `min:"1" type:"string" required:"true"`
4424
4425	// The customer-provided key to encrypt the profile object that will be created
4426	// in this profile object type.
4427	EncryptionKey *string `type:"string"`
4428
4429	// The number of days until the data in the object expires.
4430	ExpirationDays *int64 `min:"1" type:"integer"`
4431
4432	// A map of the name and ObjectType field.
4433	Fields map[string]*ObjectTypeField `type:"map"`
4434
4435	// A list of unique keys that can be used to map data to the profile.
4436	Keys map[string][]*ObjectTypeKey `type:"map"`
4437
4438	// The timestamp of when the domain was most recently edited.
4439	LastUpdatedAt *time.Time `type:"timestamp"`
4440
4441	// The name of the profile object type.
4442	//
4443	// ObjectTypeName is a required field
4444	ObjectTypeName *string `min:"1" type:"string" required:"true"`
4445
4446	// The tags used to organize, track, or control access for this resource.
4447	Tags map[string]*string `min:"1" type:"map"`
4448
4449	// A unique identifier for the object template.
4450	TemplateId *string `min:"1" type:"string"`
4451}
4452
4453// String returns the string representation
4454func (s GetProfileObjectTypeOutput) String() string {
4455	return awsutil.Prettify(s)
4456}
4457
4458// GoString returns the string representation
4459func (s GetProfileObjectTypeOutput) GoString() string {
4460	return s.String()
4461}
4462
4463// SetAllowProfileCreation sets the AllowProfileCreation field's value.
4464func (s *GetProfileObjectTypeOutput) SetAllowProfileCreation(v bool) *GetProfileObjectTypeOutput {
4465	s.AllowProfileCreation = &v
4466	return s
4467}
4468
4469// SetCreatedAt sets the CreatedAt field's value.
4470func (s *GetProfileObjectTypeOutput) SetCreatedAt(v time.Time) *GetProfileObjectTypeOutput {
4471	s.CreatedAt = &v
4472	return s
4473}
4474
4475// SetDescription sets the Description field's value.
4476func (s *GetProfileObjectTypeOutput) SetDescription(v string) *GetProfileObjectTypeOutput {
4477	s.Description = &v
4478	return s
4479}
4480
4481// SetEncryptionKey sets the EncryptionKey field's value.
4482func (s *GetProfileObjectTypeOutput) SetEncryptionKey(v string) *GetProfileObjectTypeOutput {
4483	s.EncryptionKey = &v
4484	return s
4485}
4486
4487// SetExpirationDays sets the ExpirationDays field's value.
4488func (s *GetProfileObjectTypeOutput) SetExpirationDays(v int64) *GetProfileObjectTypeOutput {
4489	s.ExpirationDays = &v
4490	return s
4491}
4492
4493// SetFields sets the Fields field's value.
4494func (s *GetProfileObjectTypeOutput) SetFields(v map[string]*ObjectTypeField) *GetProfileObjectTypeOutput {
4495	s.Fields = v
4496	return s
4497}
4498
4499// SetKeys sets the Keys field's value.
4500func (s *GetProfileObjectTypeOutput) SetKeys(v map[string][]*ObjectTypeKey) *GetProfileObjectTypeOutput {
4501	s.Keys = v
4502	return s
4503}
4504
4505// SetLastUpdatedAt sets the LastUpdatedAt field's value.
4506func (s *GetProfileObjectTypeOutput) SetLastUpdatedAt(v time.Time) *GetProfileObjectTypeOutput {
4507	s.LastUpdatedAt = &v
4508	return s
4509}
4510
4511// SetObjectTypeName sets the ObjectTypeName field's value.
4512func (s *GetProfileObjectTypeOutput) SetObjectTypeName(v string) *GetProfileObjectTypeOutput {
4513	s.ObjectTypeName = &v
4514	return s
4515}
4516
4517// SetTags sets the Tags field's value.
4518func (s *GetProfileObjectTypeOutput) SetTags(v map[string]*string) *GetProfileObjectTypeOutput {
4519	s.Tags = v
4520	return s
4521}
4522
4523// SetTemplateId sets the TemplateId field's value.
4524func (s *GetProfileObjectTypeOutput) SetTemplateId(v string) *GetProfileObjectTypeOutput {
4525	s.TemplateId = &v
4526	return s
4527}
4528
4529type GetProfileObjectTypeTemplateInput struct {
4530	_ struct{} `type:"structure"`
4531
4532	// A unique identifier for the object template.
4533	//
4534	// TemplateId is a required field
4535	TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"`
4536}
4537
4538// String returns the string representation
4539func (s GetProfileObjectTypeTemplateInput) String() string {
4540	return awsutil.Prettify(s)
4541}
4542
4543// GoString returns the string representation
4544func (s GetProfileObjectTypeTemplateInput) GoString() string {
4545	return s.String()
4546}
4547
4548// Validate inspects the fields of the type to determine if they are valid.
4549func (s *GetProfileObjectTypeTemplateInput) Validate() error {
4550	invalidParams := request.ErrInvalidParams{Context: "GetProfileObjectTypeTemplateInput"}
4551	if s.TemplateId == nil {
4552		invalidParams.Add(request.NewErrParamRequired("TemplateId"))
4553	}
4554	if s.TemplateId != nil && len(*s.TemplateId) < 1 {
4555		invalidParams.Add(request.NewErrParamMinLen("TemplateId", 1))
4556	}
4557
4558	if invalidParams.Len() > 0 {
4559		return invalidParams
4560	}
4561	return nil
4562}
4563
4564// SetTemplateId sets the TemplateId field's value.
4565func (s *GetProfileObjectTypeTemplateInput) SetTemplateId(v string) *GetProfileObjectTypeTemplateInput {
4566	s.TemplateId = &v
4567	return s
4568}
4569
4570type GetProfileObjectTypeTemplateOutput struct {
4571	_ struct{} `type:"structure"`
4572
4573	// Indicates whether a profile should be created when data is received if one
4574	// doesn’t exist for an object of this type. The default is FALSE. If the
4575	// AllowProfileCreation flag is set to FALSE, then the service tries to fetch
4576	// a standard profile and associate this object with the profile. If it is set
4577	// to TRUE, and if no match is found, then the service creates a new standard
4578	// profile.
4579	AllowProfileCreation *bool `type:"boolean"`
4580
4581	// A map of the name and ObjectType field.
4582	Fields map[string]*ObjectTypeField `type:"map"`
4583
4584	// A list of unique keys that can be used to map data to the profile.
4585	Keys map[string][]*ObjectTypeKey `type:"map"`
4586
4587	// The name of the source of the object template.
4588	SourceName *string `min:"1" type:"string"`
4589
4590	// The source of the object template.
4591	SourceObject *string `min:"1" type:"string"`
4592
4593	// A unique identifier for the object template.
4594	TemplateId *string `min:"1" type:"string"`
4595}
4596
4597// String returns the string representation
4598func (s GetProfileObjectTypeTemplateOutput) String() string {
4599	return awsutil.Prettify(s)
4600}
4601
4602// GoString returns the string representation
4603func (s GetProfileObjectTypeTemplateOutput) GoString() string {
4604	return s.String()
4605}
4606
4607// SetAllowProfileCreation sets the AllowProfileCreation field's value.
4608func (s *GetProfileObjectTypeTemplateOutput) SetAllowProfileCreation(v bool) *GetProfileObjectTypeTemplateOutput {
4609	s.AllowProfileCreation = &v
4610	return s
4611}
4612
4613// SetFields sets the Fields field's value.
4614func (s *GetProfileObjectTypeTemplateOutput) SetFields(v map[string]*ObjectTypeField) *GetProfileObjectTypeTemplateOutput {
4615	s.Fields = v
4616	return s
4617}
4618
4619// SetKeys sets the Keys field's value.
4620func (s *GetProfileObjectTypeTemplateOutput) SetKeys(v map[string][]*ObjectTypeKey) *GetProfileObjectTypeTemplateOutput {
4621	s.Keys = v
4622	return s
4623}
4624
4625// SetSourceName sets the SourceName field's value.
4626func (s *GetProfileObjectTypeTemplateOutput) SetSourceName(v string) *GetProfileObjectTypeTemplateOutput {
4627	s.SourceName = &v
4628	return s
4629}
4630
4631// SetSourceObject sets the SourceObject field's value.
4632func (s *GetProfileObjectTypeTemplateOutput) SetSourceObject(v string) *GetProfileObjectTypeTemplateOutput {
4633	s.SourceObject = &v
4634	return s
4635}
4636
4637// SetTemplateId sets the TemplateId field's value.
4638func (s *GetProfileObjectTypeTemplateOutput) SetTemplateId(v string) *GetProfileObjectTypeTemplateOutput {
4639	s.TemplateId = &v
4640	return s
4641}
4642
4643// An internal service error occurred.
4644type InternalServerException struct {
4645	_            struct{}                  `type:"structure"`
4646	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4647
4648	Message_ *string `locationName:"Message" type:"string"`
4649}
4650
4651// String returns the string representation
4652func (s InternalServerException) String() string {
4653	return awsutil.Prettify(s)
4654}
4655
4656// GoString returns the string representation
4657func (s InternalServerException) GoString() string {
4658	return s.String()
4659}
4660
4661func newErrorInternalServerException(v protocol.ResponseMetadata) error {
4662	return &InternalServerException{
4663		RespMetadata: v,
4664	}
4665}
4666
4667// Code returns the exception type name.
4668func (s *InternalServerException) Code() string {
4669	return "InternalServerException"
4670}
4671
4672// Message returns the exception's message.
4673func (s *InternalServerException) Message() string {
4674	if s.Message_ != nil {
4675		return *s.Message_
4676	}
4677	return ""
4678}
4679
4680// OrigErr always returns nil, satisfies awserr.Error interface.
4681func (s *InternalServerException) OrigErr() error {
4682	return nil
4683}
4684
4685func (s *InternalServerException) Error() string {
4686	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4687}
4688
4689// Status code returns the HTTP status code for the request's response error.
4690func (s *InternalServerException) StatusCode() int {
4691	return s.RespMetadata.StatusCode
4692}
4693
4694// RequestID returns the service's response RequestID for request.
4695func (s *InternalServerException) RequestID() string {
4696	return s.RespMetadata.RequestID
4697}
4698
4699type ListAccountIntegrationsInput struct {
4700	_ struct{} `type:"structure"`
4701
4702	// The maximum number of objects returned per page.
4703	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`
4704
4705	// The pagination token from the previous ListAccountIntegrations API call.
4706	NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"`
4707
4708	// The URI of the S3 bucket or any other type of data source.
4709	//
4710	// Uri is a required field
4711	Uri *string `min:"1" type:"string" required:"true"`
4712}
4713
4714// String returns the string representation
4715func (s ListAccountIntegrationsInput) String() string {
4716	return awsutil.Prettify(s)
4717}
4718
4719// GoString returns the string representation
4720func (s ListAccountIntegrationsInput) GoString() string {
4721	return s.String()
4722}
4723
4724// Validate inspects the fields of the type to determine if they are valid.
4725func (s *ListAccountIntegrationsInput) Validate() error {
4726	invalidParams := request.ErrInvalidParams{Context: "ListAccountIntegrationsInput"}
4727	if s.MaxResults != nil && *s.MaxResults < 1 {
4728		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4729	}
4730	if s.NextToken != nil && len(*s.NextToken) < 1 {
4731		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4732	}
4733	if s.Uri == nil {
4734		invalidParams.Add(request.NewErrParamRequired("Uri"))
4735	}
4736	if s.Uri != nil && len(*s.Uri) < 1 {
4737		invalidParams.Add(request.NewErrParamMinLen("Uri", 1))
4738	}
4739
4740	if invalidParams.Len() > 0 {
4741		return invalidParams
4742	}
4743	return nil
4744}
4745
4746// SetMaxResults sets the MaxResults field's value.
4747func (s *ListAccountIntegrationsInput) SetMaxResults(v int64) *ListAccountIntegrationsInput {
4748	s.MaxResults = &v
4749	return s
4750}
4751
4752// SetNextToken sets the NextToken field's value.
4753func (s *ListAccountIntegrationsInput) SetNextToken(v string) *ListAccountIntegrationsInput {
4754	s.NextToken = &v
4755	return s
4756}
4757
4758// SetUri sets the Uri field's value.
4759func (s *ListAccountIntegrationsInput) SetUri(v string) *ListAccountIntegrationsInput {
4760	s.Uri = &v
4761	return s
4762}
4763
4764type ListAccountIntegrationsOutput struct {
4765	_ struct{} `type:"structure"`
4766
4767	// The list of ListAccountIntegration instances.
4768	Items []*ListIntegrationItem `type:"list"`
4769
4770	// The pagination token from the previous ListAccountIntegrations API call.
4771	NextToken *string `min:"1" type:"string"`
4772}
4773
4774// String returns the string representation
4775func (s ListAccountIntegrationsOutput) String() string {
4776	return awsutil.Prettify(s)
4777}
4778
4779// GoString returns the string representation
4780func (s ListAccountIntegrationsOutput) GoString() string {
4781	return s.String()
4782}
4783
4784// SetItems sets the Items field's value.
4785func (s *ListAccountIntegrationsOutput) SetItems(v []*ListIntegrationItem) *ListAccountIntegrationsOutput {
4786	s.Items = v
4787	return s
4788}
4789
4790// SetNextToken sets the NextToken field's value.
4791func (s *ListAccountIntegrationsOutput) SetNextToken(v string) *ListAccountIntegrationsOutput {
4792	s.NextToken = &v
4793	return s
4794}
4795
4796// An object in a list that represents a domain.
4797type ListDomainItem struct {
4798	_ struct{} `type:"structure"`
4799
4800	// The timestamp of when the domain was created.
4801	//
4802	// CreatedAt is a required field
4803	CreatedAt *time.Time `type:"timestamp" required:"true"`
4804
4805	// The unique name of the domain.
4806	//
4807	// DomainName is a required field
4808	DomainName *string `min:"1" type:"string" required:"true"`
4809
4810	// The timestamp of when the domain was most recently edited.
4811	//
4812	// LastUpdatedAt is a required field
4813	LastUpdatedAt *time.Time `type:"timestamp" required:"true"`
4814
4815	// The tags used to organize, track, or control access for this resource.
4816	Tags map[string]*string `min:"1" type:"map"`
4817}
4818
4819// String returns the string representation
4820func (s ListDomainItem) String() string {
4821	return awsutil.Prettify(s)
4822}
4823
4824// GoString returns the string representation
4825func (s ListDomainItem) GoString() string {
4826	return s.String()
4827}
4828
4829// SetCreatedAt sets the CreatedAt field's value.
4830func (s *ListDomainItem) SetCreatedAt(v time.Time) *ListDomainItem {
4831	s.CreatedAt = &v
4832	return s
4833}
4834
4835// SetDomainName sets the DomainName field's value.
4836func (s *ListDomainItem) SetDomainName(v string) *ListDomainItem {
4837	s.DomainName = &v
4838	return s
4839}
4840
4841// SetLastUpdatedAt sets the LastUpdatedAt field's value.
4842func (s *ListDomainItem) SetLastUpdatedAt(v time.Time) *ListDomainItem {
4843	s.LastUpdatedAt = &v
4844	return s
4845}
4846
4847// SetTags sets the Tags field's value.
4848func (s *ListDomainItem) SetTags(v map[string]*string) *ListDomainItem {
4849	s.Tags = v
4850	return s
4851}
4852
4853type ListDomainsInput struct {
4854	_ struct{} `type:"structure"`
4855
4856	// The maximum number of objects returned per page.
4857	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`
4858
4859	// The pagination token from the previous ListDomain API call.
4860	NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"`
4861}
4862
4863// String returns the string representation
4864func (s ListDomainsInput) String() string {
4865	return awsutil.Prettify(s)
4866}
4867
4868// GoString returns the string representation
4869func (s ListDomainsInput) GoString() string {
4870	return s.String()
4871}
4872
4873// Validate inspects the fields of the type to determine if they are valid.
4874func (s *ListDomainsInput) Validate() error {
4875	invalidParams := request.ErrInvalidParams{Context: "ListDomainsInput"}
4876	if s.MaxResults != nil && *s.MaxResults < 1 {
4877		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4878	}
4879	if s.NextToken != nil && len(*s.NextToken) < 1 {
4880		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4881	}
4882
4883	if invalidParams.Len() > 0 {
4884		return invalidParams
4885	}
4886	return nil
4887}
4888
4889// SetMaxResults sets the MaxResults field's value.
4890func (s *ListDomainsInput) SetMaxResults(v int64) *ListDomainsInput {
4891	s.MaxResults = &v
4892	return s
4893}
4894
4895// SetNextToken sets the NextToken field's value.
4896func (s *ListDomainsInput) SetNextToken(v string) *ListDomainsInput {
4897	s.NextToken = &v
4898	return s
4899}
4900
4901type ListDomainsOutput struct {
4902	_ struct{} `type:"structure"`
4903
4904	// The list of ListDomains instances.
4905	Items []*ListDomainItem `type:"list"`
4906
4907	// The pagination token from the previous ListDomains API call.
4908	NextToken *string `min:"1" type:"string"`
4909}
4910
4911// String returns the string representation
4912func (s ListDomainsOutput) String() string {
4913	return awsutil.Prettify(s)
4914}
4915
4916// GoString returns the string representation
4917func (s ListDomainsOutput) GoString() string {
4918	return s.String()
4919}
4920
4921// SetItems sets the Items field's value.
4922func (s *ListDomainsOutput) SetItems(v []*ListDomainItem) *ListDomainsOutput {
4923	s.Items = v
4924	return s
4925}
4926
4927// SetNextToken sets the NextToken field's value.
4928func (s *ListDomainsOutput) SetNextToken(v string) *ListDomainsOutput {
4929	s.NextToken = &v
4930	return s
4931}
4932
4933// An integration in list of integrations.
4934type ListIntegrationItem struct {
4935	_ struct{} `type:"structure"`
4936
4937	// The timestamp of when the domain was created.
4938	//
4939	// CreatedAt is a required field
4940	CreatedAt *time.Time `type:"timestamp" required:"true"`
4941
4942	// The unique name of the domain.
4943	//
4944	// DomainName is a required field
4945	DomainName *string `min:"1" type:"string" required:"true"`
4946
4947	// The timestamp of when the domain was most recently edited.
4948	//
4949	// LastUpdatedAt is a required field
4950	LastUpdatedAt *time.Time `type:"timestamp" required:"true"`
4951
4952	// The name of the profile object type.
4953	//
4954	// ObjectTypeName is a required field
4955	ObjectTypeName *string `min:"1" type:"string" required:"true"`
4956
4957	// The tags used to organize, track, or control access for this resource.
4958	Tags map[string]*string `min:"1" type:"map"`
4959
4960	// The URI of the S3 bucket or any other type of data source.
4961	//
4962	// Uri is a required field
4963	Uri *string `min:"1" type:"string" required:"true"`
4964}
4965
4966// String returns the string representation
4967func (s ListIntegrationItem) String() string {
4968	return awsutil.Prettify(s)
4969}
4970
4971// GoString returns the string representation
4972func (s ListIntegrationItem) GoString() string {
4973	return s.String()
4974}
4975
4976// SetCreatedAt sets the CreatedAt field's value.
4977func (s *ListIntegrationItem) SetCreatedAt(v time.Time) *ListIntegrationItem {
4978	s.CreatedAt = &v
4979	return s
4980}
4981
4982// SetDomainName sets the DomainName field's value.
4983func (s *ListIntegrationItem) SetDomainName(v string) *ListIntegrationItem {
4984	s.DomainName = &v
4985	return s
4986}
4987
4988// SetLastUpdatedAt sets the LastUpdatedAt field's value.
4989func (s *ListIntegrationItem) SetLastUpdatedAt(v time.Time) *ListIntegrationItem {
4990	s.LastUpdatedAt = &v
4991	return s
4992}
4993
4994// SetObjectTypeName sets the ObjectTypeName field's value.
4995func (s *ListIntegrationItem) SetObjectTypeName(v string) *ListIntegrationItem {
4996	s.ObjectTypeName = &v
4997	return s
4998}
4999
5000// SetTags sets the Tags field's value.
5001func (s *ListIntegrationItem) SetTags(v map[string]*string) *ListIntegrationItem {
5002	s.Tags = v
5003	return s
5004}
5005
5006// SetUri sets the Uri field's value.
5007func (s *ListIntegrationItem) SetUri(v string) *ListIntegrationItem {
5008	s.Uri = &v
5009	return s
5010}
5011
5012type ListIntegrationsInput struct {
5013	_ struct{} `type:"structure"`
5014
5015	// The unique name of the domain.
5016	//
5017	// DomainName is a required field
5018	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
5019
5020	// The maximum number of objects returned per page.
5021	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`
5022
5023	// The pagination token from the previous ListIntegrations API call.
5024	NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"`
5025}
5026
5027// String returns the string representation
5028func (s ListIntegrationsInput) String() string {
5029	return awsutil.Prettify(s)
5030}
5031
5032// GoString returns the string representation
5033func (s ListIntegrationsInput) GoString() string {
5034	return s.String()
5035}
5036
5037// Validate inspects the fields of the type to determine if they are valid.
5038func (s *ListIntegrationsInput) Validate() error {
5039	invalidParams := request.ErrInvalidParams{Context: "ListIntegrationsInput"}
5040	if s.DomainName == nil {
5041		invalidParams.Add(request.NewErrParamRequired("DomainName"))
5042	}
5043	if s.DomainName != nil && len(*s.DomainName) < 1 {
5044		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
5045	}
5046	if s.MaxResults != nil && *s.MaxResults < 1 {
5047		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5048	}
5049	if s.NextToken != nil && len(*s.NextToken) < 1 {
5050		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5051	}
5052
5053	if invalidParams.Len() > 0 {
5054		return invalidParams
5055	}
5056	return nil
5057}
5058
5059// SetDomainName sets the DomainName field's value.
5060func (s *ListIntegrationsInput) SetDomainName(v string) *ListIntegrationsInput {
5061	s.DomainName = &v
5062	return s
5063}
5064
5065// SetMaxResults sets the MaxResults field's value.
5066func (s *ListIntegrationsInput) SetMaxResults(v int64) *ListIntegrationsInput {
5067	s.MaxResults = &v
5068	return s
5069}
5070
5071// SetNextToken sets the NextToken field's value.
5072func (s *ListIntegrationsInput) SetNextToken(v string) *ListIntegrationsInput {
5073	s.NextToken = &v
5074	return s
5075}
5076
5077type ListIntegrationsOutput struct {
5078	_ struct{} `type:"structure"`
5079
5080	// The list of ListIntegrations instances.
5081	Items []*ListIntegrationItem `type:"list"`
5082
5083	// The pagination token from the previous ListIntegrations API call.
5084	NextToken *string `min:"1" type:"string"`
5085}
5086
5087// String returns the string representation
5088func (s ListIntegrationsOutput) String() string {
5089	return awsutil.Prettify(s)
5090}
5091
5092// GoString returns the string representation
5093func (s ListIntegrationsOutput) GoString() string {
5094	return s.String()
5095}
5096
5097// SetItems sets the Items field's value.
5098func (s *ListIntegrationsOutput) SetItems(v []*ListIntegrationItem) *ListIntegrationsOutput {
5099	s.Items = v
5100	return s
5101}
5102
5103// SetNextToken sets the NextToken field's value.
5104func (s *ListIntegrationsOutput) SetNextToken(v string) *ListIntegrationsOutput {
5105	s.NextToken = &v
5106	return s
5107}
5108
5109// A ProfileObjectType instance.
5110type ListProfileObjectTypeItem struct {
5111	_ struct{} `type:"structure"`
5112
5113	// The timestamp of when the domain was created.
5114	CreatedAt *time.Time `type:"timestamp"`
5115
5116	// Description of the profile object type.
5117	//
5118	// Description is a required field
5119	Description *string `min:"1" type:"string" required:"true"`
5120
5121	// The timestamp of when the domain was most recently edited.
5122	LastUpdatedAt *time.Time `type:"timestamp"`
5123
5124	// The name of the profile object type.
5125	//
5126	// ObjectTypeName is a required field
5127	ObjectTypeName *string `min:"1" type:"string" required:"true"`
5128
5129	// The tags used to organize, track, or control access for this resource.
5130	Tags map[string]*string `min:"1" type:"map"`
5131}
5132
5133// String returns the string representation
5134func (s ListProfileObjectTypeItem) String() string {
5135	return awsutil.Prettify(s)
5136}
5137
5138// GoString returns the string representation
5139func (s ListProfileObjectTypeItem) GoString() string {
5140	return s.String()
5141}
5142
5143// SetCreatedAt sets the CreatedAt field's value.
5144func (s *ListProfileObjectTypeItem) SetCreatedAt(v time.Time) *ListProfileObjectTypeItem {
5145	s.CreatedAt = &v
5146	return s
5147}
5148
5149// SetDescription sets the Description field's value.
5150func (s *ListProfileObjectTypeItem) SetDescription(v string) *ListProfileObjectTypeItem {
5151	s.Description = &v
5152	return s
5153}
5154
5155// SetLastUpdatedAt sets the LastUpdatedAt field's value.
5156func (s *ListProfileObjectTypeItem) SetLastUpdatedAt(v time.Time) *ListProfileObjectTypeItem {
5157	s.LastUpdatedAt = &v
5158	return s
5159}
5160
5161// SetObjectTypeName sets the ObjectTypeName field's value.
5162func (s *ListProfileObjectTypeItem) SetObjectTypeName(v string) *ListProfileObjectTypeItem {
5163	s.ObjectTypeName = &v
5164	return s
5165}
5166
5167// SetTags sets the Tags field's value.
5168func (s *ListProfileObjectTypeItem) SetTags(v map[string]*string) *ListProfileObjectTypeItem {
5169	s.Tags = v
5170	return s
5171}
5172
5173// A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.
5174type ListProfileObjectTypeTemplateItem struct {
5175	_ struct{} `type:"structure"`
5176
5177	// The name of the source of the object template.
5178	SourceName *string `min:"1" type:"string"`
5179
5180	// The source of the object template.
5181	SourceObject *string `min:"1" type:"string"`
5182
5183	// A unique identifier for the object template.
5184	TemplateId *string `min:"1" type:"string"`
5185}
5186
5187// String returns the string representation
5188func (s ListProfileObjectTypeTemplateItem) String() string {
5189	return awsutil.Prettify(s)
5190}
5191
5192// GoString returns the string representation
5193func (s ListProfileObjectTypeTemplateItem) GoString() string {
5194	return s.String()
5195}
5196
5197// SetSourceName sets the SourceName field's value.
5198func (s *ListProfileObjectTypeTemplateItem) SetSourceName(v string) *ListProfileObjectTypeTemplateItem {
5199	s.SourceName = &v
5200	return s
5201}
5202
5203// SetSourceObject sets the SourceObject field's value.
5204func (s *ListProfileObjectTypeTemplateItem) SetSourceObject(v string) *ListProfileObjectTypeTemplateItem {
5205	s.SourceObject = &v
5206	return s
5207}
5208
5209// SetTemplateId sets the TemplateId field's value.
5210func (s *ListProfileObjectTypeTemplateItem) SetTemplateId(v string) *ListProfileObjectTypeTemplateItem {
5211	s.TemplateId = &v
5212	return s
5213}
5214
5215type ListProfileObjectTypeTemplatesInput struct {
5216	_ struct{} `type:"structure"`
5217
5218	// The maximum number of objects returned per page.
5219	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`
5220
5221	// The pagination token from the previous ListObjectTypeTemplates API call.
5222	NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"`
5223}
5224
5225// String returns the string representation
5226func (s ListProfileObjectTypeTemplatesInput) String() string {
5227	return awsutil.Prettify(s)
5228}
5229
5230// GoString returns the string representation
5231func (s ListProfileObjectTypeTemplatesInput) GoString() string {
5232	return s.String()
5233}
5234
5235// Validate inspects the fields of the type to determine if they are valid.
5236func (s *ListProfileObjectTypeTemplatesInput) Validate() error {
5237	invalidParams := request.ErrInvalidParams{Context: "ListProfileObjectTypeTemplatesInput"}
5238	if s.MaxResults != nil && *s.MaxResults < 1 {
5239		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5240	}
5241	if s.NextToken != nil && len(*s.NextToken) < 1 {
5242		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5243	}
5244
5245	if invalidParams.Len() > 0 {
5246		return invalidParams
5247	}
5248	return nil
5249}
5250
5251// SetMaxResults sets the MaxResults field's value.
5252func (s *ListProfileObjectTypeTemplatesInput) SetMaxResults(v int64) *ListProfileObjectTypeTemplatesInput {
5253	s.MaxResults = &v
5254	return s
5255}
5256
5257// SetNextToken sets the NextToken field's value.
5258func (s *ListProfileObjectTypeTemplatesInput) SetNextToken(v string) *ListProfileObjectTypeTemplatesInput {
5259	s.NextToken = &v
5260	return s
5261}
5262
5263type ListProfileObjectTypeTemplatesOutput struct {
5264	_ struct{} `type:"structure"`
5265
5266	// The list of ListProfileObjectType template instances.
5267	Items []*ListProfileObjectTypeTemplateItem `type:"list"`
5268
5269	// The pagination token from the previous ListObjectTypeTemplates API call.
5270	NextToken *string `min:"1" type:"string"`
5271}
5272
5273// String returns the string representation
5274func (s ListProfileObjectTypeTemplatesOutput) String() string {
5275	return awsutil.Prettify(s)
5276}
5277
5278// GoString returns the string representation
5279func (s ListProfileObjectTypeTemplatesOutput) GoString() string {
5280	return s.String()
5281}
5282
5283// SetItems sets the Items field's value.
5284func (s *ListProfileObjectTypeTemplatesOutput) SetItems(v []*ListProfileObjectTypeTemplateItem) *ListProfileObjectTypeTemplatesOutput {
5285	s.Items = v
5286	return s
5287}
5288
5289// SetNextToken sets the NextToken field's value.
5290func (s *ListProfileObjectTypeTemplatesOutput) SetNextToken(v string) *ListProfileObjectTypeTemplatesOutput {
5291	s.NextToken = &v
5292	return s
5293}
5294
5295type ListProfileObjectTypesInput struct {
5296	_ struct{} `type:"structure"`
5297
5298	// The unique name of the domain.
5299	//
5300	// DomainName is a required field
5301	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
5302
5303	// The maximum number of objects returned per page.
5304	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`
5305
5306	// Identifies the next page of results to return.
5307	NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"`
5308}
5309
5310// String returns the string representation
5311func (s ListProfileObjectTypesInput) String() string {
5312	return awsutil.Prettify(s)
5313}
5314
5315// GoString returns the string representation
5316func (s ListProfileObjectTypesInput) GoString() string {
5317	return s.String()
5318}
5319
5320// Validate inspects the fields of the type to determine if they are valid.
5321func (s *ListProfileObjectTypesInput) Validate() error {
5322	invalidParams := request.ErrInvalidParams{Context: "ListProfileObjectTypesInput"}
5323	if s.DomainName == nil {
5324		invalidParams.Add(request.NewErrParamRequired("DomainName"))
5325	}
5326	if s.DomainName != nil && len(*s.DomainName) < 1 {
5327		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
5328	}
5329	if s.MaxResults != nil && *s.MaxResults < 1 {
5330		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5331	}
5332	if s.NextToken != nil && len(*s.NextToken) < 1 {
5333		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5334	}
5335
5336	if invalidParams.Len() > 0 {
5337		return invalidParams
5338	}
5339	return nil
5340}
5341
5342// SetDomainName sets the DomainName field's value.
5343func (s *ListProfileObjectTypesInput) SetDomainName(v string) *ListProfileObjectTypesInput {
5344	s.DomainName = &v
5345	return s
5346}
5347
5348// SetMaxResults sets the MaxResults field's value.
5349func (s *ListProfileObjectTypesInput) SetMaxResults(v int64) *ListProfileObjectTypesInput {
5350	s.MaxResults = &v
5351	return s
5352}
5353
5354// SetNextToken sets the NextToken field's value.
5355func (s *ListProfileObjectTypesInput) SetNextToken(v string) *ListProfileObjectTypesInput {
5356	s.NextToken = &v
5357	return s
5358}
5359
5360type ListProfileObjectTypesOutput struct {
5361	_ struct{} `type:"structure"`
5362
5363	// The list of ListProfileObjectTypes instances.
5364	Items []*ListProfileObjectTypeItem `type:"list"`
5365
5366	// Identifies the next page of results to return.
5367	NextToken *string `min:"1" type:"string"`
5368}
5369
5370// String returns the string representation
5371func (s ListProfileObjectTypesOutput) String() string {
5372	return awsutil.Prettify(s)
5373}
5374
5375// GoString returns the string representation
5376func (s ListProfileObjectTypesOutput) GoString() string {
5377	return s.String()
5378}
5379
5380// SetItems sets the Items field's value.
5381func (s *ListProfileObjectTypesOutput) SetItems(v []*ListProfileObjectTypeItem) *ListProfileObjectTypesOutput {
5382	s.Items = v
5383	return s
5384}
5385
5386// SetNextToken sets the NextToken field's value.
5387func (s *ListProfileObjectTypesOutput) SetNextToken(v string) *ListProfileObjectTypesOutput {
5388	s.NextToken = &v
5389	return s
5390}
5391
5392type ListProfileObjectsInput struct {
5393	_ struct{} `type:"structure"`
5394
5395	// The unique name of the domain.
5396	//
5397	// DomainName is a required field
5398	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
5399
5400	// The maximum number of objects returned per page.
5401	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`
5402
5403	// The pagination token from the previous call to ListProfileObjects.
5404	NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"`
5405
5406	// The name of the profile object type.
5407	//
5408	// ObjectTypeName is a required field
5409	ObjectTypeName *string `min:"1" type:"string" required:"true"`
5410
5411	// The unique identifier of a customer profile.
5412	//
5413	// ProfileId is a required field
5414	ProfileId *string `type:"string" required:"true"`
5415}
5416
5417// String returns the string representation
5418func (s ListProfileObjectsInput) String() string {
5419	return awsutil.Prettify(s)
5420}
5421
5422// GoString returns the string representation
5423func (s ListProfileObjectsInput) GoString() string {
5424	return s.String()
5425}
5426
5427// Validate inspects the fields of the type to determine if they are valid.
5428func (s *ListProfileObjectsInput) Validate() error {
5429	invalidParams := request.ErrInvalidParams{Context: "ListProfileObjectsInput"}
5430	if s.DomainName == nil {
5431		invalidParams.Add(request.NewErrParamRequired("DomainName"))
5432	}
5433	if s.DomainName != nil && len(*s.DomainName) < 1 {
5434		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
5435	}
5436	if s.MaxResults != nil && *s.MaxResults < 1 {
5437		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5438	}
5439	if s.NextToken != nil && len(*s.NextToken) < 1 {
5440		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5441	}
5442	if s.ObjectTypeName == nil {
5443		invalidParams.Add(request.NewErrParamRequired("ObjectTypeName"))
5444	}
5445	if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 {
5446		invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1))
5447	}
5448	if s.ProfileId == nil {
5449		invalidParams.Add(request.NewErrParamRequired("ProfileId"))
5450	}
5451
5452	if invalidParams.Len() > 0 {
5453		return invalidParams
5454	}
5455	return nil
5456}
5457
5458// SetDomainName sets the DomainName field's value.
5459func (s *ListProfileObjectsInput) SetDomainName(v string) *ListProfileObjectsInput {
5460	s.DomainName = &v
5461	return s
5462}
5463
5464// SetMaxResults sets the MaxResults field's value.
5465func (s *ListProfileObjectsInput) SetMaxResults(v int64) *ListProfileObjectsInput {
5466	s.MaxResults = &v
5467	return s
5468}
5469
5470// SetNextToken sets the NextToken field's value.
5471func (s *ListProfileObjectsInput) SetNextToken(v string) *ListProfileObjectsInput {
5472	s.NextToken = &v
5473	return s
5474}
5475
5476// SetObjectTypeName sets the ObjectTypeName field's value.
5477func (s *ListProfileObjectsInput) SetObjectTypeName(v string) *ListProfileObjectsInput {
5478	s.ObjectTypeName = &v
5479	return s
5480}
5481
5482// SetProfileId sets the ProfileId field's value.
5483func (s *ListProfileObjectsInput) SetProfileId(v string) *ListProfileObjectsInput {
5484	s.ProfileId = &v
5485	return s
5486}
5487
5488// A ProfileObject in a list of ProfileObjects.
5489type ListProfileObjectsItem struct {
5490	_ struct{} `type:"structure"`
5491
5492	// A JSON representation of a ProfileObject that belongs to a profile.
5493	Object *string `min:"1" type:"string"`
5494
5495	// Specifies the kind of object being added to a profile, such as "Salesforce-Account."
5496	ObjectTypeName *string `min:"1" type:"string"`
5497
5498	// The unique identifier of the ProfileObject generated by the service.
5499	ProfileObjectUniqueKey *string `min:"1" type:"string"`
5500}
5501
5502// String returns the string representation
5503func (s ListProfileObjectsItem) String() string {
5504	return awsutil.Prettify(s)
5505}
5506
5507// GoString returns the string representation
5508func (s ListProfileObjectsItem) GoString() string {
5509	return s.String()
5510}
5511
5512// SetObject sets the Object field's value.
5513func (s *ListProfileObjectsItem) SetObject(v string) *ListProfileObjectsItem {
5514	s.Object = &v
5515	return s
5516}
5517
5518// SetObjectTypeName sets the ObjectTypeName field's value.
5519func (s *ListProfileObjectsItem) SetObjectTypeName(v string) *ListProfileObjectsItem {
5520	s.ObjectTypeName = &v
5521	return s
5522}
5523
5524// SetProfileObjectUniqueKey sets the ProfileObjectUniqueKey field's value.
5525func (s *ListProfileObjectsItem) SetProfileObjectUniqueKey(v string) *ListProfileObjectsItem {
5526	s.ProfileObjectUniqueKey = &v
5527	return s
5528}
5529
5530type ListProfileObjectsOutput struct {
5531	_ struct{} `type:"structure"`
5532
5533	// The list of ListProfileObject instances.
5534	Items []*ListProfileObjectsItem `type:"list"`
5535
5536	// The pagination token from the previous call to ListProfileObjects.
5537	NextToken *string `min:"1" type:"string"`
5538}
5539
5540// String returns the string representation
5541func (s ListProfileObjectsOutput) String() string {
5542	return awsutil.Prettify(s)
5543}
5544
5545// GoString returns the string representation
5546func (s ListProfileObjectsOutput) GoString() string {
5547	return s.String()
5548}
5549
5550// SetItems sets the Items field's value.
5551func (s *ListProfileObjectsOutput) SetItems(v []*ListProfileObjectsItem) *ListProfileObjectsOutput {
5552	s.Items = v
5553	return s
5554}
5555
5556// SetNextToken sets the NextToken field's value.
5557func (s *ListProfileObjectsOutput) SetNextToken(v string) *ListProfileObjectsOutput {
5558	s.NextToken = &v
5559	return s
5560}
5561
5562type ListTagsForResourceInput struct {
5563	_ struct{} `type:"structure"`
5564
5565	// The ARN of the resource for which you want to view tags.
5566	//
5567	// ResourceArn is a required field
5568	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
5569}
5570
5571// String returns the string representation
5572func (s ListTagsForResourceInput) String() string {
5573	return awsutil.Prettify(s)
5574}
5575
5576// GoString returns the string representation
5577func (s ListTagsForResourceInput) GoString() string {
5578	return s.String()
5579}
5580
5581// Validate inspects the fields of the type to determine if they are valid.
5582func (s *ListTagsForResourceInput) Validate() error {
5583	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5584	if s.ResourceArn == nil {
5585		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5586	}
5587	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5588		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5589	}
5590
5591	if invalidParams.Len() > 0 {
5592		return invalidParams
5593	}
5594	return nil
5595}
5596
5597// SetResourceArn sets the ResourceArn field's value.
5598func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5599	s.ResourceArn = &v
5600	return s
5601}
5602
5603type ListTagsForResourceOutput struct {
5604	_ struct{} `type:"structure"`
5605
5606	// The tags used to organize, track, or control access for this resource.
5607	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
5608}
5609
5610// String returns the string representation
5611func (s ListTagsForResourceOutput) String() string {
5612	return awsutil.Prettify(s)
5613}
5614
5615// GoString returns the string representation
5616func (s ListTagsForResourceOutput) GoString() string {
5617	return s.String()
5618}
5619
5620// SetTags sets the Tags field's value.
5621func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
5622	s.Tags = v
5623	return s
5624}
5625
5626// Represents a field in a ProfileObjectType.
5627type ObjectTypeField struct {
5628	_ struct{} `type:"structure"`
5629
5630	// The content type of the field. Used for determining equality when searching.
5631	ContentType *string `type:"string" enum:"FieldContentType"`
5632
5633	// A field of a ProfileObject. For example: _source.FirstName, where “_source”
5634	// is a ProfileObjectType of a Zendesk user and “FirstName” is a field in
5635	// that ObjectType.
5636	Source *string `min:"1" type:"string"`
5637
5638	// The location of the data in the standard ProfileObject model. For example:
5639	// _profile.Address.PostalCode.
5640	Target *string `min:"1" type:"string"`
5641}
5642
5643// String returns the string representation
5644func (s ObjectTypeField) String() string {
5645	return awsutil.Prettify(s)
5646}
5647
5648// GoString returns the string representation
5649func (s ObjectTypeField) GoString() string {
5650	return s.String()
5651}
5652
5653// Validate inspects the fields of the type to determine if they are valid.
5654func (s *ObjectTypeField) Validate() error {
5655	invalidParams := request.ErrInvalidParams{Context: "ObjectTypeField"}
5656	if s.Source != nil && len(*s.Source) < 1 {
5657		invalidParams.Add(request.NewErrParamMinLen("Source", 1))
5658	}
5659	if s.Target != nil && len(*s.Target) < 1 {
5660		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
5661	}
5662
5663	if invalidParams.Len() > 0 {
5664		return invalidParams
5665	}
5666	return nil
5667}
5668
5669// SetContentType sets the ContentType field's value.
5670func (s *ObjectTypeField) SetContentType(v string) *ObjectTypeField {
5671	s.ContentType = &v
5672	return s
5673}
5674
5675// SetSource sets the Source field's value.
5676func (s *ObjectTypeField) SetSource(v string) *ObjectTypeField {
5677	s.Source = &v
5678	return s
5679}
5680
5681// SetTarget sets the Target field's value.
5682func (s *ObjectTypeField) SetTarget(v string) *ObjectTypeField {
5683	s.Target = &v
5684	return s
5685}
5686
5687// An object that defines the Key element of a ProfileObject. A Key is a special
5688// element that can be used to search for a customer profile.
5689type ObjectTypeKey struct {
5690	_ struct{} `type:"structure"`
5691
5692	// The reference for the key name of the fields map.
5693	FieldNames []*string `type:"list"`
5694
5695	// The types of keys that a ProfileObject can have. Each ProfileObject can have
5696	// only 1 UNIQUE key but multiple PROFILE keys. PROFILE means that this key
5697	// can be used to tie an object to a PROFILE. UNIQUE means that it can be used
5698	// to uniquely identify an object. If a key a is marked as SECONDARY, it will
5699	// be used to search for profiles after all other PROFILE keys have been searched.
5700	// A LOOKUP_ONLY key is only used to match a profile but is not persisted to
5701	// be used for searching of the profile. A NEW_ONLY key is only used if the
5702	// profile does not already exist before the object is ingested, otherwise it
5703	// is only used for matching objects to profiles.
5704	StandardIdentifiers []*string `type:"list"`
5705}
5706
5707// String returns the string representation
5708func (s ObjectTypeKey) String() string {
5709	return awsutil.Prettify(s)
5710}
5711
5712// GoString returns the string representation
5713func (s ObjectTypeKey) GoString() string {
5714	return s.String()
5715}
5716
5717// SetFieldNames sets the FieldNames field's value.
5718func (s *ObjectTypeKey) SetFieldNames(v []*string) *ObjectTypeKey {
5719	s.FieldNames = v
5720	return s
5721}
5722
5723// SetStandardIdentifiers sets the StandardIdentifiers field's value.
5724func (s *ObjectTypeKey) SetStandardIdentifiers(v []*string) *ObjectTypeKey {
5725	s.StandardIdentifiers = v
5726	return s
5727}
5728
5729// The standard profile of a customer.
5730type Profile struct {
5731	_ struct{} `type:"structure"`
5732
5733	// A unique account number that you have given to the customer.
5734	AccountNumber *string `min:"1" type:"string"`
5735
5736	// Any additional information relevant to the customer's profile.
5737	AdditionalInformation *string `min:"1" type:"string"`
5738
5739	// A generic address associated with the customer that is not mailing, shipping,
5740	// or billing.
5741	Address *Address `type:"structure"`
5742
5743	// A key value pair of attributes of a customer profile.
5744	Attributes map[string]*string `type:"map"`
5745
5746	// The customer’s billing address.
5747	BillingAddress *Address `type:"structure"`
5748
5749	// The customer’s birth date.
5750	BirthDate *string `min:"1" type:"string"`
5751
5752	// The customer’s business email address.
5753	BusinessEmailAddress *string `min:"1" type:"string"`
5754
5755	// The name of the customer’s business.
5756	BusinessName *string `min:"1" type:"string"`
5757
5758	// The customer’s home phone number.
5759	BusinessPhoneNumber *string `min:"1" type:"string"`
5760
5761	// The customer's email address, which has not been specified as a personal
5762	// or business address.
5763	EmailAddress *string `min:"1" type:"string"`
5764
5765	// The customer’s first name.
5766	FirstName *string `min:"1" type:"string"`
5767
5768	// The gender with which the customer identifies.
5769	Gender *string `type:"string" enum:"Gender"`
5770
5771	// The customer’s home phone number.
5772	HomePhoneNumber *string `min:"1" type:"string"`
5773
5774	// The customer’s last name.
5775	LastName *string `min:"1" type:"string"`
5776
5777	// The customer’s mailing address.
5778	MailingAddress *Address `type:"structure"`
5779
5780	// The customer’s middle name.
5781	MiddleName *string `min:"1" type:"string"`
5782
5783	// The customer’s mobile phone number.
5784	MobilePhoneNumber *string `min:"1" type:"string"`
5785
5786	// The type of profile used to describe the customer.
5787	PartyType *string `type:"string" enum:"PartyType"`
5788
5789	// The customer’s personal email address.
5790	PersonalEmailAddress *string `min:"1" type:"string"`
5791
5792	// The customer's phone number, which has not been specified as a mobile, home,
5793	// or business number.
5794	PhoneNumber *string `min:"1" type:"string"`
5795
5796	// The unique identifier of a customer profile.
5797	ProfileId *string `type:"string"`
5798
5799	// The customer’s shipping address.
5800	ShippingAddress *Address `type:"structure"`
5801}
5802
5803// String returns the string representation
5804func (s Profile) String() string {
5805	return awsutil.Prettify(s)
5806}
5807
5808// GoString returns the string representation
5809func (s Profile) GoString() string {
5810	return s.String()
5811}
5812
5813// SetAccountNumber sets the AccountNumber field's value.
5814func (s *Profile) SetAccountNumber(v string) *Profile {
5815	s.AccountNumber = &v
5816	return s
5817}
5818
5819// SetAdditionalInformation sets the AdditionalInformation field's value.
5820func (s *Profile) SetAdditionalInformation(v string) *Profile {
5821	s.AdditionalInformation = &v
5822	return s
5823}
5824
5825// SetAddress sets the Address field's value.
5826func (s *Profile) SetAddress(v *Address) *Profile {
5827	s.Address = v
5828	return s
5829}
5830
5831// SetAttributes sets the Attributes field's value.
5832func (s *Profile) SetAttributes(v map[string]*string) *Profile {
5833	s.Attributes = v
5834	return s
5835}
5836
5837// SetBillingAddress sets the BillingAddress field's value.
5838func (s *Profile) SetBillingAddress(v *Address) *Profile {
5839	s.BillingAddress = v
5840	return s
5841}
5842
5843// SetBirthDate sets the BirthDate field's value.
5844func (s *Profile) SetBirthDate(v string) *Profile {
5845	s.BirthDate = &v
5846	return s
5847}
5848
5849// SetBusinessEmailAddress sets the BusinessEmailAddress field's value.
5850func (s *Profile) SetBusinessEmailAddress(v string) *Profile {
5851	s.BusinessEmailAddress = &v
5852	return s
5853}
5854
5855// SetBusinessName sets the BusinessName field's value.
5856func (s *Profile) SetBusinessName(v string) *Profile {
5857	s.BusinessName = &v
5858	return s
5859}
5860
5861// SetBusinessPhoneNumber sets the BusinessPhoneNumber field's value.
5862func (s *Profile) SetBusinessPhoneNumber(v string) *Profile {
5863	s.BusinessPhoneNumber = &v
5864	return s
5865}
5866
5867// SetEmailAddress sets the EmailAddress field's value.
5868func (s *Profile) SetEmailAddress(v string) *Profile {
5869	s.EmailAddress = &v
5870	return s
5871}
5872
5873// SetFirstName sets the FirstName field's value.
5874func (s *Profile) SetFirstName(v string) *Profile {
5875	s.FirstName = &v
5876	return s
5877}
5878
5879// SetGender sets the Gender field's value.
5880func (s *Profile) SetGender(v string) *Profile {
5881	s.Gender = &v
5882	return s
5883}
5884
5885// SetHomePhoneNumber sets the HomePhoneNumber field's value.
5886func (s *Profile) SetHomePhoneNumber(v string) *Profile {
5887	s.HomePhoneNumber = &v
5888	return s
5889}
5890
5891// SetLastName sets the LastName field's value.
5892func (s *Profile) SetLastName(v string) *Profile {
5893	s.LastName = &v
5894	return s
5895}
5896
5897// SetMailingAddress sets the MailingAddress field's value.
5898func (s *Profile) SetMailingAddress(v *Address) *Profile {
5899	s.MailingAddress = v
5900	return s
5901}
5902
5903// SetMiddleName sets the MiddleName field's value.
5904func (s *Profile) SetMiddleName(v string) *Profile {
5905	s.MiddleName = &v
5906	return s
5907}
5908
5909// SetMobilePhoneNumber sets the MobilePhoneNumber field's value.
5910func (s *Profile) SetMobilePhoneNumber(v string) *Profile {
5911	s.MobilePhoneNumber = &v
5912	return s
5913}
5914
5915// SetPartyType sets the PartyType field's value.
5916func (s *Profile) SetPartyType(v string) *Profile {
5917	s.PartyType = &v
5918	return s
5919}
5920
5921// SetPersonalEmailAddress sets the PersonalEmailAddress field's value.
5922func (s *Profile) SetPersonalEmailAddress(v string) *Profile {
5923	s.PersonalEmailAddress = &v
5924	return s
5925}
5926
5927// SetPhoneNumber sets the PhoneNumber field's value.
5928func (s *Profile) SetPhoneNumber(v string) *Profile {
5929	s.PhoneNumber = &v
5930	return s
5931}
5932
5933// SetProfileId sets the ProfileId field's value.
5934func (s *Profile) SetProfileId(v string) *Profile {
5935	s.ProfileId = &v
5936	return s
5937}
5938
5939// SetShippingAddress sets the ShippingAddress field's value.
5940func (s *Profile) SetShippingAddress(v *Address) *Profile {
5941	s.ShippingAddress = v
5942	return s
5943}
5944
5945type PutIntegrationInput struct {
5946	_ struct{} `type:"structure"`
5947
5948	// The unique name of the domain.
5949	//
5950	// DomainName is a required field
5951	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
5952
5953	// The name of the profile object type.
5954	//
5955	// ObjectTypeName is a required field
5956	ObjectTypeName *string `min:"1" type:"string" required:"true"`
5957
5958	// The tags used to organize, track, or control access for this resource.
5959	Tags map[string]*string `min:"1" type:"map"`
5960
5961	// The URI of the S3 bucket or any other type of data source.
5962	//
5963	// Uri is a required field
5964	Uri *string `min:"1" type:"string" required:"true"`
5965}
5966
5967// String returns the string representation
5968func (s PutIntegrationInput) String() string {
5969	return awsutil.Prettify(s)
5970}
5971
5972// GoString returns the string representation
5973func (s PutIntegrationInput) GoString() string {
5974	return s.String()
5975}
5976
5977// Validate inspects the fields of the type to determine if they are valid.
5978func (s *PutIntegrationInput) Validate() error {
5979	invalidParams := request.ErrInvalidParams{Context: "PutIntegrationInput"}
5980	if s.DomainName == nil {
5981		invalidParams.Add(request.NewErrParamRequired("DomainName"))
5982	}
5983	if s.DomainName != nil && len(*s.DomainName) < 1 {
5984		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
5985	}
5986	if s.ObjectTypeName == nil {
5987		invalidParams.Add(request.NewErrParamRequired("ObjectTypeName"))
5988	}
5989	if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 {
5990		invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1))
5991	}
5992	if s.Tags != nil && len(s.Tags) < 1 {
5993		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
5994	}
5995	if s.Uri == nil {
5996		invalidParams.Add(request.NewErrParamRequired("Uri"))
5997	}
5998	if s.Uri != nil && len(*s.Uri) < 1 {
5999		invalidParams.Add(request.NewErrParamMinLen("Uri", 1))
6000	}
6001
6002	if invalidParams.Len() > 0 {
6003		return invalidParams
6004	}
6005	return nil
6006}
6007
6008// SetDomainName sets the DomainName field's value.
6009func (s *PutIntegrationInput) SetDomainName(v string) *PutIntegrationInput {
6010	s.DomainName = &v
6011	return s
6012}
6013
6014// SetObjectTypeName sets the ObjectTypeName field's value.
6015func (s *PutIntegrationInput) SetObjectTypeName(v string) *PutIntegrationInput {
6016	s.ObjectTypeName = &v
6017	return s
6018}
6019
6020// SetTags sets the Tags field's value.
6021func (s *PutIntegrationInput) SetTags(v map[string]*string) *PutIntegrationInput {
6022	s.Tags = v
6023	return s
6024}
6025
6026// SetUri sets the Uri field's value.
6027func (s *PutIntegrationInput) SetUri(v string) *PutIntegrationInput {
6028	s.Uri = &v
6029	return s
6030}
6031
6032type PutIntegrationOutput struct {
6033	_ struct{} `type:"structure"`
6034
6035	// The timestamp of when the domain was created.
6036	//
6037	// CreatedAt is a required field
6038	CreatedAt *time.Time `type:"timestamp" required:"true"`
6039
6040	// The unique name of the domain.
6041	//
6042	// DomainName is a required field
6043	DomainName *string `min:"1" type:"string" required:"true"`
6044
6045	// The timestamp of when the domain was most recently edited.
6046	//
6047	// LastUpdatedAt is a required field
6048	LastUpdatedAt *time.Time `type:"timestamp" required:"true"`
6049
6050	// The name of the profile object type.
6051	//
6052	// ObjectTypeName is a required field
6053	ObjectTypeName *string `min:"1" type:"string" required:"true"`
6054
6055	// The tags used to organize, track, or control access for this resource.
6056	Tags map[string]*string `min:"1" type:"map"`
6057
6058	// The URI of the S3 bucket or any other type of data source.
6059	//
6060	// Uri is a required field
6061	Uri *string `min:"1" type:"string" required:"true"`
6062}
6063
6064// String returns the string representation
6065func (s PutIntegrationOutput) String() string {
6066	return awsutil.Prettify(s)
6067}
6068
6069// GoString returns the string representation
6070func (s PutIntegrationOutput) GoString() string {
6071	return s.String()
6072}
6073
6074// SetCreatedAt sets the CreatedAt field's value.
6075func (s *PutIntegrationOutput) SetCreatedAt(v time.Time) *PutIntegrationOutput {
6076	s.CreatedAt = &v
6077	return s
6078}
6079
6080// SetDomainName sets the DomainName field's value.
6081func (s *PutIntegrationOutput) SetDomainName(v string) *PutIntegrationOutput {
6082	s.DomainName = &v
6083	return s
6084}
6085
6086// SetLastUpdatedAt sets the LastUpdatedAt field's value.
6087func (s *PutIntegrationOutput) SetLastUpdatedAt(v time.Time) *PutIntegrationOutput {
6088	s.LastUpdatedAt = &v
6089	return s
6090}
6091
6092// SetObjectTypeName sets the ObjectTypeName field's value.
6093func (s *PutIntegrationOutput) SetObjectTypeName(v string) *PutIntegrationOutput {
6094	s.ObjectTypeName = &v
6095	return s
6096}
6097
6098// SetTags sets the Tags field's value.
6099func (s *PutIntegrationOutput) SetTags(v map[string]*string) *PutIntegrationOutput {
6100	s.Tags = v
6101	return s
6102}
6103
6104// SetUri sets the Uri field's value.
6105func (s *PutIntegrationOutput) SetUri(v string) *PutIntegrationOutput {
6106	s.Uri = &v
6107	return s
6108}
6109
6110type PutProfileObjectInput struct {
6111	_ struct{} `type:"structure"`
6112
6113	// The unique name of the domain.
6114	//
6115	// DomainName is a required field
6116	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
6117
6118	// A string that is serialized from a JSON object.
6119	//
6120	// Object is a required field
6121	Object *string `min:"1" type:"string" required:"true"`
6122
6123	// The name of the profile object type.
6124	//
6125	// ObjectTypeName is a required field
6126	ObjectTypeName *string `min:"1" type:"string" required:"true"`
6127}
6128
6129// String returns the string representation
6130func (s PutProfileObjectInput) String() string {
6131	return awsutil.Prettify(s)
6132}
6133
6134// GoString returns the string representation
6135func (s PutProfileObjectInput) GoString() string {
6136	return s.String()
6137}
6138
6139// Validate inspects the fields of the type to determine if they are valid.
6140func (s *PutProfileObjectInput) Validate() error {
6141	invalidParams := request.ErrInvalidParams{Context: "PutProfileObjectInput"}
6142	if s.DomainName == nil {
6143		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6144	}
6145	if s.DomainName != nil && len(*s.DomainName) < 1 {
6146		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
6147	}
6148	if s.Object == nil {
6149		invalidParams.Add(request.NewErrParamRequired("Object"))
6150	}
6151	if s.Object != nil && len(*s.Object) < 1 {
6152		invalidParams.Add(request.NewErrParamMinLen("Object", 1))
6153	}
6154	if s.ObjectTypeName == nil {
6155		invalidParams.Add(request.NewErrParamRequired("ObjectTypeName"))
6156	}
6157	if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 {
6158		invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1))
6159	}
6160
6161	if invalidParams.Len() > 0 {
6162		return invalidParams
6163	}
6164	return nil
6165}
6166
6167// SetDomainName sets the DomainName field's value.
6168func (s *PutProfileObjectInput) SetDomainName(v string) *PutProfileObjectInput {
6169	s.DomainName = &v
6170	return s
6171}
6172
6173// SetObject sets the Object field's value.
6174func (s *PutProfileObjectInput) SetObject(v string) *PutProfileObjectInput {
6175	s.Object = &v
6176	return s
6177}
6178
6179// SetObjectTypeName sets the ObjectTypeName field's value.
6180func (s *PutProfileObjectInput) SetObjectTypeName(v string) *PutProfileObjectInput {
6181	s.ObjectTypeName = &v
6182	return s
6183}
6184
6185type PutProfileObjectOutput struct {
6186	_ struct{} `type:"structure"`
6187
6188	// The unique identifier of the profile object generated by the service.
6189	ProfileObjectUniqueKey *string `min:"1" type:"string"`
6190}
6191
6192// String returns the string representation
6193func (s PutProfileObjectOutput) String() string {
6194	return awsutil.Prettify(s)
6195}
6196
6197// GoString returns the string representation
6198func (s PutProfileObjectOutput) GoString() string {
6199	return s.String()
6200}
6201
6202// SetProfileObjectUniqueKey sets the ProfileObjectUniqueKey field's value.
6203func (s *PutProfileObjectOutput) SetProfileObjectUniqueKey(v string) *PutProfileObjectOutput {
6204	s.ProfileObjectUniqueKey = &v
6205	return s
6206}
6207
6208type PutProfileObjectTypeInput struct {
6209	_ struct{} `type:"structure"`
6210
6211	// Indicates whether a profile should be created when data is received if one
6212	// doesn’t exist for an object of this type. The default is FALSE. If the
6213	// AllowProfileCreation flag is set to FALSE, then the service tries to fetch
6214	// a standard profile and associate this object with the profile. If it is set
6215	// to TRUE, and if no match is found, then the service creates a new standard
6216	// profile.
6217	AllowProfileCreation *bool `type:"boolean"`
6218
6219	// Description of the profile object type.
6220	//
6221	// Description is a required field
6222	Description *string `min:"1" type:"string" required:"true"`
6223
6224	// The unique name of the domain.
6225	//
6226	// DomainName is a required field
6227	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
6228
6229	// The customer-provided key to encrypt the profile object that will be created
6230	// in this profile object type.
6231	EncryptionKey *string `type:"string"`
6232
6233	// The number of days until the data in the object expires.
6234	ExpirationDays *int64 `min:"1" type:"integer"`
6235
6236	// A map of the name and ObjectType field.
6237	Fields map[string]*ObjectTypeField `type:"map"`
6238
6239	// A list of unique keys that can be used to map data to the profile.
6240	Keys map[string][]*ObjectTypeKey `type:"map"`
6241
6242	// The name of the profile object type.
6243	//
6244	// ObjectTypeName is a required field
6245	ObjectTypeName *string `location:"uri" locationName:"ObjectTypeName" min:"1" type:"string" required:"true"`
6246
6247	// The tags used to organize, track, or control access for this resource.
6248	Tags map[string]*string `min:"1" type:"map"`
6249
6250	// A unique identifier for the object template.
6251	TemplateId *string `min:"1" type:"string"`
6252}
6253
6254// String returns the string representation
6255func (s PutProfileObjectTypeInput) String() string {
6256	return awsutil.Prettify(s)
6257}
6258
6259// GoString returns the string representation
6260func (s PutProfileObjectTypeInput) GoString() string {
6261	return s.String()
6262}
6263
6264// Validate inspects the fields of the type to determine if they are valid.
6265func (s *PutProfileObjectTypeInput) Validate() error {
6266	invalidParams := request.ErrInvalidParams{Context: "PutProfileObjectTypeInput"}
6267	if s.Description == nil {
6268		invalidParams.Add(request.NewErrParamRequired("Description"))
6269	}
6270	if s.Description != nil && len(*s.Description) < 1 {
6271		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
6272	}
6273	if s.DomainName == nil {
6274		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6275	}
6276	if s.DomainName != nil && len(*s.DomainName) < 1 {
6277		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
6278	}
6279	if s.ExpirationDays != nil && *s.ExpirationDays < 1 {
6280		invalidParams.Add(request.NewErrParamMinValue("ExpirationDays", 1))
6281	}
6282	if s.ObjectTypeName == nil {
6283		invalidParams.Add(request.NewErrParamRequired("ObjectTypeName"))
6284	}
6285	if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 {
6286		invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1))
6287	}
6288	if s.Tags != nil && len(s.Tags) < 1 {
6289		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
6290	}
6291	if s.TemplateId != nil && len(*s.TemplateId) < 1 {
6292		invalidParams.Add(request.NewErrParamMinLen("TemplateId", 1))
6293	}
6294	if s.Fields != nil {
6295		for i, v := range s.Fields {
6296			if v == nil {
6297				continue
6298			}
6299			if err := v.Validate(); err != nil {
6300				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Fields", i), err.(request.ErrInvalidParams))
6301			}
6302		}
6303	}
6304
6305	if invalidParams.Len() > 0 {
6306		return invalidParams
6307	}
6308	return nil
6309}
6310
6311// SetAllowProfileCreation sets the AllowProfileCreation field's value.
6312func (s *PutProfileObjectTypeInput) SetAllowProfileCreation(v bool) *PutProfileObjectTypeInput {
6313	s.AllowProfileCreation = &v
6314	return s
6315}
6316
6317// SetDescription sets the Description field's value.
6318func (s *PutProfileObjectTypeInput) SetDescription(v string) *PutProfileObjectTypeInput {
6319	s.Description = &v
6320	return s
6321}
6322
6323// SetDomainName sets the DomainName field's value.
6324func (s *PutProfileObjectTypeInput) SetDomainName(v string) *PutProfileObjectTypeInput {
6325	s.DomainName = &v
6326	return s
6327}
6328
6329// SetEncryptionKey sets the EncryptionKey field's value.
6330func (s *PutProfileObjectTypeInput) SetEncryptionKey(v string) *PutProfileObjectTypeInput {
6331	s.EncryptionKey = &v
6332	return s
6333}
6334
6335// SetExpirationDays sets the ExpirationDays field's value.
6336func (s *PutProfileObjectTypeInput) SetExpirationDays(v int64) *PutProfileObjectTypeInput {
6337	s.ExpirationDays = &v
6338	return s
6339}
6340
6341// SetFields sets the Fields field's value.
6342func (s *PutProfileObjectTypeInput) SetFields(v map[string]*ObjectTypeField) *PutProfileObjectTypeInput {
6343	s.Fields = v
6344	return s
6345}
6346
6347// SetKeys sets the Keys field's value.
6348func (s *PutProfileObjectTypeInput) SetKeys(v map[string][]*ObjectTypeKey) *PutProfileObjectTypeInput {
6349	s.Keys = v
6350	return s
6351}
6352
6353// SetObjectTypeName sets the ObjectTypeName field's value.
6354func (s *PutProfileObjectTypeInput) SetObjectTypeName(v string) *PutProfileObjectTypeInput {
6355	s.ObjectTypeName = &v
6356	return s
6357}
6358
6359// SetTags sets the Tags field's value.
6360func (s *PutProfileObjectTypeInput) SetTags(v map[string]*string) *PutProfileObjectTypeInput {
6361	s.Tags = v
6362	return s
6363}
6364
6365// SetTemplateId sets the TemplateId field's value.
6366func (s *PutProfileObjectTypeInput) SetTemplateId(v string) *PutProfileObjectTypeInput {
6367	s.TemplateId = &v
6368	return s
6369}
6370
6371type PutProfileObjectTypeOutput struct {
6372	_ struct{} `type:"structure"`
6373
6374	// Indicates whether a profile should be created when data is received if one
6375	// doesn’t exist for an object of this type. The default is FALSE. If the
6376	// AllowProfileCreation flag is set to FALSE, then the service tries to fetch
6377	// a standard profile and associate this object with the profile. If it is set
6378	// to TRUE, and if no match is found, then the service creates a new standard
6379	// profile.
6380	AllowProfileCreation *bool `type:"boolean"`
6381
6382	// The timestamp of when the domain was created.
6383	CreatedAt *time.Time `type:"timestamp"`
6384
6385	// Description of the profile object type.
6386	//
6387	// Description is a required field
6388	Description *string `min:"1" type:"string" required:"true"`
6389
6390	// The customer-provided key to encrypt the profile object that will be created
6391	// in this profile object type.
6392	EncryptionKey *string `type:"string"`
6393
6394	// The number of days until the data in the object expires.
6395	ExpirationDays *int64 `min:"1" type:"integer"`
6396
6397	// A map of the name and ObjectType field.
6398	Fields map[string]*ObjectTypeField `type:"map"`
6399
6400	// A list of unique keys that can be used to map data to the profile.
6401	Keys map[string][]*ObjectTypeKey `type:"map"`
6402
6403	// The timestamp of when the domain was most recently edited.
6404	LastUpdatedAt *time.Time `type:"timestamp"`
6405
6406	// The name of the profile object type.
6407	//
6408	// ObjectTypeName is a required field
6409	ObjectTypeName *string `min:"1" type:"string" required:"true"`
6410
6411	// The tags used to organize, track, or control access for this resource.
6412	Tags map[string]*string `min:"1" type:"map"`
6413
6414	// A unique identifier for the object template.
6415	TemplateId *string `min:"1" type:"string"`
6416}
6417
6418// String returns the string representation
6419func (s PutProfileObjectTypeOutput) String() string {
6420	return awsutil.Prettify(s)
6421}
6422
6423// GoString returns the string representation
6424func (s PutProfileObjectTypeOutput) GoString() string {
6425	return s.String()
6426}
6427
6428// SetAllowProfileCreation sets the AllowProfileCreation field's value.
6429func (s *PutProfileObjectTypeOutput) SetAllowProfileCreation(v bool) *PutProfileObjectTypeOutput {
6430	s.AllowProfileCreation = &v
6431	return s
6432}
6433
6434// SetCreatedAt sets the CreatedAt field's value.
6435func (s *PutProfileObjectTypeOutput) SetCreatedAt(v time.Time) *PutProfileObjectTypeOutput {
6436	s.CreatedAt = &v
6437	return s
6438}
6439
6440// SetDescription sets the Description field's value.
6441func (s *PutProfileObjectTypeOutput) SetDescription(v string) *PutProfileObjectTypeOutput {
6442	s.Description = &v
6443	return s
6444}
6445
6446// SetEncryptionKey sets the EncryptionKey field's value.
6447func (s *PutProfileObjectTypeOutput) SetEncryptionKey(v string) *PutProfileObjectTypeOutput {
6448	s.EncryptionKey = &v
6449	return s
6450}
6451
6452// SetExpirationDays sets the ExpirationDays field's value.
6453func (s *PutProfileObjectTypeOutput) SetExpirationDays(v int64) *PutProfileObjectTypeOutput {
6454	s.ExpirationDays = &v
6455	return s
6456}
6457
6458// SetFields sets the Fields field's value.
6459func (s *PutProfileObjectTypeOutput) SetFields(v map[string]*ObjectTypeField) *PutProfileObjectTypeOutput {
6460	s.Fields = v
6461	return s
6462}
6463
6464// SetKeys sets the Keys field's value.
6465func (s *PutProfileObjectTypeOutput) SetKeys(v map[string][]*ObjectTypeKey) *PutProfileObjectTypeOutput {
6466	s.Keys = v
6467	return s
6468}
6469
6470// SetLastUpdatedAt sets the LastUpdatedAt field's value.
6471func (s *PutProfileObjectTypeOutput) SetLastUpdatedAt(v time.Time) *PutProfileObjectTypeOutput {
6472	s.LastUpdatedAt = &v
6473	return s
6474}
6475
6476// SetObjectTypeName sets the ObjectTypeName field's value.
6477func (s *PutProfileObjectTypeOutput) SetObjectTypeName(v string) *PutProfileObjectTypeOutput {
6478	s.ObjectTypeName = &v
6479	return s
6480}
6481
6482// SetTags sets the Tags field's value.
6483func (s *PutProfileObjectTypeOutput) SetTags(v map[string]*string) *PutProfileObjectTypeOutput {
6484	s.Tags = v
6485	return s
6486}
6487
6488// SetTemplateId sets the TemplateId field's value.
6489func (s *PutProfileObjectTypeOutput) SetTemplateId(v string) *PutProfileObjectTypeOutput {
6490	s.TemplateId = &v
6491	return s
6492}
6493
6494// The requested resource does not exist, or access was denied.
6495type ResourceNotFoundException struct {
6496	_            struct{}                  `type:"structure"`
6497	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6498
6499	Message_ *string `locationName:"Message" type:"string"`
6500}
6501
6502// String returns the string representation
6503func (s ResourceNotFoundException) String() string {
6504	return awsutil.Prettify(s)
6505}
6506
6507// GoString returns the string representation
6508func (s ResourceNotFoundException) GoString() string {
6509	return s.String()
6510}
6511
6512func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6513	return &ResourceNotFoundException{
6514		RespMetadata: v,
6515	}
6516}
6517
6518// Code returns the exception type name.
6519func (s *ResourceNotFoundException) Code() string {
6520	return "ResourceNotFoundException"
6521}
6522
6523// Message returns the exception's message.
6524func (s *ResourceNotFoundException) Message() string {
6525	if s.Message_ != nil {
6526		return *s.Message_
6527	}
6528	return ""
6529}
6530
6531// OrigErr always returns nil, satisfies awserr.Error interface.
6532func (s *ResourceNotFoundException) OrigErr() error {
6533	return nil
6534}
6535
6536func (s *ResourceNotFoundException) Error() string {
6537	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6538}
6539
6540// Status code returns the HTTP status code for the request's response error.
6541func (s *ResourceNotFoundException) StatusCode() int {
6542	return s.RespMetadata.StatusCode
6543}
6544
6545// RequestID returns the service's response RequestID for request.
6546func (s *ResourceNotFoundException) RequestID() string {
6547	return s.RespMetadata.RequestID
6548}
6549
6550type SearchProfilesInput struct {
6551	_ struct{} `type:"structure"`
6552
6553	// The unique name of the domain.
6554	//
6555	// DomainName is a required field
6556	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
6557
6558	// A searchable identifier of a customer profile. The predefined keys you can
6559	// use to search include: _account, _profileId, _fullName, _phone, _email, _ctrContactId,
6560	// _marketoLeadId, _salesforceAccountId, _salesforceContactId, _zendeskUserId,
6561	// _zendeskExternalId, _serviceNowSystemId.
6562	//
6563	// KeyName is a required field
6564	KeyName *string `min:"1" type:"string" required:"true"`
6565
6566	// The maximum number of objects returned per page.
6567	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`
6568
6569	// The pagination token from the previous SearchProfiles API call.
6570	NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"`
6571
6572	// A list of key values.
6573	//
6574	// Values is a required field
6575	Values []*string `type:"list" required:"true"`
6576}
6577
6578// String returns the string representation
6579func (s SearchProfilesInput) String() string {
6580	return awsutil.Prettify(s)
6581}
6582
6583// GoString returns the string representation
6584func (s SearchProfilesInput) GoString() string {
6585	return s.String()
6586}
6587
6588// Validate inspects the fields of the type to determine if they are valid.
6589func (s *SearchProfilesInput) Validate() error {
6590	invalidParams := request.ErrInvalidParams{Context: "SearchProfilesInput"}
6591	if s.DomainName == nil {
6592		invalidParams.Add(request.NewErrParamRequired("DomainName"))
6593	}
6594	if s.DomainName != nil && len(*s.DomainName) < 1 {
6595		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
6596	}
6597	if s.KeyName == nil {
6598		invalidParams.Add(request.NewErrParamRequired("KeyName"))
6599	}
6600	if s.KeyName != nil && len(*s.KeyName) < 1 {
6601		invalidParams.Add(request.NewErrParamMinLen("KeyName", 1))
6602	}
6603	if s.MaxResults != nil && *s.MaxResults < 1 {
6604		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6605	}
6606	if s.NextToken != nil && len(*s.NextToken) < 1 {
6607		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6608	}
6609	if s.Values == nil {
6610		invalidParams.Add(request.NewErrParamRequired("Values"))
6611	}
6612
6613	if invalidParams.Len() > 0 {
6614		return invalidParams
6615	}
6616	return nil
6617}
6618
6619// SetDomainName sets the DomainName field's value.
6620func (s *SearchProfilesInput) SetDomainName(v string) *SearchProfilesInput {
6621	s.DomainName = &v
6622	return s
6623}
6624
6625// SetKeyName sets the KeyName field's value.
6626func (s *SearchProfilesInput) SetKeyName(v string) *SearchProfilesInput {
6627	s.KeyName = &v
6628	return s
6629}
6630
6631// SetMaxResults sets the MaxResults field's value.
6632func (s *SearchProfilesInput) SetMaxResults(v int64) *SearchProfilesInput {
6633	s.MaxResults = &v
6634	return s
6635}
6636
6637// SetNextToken sets the NextToken field's value.
6638func (s *SearchProfilesInput) SetNextToken(v string) *SearchProfilesInput {
6639	s.NextToken = &v
6640	return s
6641}
6642
6643// SetValues sets the Values field's value.
6644func (s *SearchProfilesInput) SetValues(v []*string) *SearchProfilesInput {
6645	s.Values = v
6646	return s
6647}
6648
6649type SearchProfilesOutput struct {
6650	_ struct{} `type:"structure"`
6651
6652	// The list of SearchProfiles instances.
6653	Items []*Profile `type:"list"`
6654
6655	// The pagination token from the previous SearchProfiles API call.
6656	NextToken *string `min:"1" type:"string"`
6657}
6658
6659// String returns the string representation
6660func (s SearchProfilesOutput) String() string {
6661	return awsutil.Prettify(s)
6662}
6663
6664// GoString returns the string representation
6665func (s SearchProfilesOutput) GoString() string {
6666	return s.String()
6667}
6668
6669// SetItems sets the Items field's value.
6670func (s *SearchProfilesOutput) SetItems(v []*Profile) *SearchProfilesOutput {
6671	s.Items = v
6672	return s
6673}
6674
6675// SetNextToken sets the NextToken field's value.
6676func (s *SearchProfilesOutput) SetNextToken(v string) *SearchProfilesOutput {
6677	s.NextToken = &v
6678	return s
6679}
6680
6681type TagResourceInput struct {
6682	_ struct{} `type:"structure"`
6683
6684	// The ARN of the resource that you're adding tags to.
6685	//
6686	// ResourceArn is a required field
6687	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
6688
6689	// The tags used to organize, track, or control access for this resource.
6690	//
6691	// Tags is a required field
6692	Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"`
6693}
6694
6695// String returns the string representation
6696func (s TagResourceInput) String() string {
6697	return awsutil.Prettify(s)
6698}
6699
6700// GoString returns the string representation
6701func (s TagResourceInput) GoString() string {
6702	return s.String()
6703}
6704
6705// Validate inspects the fields of the type to determine if they are valid.
6706func (s *TagResourceInput) Validate() error {
6707	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
6708	if s.ResourceArn == nil {
6709		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6710	}
6711	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6712		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6713	}
6714	if s.Tags == nil {
6715		invalidParams.Add(request.NewErrParamRequired("Tags"))
6716	}
6717	if s.Tags != nil && len(s.Tags) < 1 {
6718		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
6719	}
6720
6721	if invalidParams.Len() > 0 {
6722		return invalidParams
6723	}
6724	return nil
6725}
6726
6727// SetResourceArn sets the ResourceArn field's value.
6728func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
6729	s.ResourceArn = &v
6730	return s
6731}
6732
6733// SetTags sets the Tags field's value.
6734func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
6735	s.Tags = v
6736	return s
6737}
6738
6739type TagResourceOutput struct {
6740	_ struct{} `type:"structure"`
6741}
6742
6743// String returns the string representation
6744func (s TagResourceOutput) String() string {
6745	return awsutil.Prettify(s)
6746}
6747
6748// GoString returns the string representation
6749func (s TagResourceOutput) GoString() string {
6750	return s.String()
6751}
6752
6753// You exceeded the maximum number of requests.
6754type ThrottlingException struct {
6755	_            struct{}                  `type:"structure"`
6756	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6757
6758	Message_ *string `locationName:"Message" type:"string"`
6759}
6760
6761// String returns the string representation
6762func (s ThrottlingException) String() string {
6763	return awsutil.Prettify(s)
6764}
6765
6766// GoString returns the string representation
6767func (s ThrottlingException) GoString() string {
6768	return s.String()
6769}
6770
6771func newErrorThrottlingException(v protocol.ResponseMetadata) error {
6772	return &ThrottlingException{
6773		RespMetadata: v,
6774	}
6775}
6776
6777// Code returns the exception type name.
6778func (s *ThrottlingException) Code() string {
6779	return "ThrottlingException"
6780}
6781
6782// Message returns the exception's message.
6783func (s *ThrottlingException) Message() string {
6784	if s.Message_ != nil {
6785		return *s.Message_
6786	}
6787	return ""
6788}
6789
6790// OrigErr always returns nil, satisfies awserr.Error interface.
6791func (s *ThrottlingException) OrigErr() error {
6792	return nil
6793}
6794
6795func (s *ThrottlingException) Error() string {
6796	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6797}
6798
6799// Status code returns the HTTP status code for the request's response error.
6800func (s *ThrottlingException) StatusCode() int {
6801	return s.RespMetadata.StatusCode
6802}
6803
6804// RequestID returns the service's response RequestID for request.
6805func (s *ThrottlingException) RequestID() string {
6806	return s.RespMetadata.RequestID
6807}
6808
6809type UntagResourceInput struct {
6810	_ struct{} `type:"structure"`
6811
6812	// The ARN of the resource from which you are removing tags.
6813	//
6814	// ResourceArn is a required field
6815	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
6816
6817	// The list of tag keys to remove from the resource.
6818	//
6819	// TagKeys is a required field
6820	TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"`
6821}
6822
6823// String returns the string representation
6824func (s UntagResourceInput) String() string {
6825	return awsutil.Prettify(s)
6826}
6827
6828// GoString returns the string representation
6829func (s UntagResourceInput) GoString() string {
6830	return s.String()
6831}
6832
6833// Validate inspects the fields of the type to determine if they are valid.
6834func (s *UntagResourceInput) Validate() error {
6835	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6836	if s.ResourceArn == nil {
6837		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6838	}
6839	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6840		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6841	}
6842	if s.TagKeys == nil {
6843		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6844	}
6845	if s.TagKeys != nil && len(s.TagKeys) < 1 {
6846		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
6847	}
6848
6849	if invalidParams.Len() > 0 {
6850		return invalidParams
6851	}
6852	return nil
6853}
6854
6855// SetResourceArn sets the ResourceArn field's value.
6856func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
6857	s.ResourceArn = &v
6858	return s
6859}
6860
6861// SetTagKeys sets the TagKeys field's value.
6862func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
6863	s.TagKeys = v
6864	return s
6865}
6866
6867type UntagResourceOutput struct {
6868	_ struct{} `type:"structure"`
6869}
6870
6871// String returns the string representation
6872func (s UntagResourceOutput) String() string {
6873	return awsutil.Prettify(s)
6874}
6875
6876// GoString returns the string representation
6877func (s UntagResourceOutput) GoString() string {
6878	return s.String()
6879}
6880
6881// Updates associated with the address properties of a customer profile.
6882type UpdateAddress struct {
6883	_ struct{} `type:"structure"`
6884
6885	// The first line of a customer address.
6886	Address1 *string `type:"string"`
6887
6888	// The second line of a customer address.
6889	Address2 *string `type:"string"`
6890
6891	// The third line of a customer address.
6892	Address3 *string `type:"string"`
6893
6894	// The fourth line of a customer address.
6895	Address4 *string `type:"string"`
6896
6897	// The city in which a customer lives.
6898	City *string `type:"string"`
6899
6900	// The country in which a customer lives.
6901	Country *string `type:"string"`
6902
6903	// The county in which a customer lives.
6904	County *string `type:"string"`
6905
6906	// The postal code of a customer address.
6907	PostalCode *string `type:"string"`
6908
6909	// The province in which a customer lives.
6910	Province *string `type:"string"`
6911
6912	// The state in which a customer lives.
6913	State *string `type:"string"`
6914}
6915
6916// String returns the string representation
6917func (s UpdateAddress) String() string {
6918	return awsutil.Prettify(s)
6919}
6920
6921// GoString returns the string representation
6922func (s UpdateAddress) GoString() string {
6923	return s.String()
6924}
6925
6926// SetAddress1 sets the Address1 field's value.
6927func (s *UpdateAddress) SetAddress1(v string) *UpdateAddress {
6928	s.Address1 = &v
6929	return s
6930}
6931
6932// SetAddress2 sets the Address2 field's value.
6933func (s *UpdateAddress) SetAddress2(v string) *UpdateAddress {
6934	s.Address2 = &v
6935	return s
6936}
6937
6938// SetAddress3 sets the Address3 field's value.
6939func (s *UpdateAddress) SetAddress3(v string) *UpdateAddress {
6940	s.Address3 = &v
6941	return s
6942}
6943
6944// SetAddress4 sets the Address4 field's value.
6945func (s *UpdateAddress) SetAddress4(v string) *UpdateAddress {
6946	s.Address4 = &v
6947	return s
6948}
6949
6950// SetCity sets the City field's value.
6951func (s *UpdateAddress) SetCity(v string) *UpdateAddress {
6952	s.City = &v
6953	return s
6954}
6955
6956// SetCountry sets the Country field's value.
6957func (s *UpdateAddress) SetCountry(v string) *UpdateAddress {
6958	s.Country = &v
6959	return s
6960}
6961
6962// SetCounty sets the County field's value.
6963func (s *UpdateAddress) SetCounty(v string) *UpdateAddress {
6964	s.County = &v
6965	return s
6966}
6967
6968// SetPostalCode sets the PostalCode field's value.
6969func (s *UpdateAddress) SetPostalCode(v string) *UpdateAddress {
6970	s.PostalCode = &v
6971	return s
6972}
6973
6974// SetProvince sets the Province field's value.
6975func (s *UpdateAddress) SetProvince(v string) *UpdateAddress {
6976	s.Province = &v
6977	return s
6978}
6979
6980// SetState sets the State field's value.
6981func (s *UpdateAddress) SetState(v string) *UpdateAddress {
6982	s.State = &v
6983	return s
6984}
6985
6986type UpdateDomainInput struct {
6987	_ struct{} `type:"structure"`
6988
6989	// The URL of the SQS dead letter queue, which is used for reporting errors
6990	// associated with ingesting data from third party applications. If specified
6991	// as an empty string, it will clear any existing value. You must set up a policy
6992	// on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect
6993	// Customer Profiles to send messages to the DeadLetterQueue.
6994	DeadLetterQueueUrl *string `type:"string"`
6995
6996	// The default encryption key, which is an AWS managed key, is used when no
6997	// specific type of encryption key is specified. It is used to encrypt all data
6998	// before it is placed in permanent or semi-permanent storage. If specified
6999	// as an empty string, it will clear any existing value.
7000	DefaultEncryptionKey *string `type:"string"`
7001
7002	// The default number of days until the data within the domain expires.
7003	DefaultExpirationDays *int64 `min:"1" type:"integer"`
7004
7005	// The unique name for the domain.
7006	//
7007	// DomainName is a required field
7008	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
7009
7010	// The tags used to organize, track, or control access for this resource.
7011	Tags map[string]*string `min:"1" type:"map"`
7012}
7013
7014// String returns the string representation
7015func (s UpdateDomainInput) String() string {
7016	return awsutil.Prettify(s)
7017}
7018
7019// GoString returns the string representation
7020func (s UpdateDomainInput) GoString() string {
7021	return s.String()
7022}
7023
7024// Validate inspects the fields of the type to determine if they are valid.
7025func (s *UpdateDomainInput) Validate() error {
7026	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainInput"}
7027	if s.DefaultExpirationDays != nil && *s.DefaultExpirationDays < 1 {
7028		invalidParams.Add(request.NewErrParamMinValue("DefaultExpirationDays", 1))
7029	}
7030	if s.DomainName == nil {
7031		invalidParams.Add(request.NewErrParamRequired("DomainName"))
7032	}
7033	if s.DomainName != nil && len(*s.DomainName) < 1 {
7034		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
7035	}
7036	if s.Tags != nil && len(s.Tags) < 1 {
7037		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
7038	}
7039
7040	if invalidParams.Len() > 0 {
7041		return invalidParams
7042	}
7043	return nil
7044}
7045
7046// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value.
7047func (s *UpdateDomainInput) SetDeadLetterQueueUrl(v string) *UpdateDomainInput {
7048	s.DeadLetterQueueUrl = &v
7049	return s
7050}
7051
7052// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value.
7053func (s *UpdateDomainInput) SetDefaultEncryptionKey(v string) *UpdateDomainInput {
7054	s.DefaultEncryptionKey = &v
7055	return s
7056}
7057
7058// SetDefaultExpirationDays sets the DefaultExpirationDays field's value.
7059func (s *UpdateDomainInput) SetDefaultExpirationDays(v int64) *UpdateDomainInput {
7060	s.DefaultExpirationDays = &v
7061	return s
7062}
7063
7064// SetDomainName sets the DomainName field's value.
7065func (s *UpdateDomainInput) SetDomainName(v string) *UpdateDomainInput {
7066	s.DomainName = &v
7067	return s
7068}
7069
7070// SetTags sets the Tags field's value.
7071func (s *UpdateDomainInput) SetTags(v map[string]*string) *UpdateDomainInput {
7072	s.Tags = v
7073	return s
7074}
7075
7076type UpdateDomainOutput struct {
7077	_ struct{} `type:"structure"`
7078
7079	// The timestamp of when the domain was created.
7080	//
7081	// CreatedAt is a required field
7082	CreatedAt *time.Time `type:"timestamp" required:"true"`
7083
7084	// The URL of the SQS dead letter queue, which is used for reporting errors
7085	// associated with ingesting data from third party applications.
7086	DeadLetterQueueUrl *string `type:"string"`
7087
7088	// The default encryption key, which is an AWS managed key, is used when no
7089	// specific type of encryption key is specified. It is used to encrypt all data
7090	// before it is placed in permanent or semi-permanent storage.
7091	DefaultEncryptionKey *string `type:"string"`
7092
7093	// The default number of days until the data within the domain expires.
7094	DefaultExpirationDays *int64 `min:"1" type:"integer"`
7095
7096	// The unique name for the domain.
7097	//
7098	// DomainName is a required field
7099	DomainName *string `min:"1" type:"string" required:"true"`
7100
7101	// The timestamp of when the domain was most recently edited.
7102	//
7103	// LastUpdatedAt is a required field
7104	LastUpdatedAt *time.Time `type:"timestamp" required:"true"`
7105
7106	// The tags used to organize, track, or control access for this resource.
7107	Tags map[string]*string `min:"1" type:"map"`
7108}
7109
7110// String returns the string representation
7111func (s UpdateDomainOutput) String() string {
7112	return awsutil.Prettify(s)
7113}
7114
7115// GoString returns the string representation
7116func (s UpdateDomainOutput) GoString() string {
7117	return s.String()
7118}
7119
7120// SetCreatedAt sets the CreatedAt field's value.
7121func (s *UpdateDomainOutput) SetCreatedAt(v time.Time) *UpdateDomainOutput {
7122	s.CreatedAt = &v
7123	return s
7124}
7125
7126// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value.
7127func (s *UpdateDomainOutput) SetDeadLetterQueueUrl(v string) *UpdateDomainOutput {
7128	s.DeadLetterQueueUrl = &v
7129	return s
7130}
7131
7132// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value.
7133func (s *UpdateDomainOutput) SetDefaultEncryptionKey(v string) *UpdateDomainOutput {
7134	s.DefaultEncryptionKey = &v
7135	return s
7136}
7137
7138// SetDefaultExpirationDays sets the DefaultExpirationDays field's value.
7139func (s *UpdateDomainOutput) SetDefaultExpirationDays(v int64) *UpdateDomainOutput {
7140	s.DefaultExpirationDays = &v
7141	return s
7142}
7143
7144// SetDomainName sets the DomainName field's value.
7145func (s *UpdateDomainOutput) SetDomainName(v string) *UpdateDomainOutput {
7146	s.DomainName = &v
7147	return s
7148}
7149
7150// SetLastUpdatedAt sets the LastUpdatedAt field's value.
7151func (s *UpdateDomainOutput) SetLastUpdatedAt(v time.Time) *UpdateDomainOutput {
7152	s.LastUpdatedAt = &v
7153	return s
7154}
7155
7156// SetTags sets the Tags field's value.
7157func (s *UpdateDomainOutput) SetTags(v map[string]*string) *UpdateDomainOutput {
7158	s.Tags = v
7159	return s
7160}
7161
7162type UpdateProfileInput struct {
7163	_ struct{} `type:"structure"`
7164
7165	// A unique account number that you have given to the customer.
7166	AccountNumber *string `type:"string"`
7167
7168	// Any additional information relevant to the customer's profile.
7169	AdditionalInformation *string `type:"string"`
7170
7171	// A generic address associated with the customer that is not mailing, shipping,
7172	// or billing.
7173	Address *UpdateAddress `type:"structure"`
7174
7175	// A key value pair of attributes of a customer profile.
7176	Attributes map[string]*string `type:"map"`
7177
7178	// The customer’s billing address.
7179	BillingAddress *UpdateAddress `type:"structure"`
7180
7181	// The customer’s birth date.
7182	BirthDate *string `type:"string"`
7183
7184	// The customer’s business email address.
7185	BusinessEmailAddress *string `type:"string"`
7186
7187	// The name of the customer’s business.
7188	BusinessName *string `type:"string"`
7189
7190	// The customer’s business phone number.
7191	BusinessPhoneNumber *string `type:"string"`
7192
7193	// The unique name of the domain.
7194	//
7195	// DomainName is a required field
7196	DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"`
7197
7198	// The customer's email address, which has not been specified as a personal
7199	// or business address.
7200	EmailAddress *string `type:"string"`
7201
7202	// The customer’s first name.
7203	FirstName *string `type:"string"`
7204
7205	// The gender with which the customer identifies.
7206	Gender *string `type:"string" enum:"Gender"`
7207
7208	// The customer’s home phone number.
7209	HomePhoneNumber *string `type:"string"`
7210
7211	// The customer’s last name.
7212	LastName *string `type:"string"`
7213
7214	// The customer’s mailing address.
7215	MailingAddress *UpdateAddress `type:"structure"`
7216
7217	// The customer’s middle name.
7218	MiddleName *string `type:"string"`
7219
7220	// The customer’s mobile phone number.
7221	MobilePhoneNumber *string `type:"string"`
7222
7223	// The type of profile used to describe the customer.
7224	PartyType *string `type:"string" enum:"PartyType"`
7225
7226	// The customer’s personal email address.
7227	PersonalEmailAddress *string `type:"string"`
7228
7229	// The customer's phone number, which has not been specified as a mobile, home,
7230	// or business number.
7231	PhoneNumber *string `type:"string"`
7232
7233	// The unique identifier of a customer profile.
7234	//
7235	// ProfileId is a required field
7236	ProfileId *string `type:"string" required:"true"`
7237
7238	// The customer’s shipping address.
7239	ShippingAddress *UpdateAddress `type:"structure"`
7240}
7241
7242// String returns the string representation
7243func (s UpdateProfileInput) String() string {
7244	return awsutil.Prettify(s)
7245}
7246
7247// GoString returns the string representation
7248func (s UpdateProfileInput) GoString() string {
7249	return s.String()
7250}
7251
7252// Validate inspects the fields of the type to determine if they are valid.
7253func (s *UpdateProfileInput) Validate() error {
7254	invalidParams := request.ErrInvalidParams{Context: "UpdateProfileInput"}
7255	if s.DomainName == nil {
7256		invalidParams.Add(request.NewErrParamRequired("DomainName"))
7257	}
7258	if s.DomainName != nil && len(*s.DomainName) < 1 {
7259		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
7260	}
7261	if s.ProfileId == nil {
7262		invalidParams.Add(request.NewErrParamRequired("ProfileId"))
7263	}
7264
7265	if invalidParams.Len() > 0 {
7266		return invalidParams
7267	}
7268	return nil
7269}
7270
7271// SetAccountNumber sets the AccountNumber field's value.
7272func (s *UpdateProfileInput) SetAccountNumber(v string) *UpdateProfileInput {
7273	s.AccountNumber = &v
7274	return s
7275}
7276
7277// SetAdditionalInformation sets the AdditionalInformation field's value.
7278func (s *UpdateProfileInput) SetAdditionalInformation(v string) *UpdateProfileInput {
7279	s.AdditionalInformation = &v
7280	return s
7281}
7282
7283// SetAddress sets the Address field's value.
7284func (s *UpdateProfileInput) SetAddress(v *UpdateAddress) *UpdateProfileInput {
7285	s.Address = v
7286	return s
7287}
7288
7289// SetAttributes sets the Attributes field's value.
7290func (s *UpdateProfileInput) SetAttributes(v map[string]*string) *UpdateProfileInput {
7291	s.Attributes = v
7292	return s
7293}
7294
7295// SetBillingAddress sets the BillingAddress field's value.
7296func (s *UpdateProfileInput) SetBillingAddress(v *UpdateAddress) *UpdateProfileInput {
7297	s.BillingAddress = v
7298	return s
7299}
7300
7301// SetBirthDate sets the BirthDate field's value.
7302func (s *UpdateProfileInput) SetBirthDate(v string) *UpdateProfileInput {
7303	s.BirthDate = &v
7304	return s
7305}
7306
7307// SetBusinessEmailAddress sets the BusinessEmailAddress field's value.
7308func (s *UpdateProfileInput) SetBusinessEmailAddress(v string) *UpdateProfileInput {
7309	s.BusinessEmailAddress = &v
7310	return s
7311}
7312
7313// SetBusinessName sets the BusinessName field's value.
7314func (s *UpdateProfileInput) SetBusinessName(v string) *UpdateProfileInput {
7315	s.BusinessName = &v
7316	return s
7317}
7318
7319// SetBusinessPhoneNumber sets the BusinessPhoneNumber field's value.
7320func (s *UpdateProfileInput) SetBusinessPhoneNumber(v string) *UpdateProfileInput {
7321	s.BusinessPhoneNumber = &v
7322	return s
7323}
7324
7325// SetDomainName sets the DomainName field's value.
7326func (s *UpdateProfileInput) SetDomainName(v string) *UpdateProfileInput {
7327	s.DomainName = &v
7328	return s
7329}
7330
7331// SetEmailAddress sets the EmailAddress field's value.
7332func (s *UpdateProfileInput) SetEmailAddress(v string) *UpdateProfileInput {
7333	s.EmailAddress = &v
7334	return s
7335}
7336
7337// SetFirstName sets the FirstName field's value.
7338func (s *UpdateProfileInput) SetFirstName(v string) *UpdateProfileInput {
7339	s.FirstName = &v
7340	return s
7341}
7342
7343// SetGender sets the Gender field's value.
7344func (s *UpdateProfileInput) SetGender(v string) *UpdateProfileInput {
7345	s.Gender = &v
7346	return s
7347}
7348
7349// SetHomePhoneNumber sets the HomePhoneNumber field's value.
7350func (s *UpdateProfileInput) SetHomePhoneNumber(v string) *UpdateProfileInput {
7351	s.HomePhoneNumber = &v
7352	return s
7353}
7354
7355// SetLastName sets the LastName field's value.
7356func (s *UpdateProfileInput) SetLastName(v string) *UpdateProfileInput {
7357	s.LastName = &v
7358	return s
7359}
7360
7361// SetMailingAddress sets the MailingAddress field's value.
7362func (s *UpdateProfileInput) SetMailingAddress(v *UpdateAddress) *UpdateProfileInput {
7363	s.MailingAddress = v
7364	return s
7365}
7366
7367// SetMiddleName sets the MiddleName field's value.
7368func (s *UpdateProfileInput) SetMiddleName(v string) *UpdateProfileInput {
7369	s.MiddleName = &v
7370	return s
7371}
7372
7373// SetMobilePhoneNumber sets the MobilePhoneNumber field's value.
7374func (s *UpdateProfileInput) SetMobilePhoneNumber(v string) *UpdateProfileInput {
7375	s.MobilePhoneNumber = &v
7376	return s
7377}
7378
7379// SetPartyType sets the PartyType field's value.
7380func (s *UpdateProfileInput) SetPartyType(v string) *UpdateProfileInput {
7381	s.PartyType = &v
7382	return s
7383}
7384
7385// SetPersonalEmailAddress sets the PersonalEmailAddress field's value.
7386func (s *UpdateProfileInput) SetPersonalEmailAddress(v string) *UpdateProfileInput {
7387	s.PersonalEmailAddress = &v
7388	return s
7389}
7390
7391// SetPhoneNumber sets the PhoneNumber field's value.
7392func (s *UpdateProfileInput) SetPhoneNumber(v string) *UpdateProfileInput {
7393	s.PhoneNumber = &v
7394	return s
7395}
7396
7397// SetProfileId sets the ProfileId field's value.
7398func (s *UpdateProfileInput) SetProfileId(v string) *UpdateProfileInput {
7399	s.ProfileId = &v
7400	return s
7401}
7402
7403// SetShippingAddress sets the ShippingAddress field's value.
7404func (s *UpdateProfileInput) SetShippingAddress(v *UpdateAddress) *UpdateProfileInput {
7405	s.ShippingAddress = v
7406	return s
7407}
7408
7409type UpdateProfileOutput struct {
7410	_ struct{} `type:"structure"`
7411
7412	// The unique identifier of a customer profile.
7413	//
7414	// ProfileId is a required field
7415	ProfileId *string `type:"string" required:"true"`
7416}
7417
7418// String returns the string representation
7419func (s UpdateProfileOutput) String() string {
7420	return awsutil.Prettify(s)
7421}
7422
7423// GoString returns the string representation
7424func (s UpdateProfileOutput) GoString() string {
7425	return s.String()
7426}
7427
7428// SetProfileId sets the ProfileId field's value.
7429func (s *UpdateProfileOutput) SetProfileId(v string) *UpdateProfileOutput {
7430	s.ProfileId = &v
7431	return s
7432}
7433
7434const (
7435	// FieldContentTypeString is a FieldContentType enum value
7436	FieldContentTypeString = "STRING"
7437
7438	// FieldContentTypeNumber is a FieldContentType enum value
7439	FieldContentTypeNumber = "NUMBER"
7440
7441	// FieldContentTypePhoneNumber is a FieldContentType enum value
7442	FieldContentTypePhoneNumber = "PHONE_NUMBER"
7443
7444	// FieldContentTypeEmailAddress is a FieldContentType enum value
7445	FieldContentTypeEmailAddress = "EMAIL_ADDRESS"
7446
7447	// FieldContentTypeName is a FieldContentType enum value
7448	FieldContentTypeName = "NAME"
7449)
7450
7451// FieldContentType_Values returns all elements of the FieldContentType enum
7452func FieldContentType_Values() []string {
7453	return []string{
7454		FieldContentTypeString,
7455		FieldContentTypeNumber,
7456		FieldContentTypePhoneNumber,
7457		FieldContentTypeEmailAddress,
7458		FieldContentTypeName,
7459	}
7460}
7461
7462const (
7463	// GenderMale is a Gender enum value
7464	GenderMale = "MALE"
7465
7466	// GenderFemale is a Gender enum value
7467	GenderFemale = "FEMALE"
7468
7469	// GenderUnspecified is a Gender enum value
7470	GenderUnspecified = "UNSPECIFIED"
7471)
7472
7473// Gender_Values returns all elements of the Gender enum
7474func Gender_Values() []string {
7475	return []string{
7476		GenderMale,
7477		GenderFemale,
7478		GenderUnspecified,
7479	}
7480}
7481
7482const (
7483	// PartyTypeIndividual is a PartyType enum value
7484	PartyTypeIndividual = "INDIVIDUAL"
7485
7486	// PartyTypeBusiness is a PartyType enum value
7487	PartyTypeBusiness = "BUSINESS"
7488
7489	// PartyTypeOther is a PartyType enum value
7490	PartyTypeOther = "OTHER"
7491)
7492
7493// PartyType_Values returns all elements of the PartyType enum
7494func PartyType_Values() []string {
7495	return []string{
7496		PartyTypeIndividual,
7497		PartyTypeBusiness,
7498		PartyTypeOther,
7499	}
7500}
7501
7502const (
7503	// StandardIdentifierProfile is a StandardIdentifier enum value
7504	StandardIdentifierProfile = "PROFILE"
7505
7506	// StandardIdentifierUnique is a StandardIdentifier enum value
7507	StandardIdentifierUnique = "UNIQUE"
7508
7509	// StandardIdentifierSecondary is a StandardIdentifier enum value
7510	StandardIdentifierSecondary = "SECONDARY"
7511
7512	// StandardIdentifierLookupOnly is a StandardIdentifier enum value
7513	StandardIdentifierLookupOnly = "LOOKUP_ONLY"
7514
7515	// StandardIdentifierNewOnly is a StandardIdentifier enum value
7516	StandardIdentifierNewOnly = "NEW_ONLY"
7517)
7518
7519// StandardIdentifier_Values returns all elements of the StandardIdentifier enum
7520func StandardIdentifier_Values() []string {
7521	return []string{
7522		StandardIdentifierProfile,
7523		StandardIdentifierUnique,
7524		StandardIdentifierSecondary,
7525		StandardIdentifierLookupOnly,
7526		StandardIdentifierNewOnly,
7527	}
7528}
7529