From 28d533cefcc024820a2efba337c1dc4fae694425 Mon Sep 17 00:00:00 2001
From: aws-sdk-go-automation
<43143561+aws-sdk-go-automation@users.noreply.github.com>
Date: Tue, 1 Dec 2020 17:56:27 -0800
Subject: [PATCH] Release v1.36.0 (2020-12-02) (#3670)
Release v1.36.0 (2020-12-02)
===
### Service Client Updates
* `service/customer-profiles`: Adds new service
### SDK Features
* `service/profile`: Remove incorrectly named client package, profile.
* Removes an incorrectly named service client package `profile` that was included in release, v1.35.37.
---
CHANGELOG.md | 10 +
CHANGELOG_PENDING.md | 2 -
aws/endpoints/defaults.go | 12 +
aws/version.go | 2 +-
.../customer-profiles/2020-08-15/api-2.json | 1634 ++++
.../customer-profiles/2020-08-15/docs-2.json | 912 ++
.../2020-08-15/examples-1.json | 5 +
.../2020-08-15/paginators-1.json | 4 +
models/endpoints/endpoints.json | 11 +
service/customerprofiles/api.go | 7518 +++++++++++++++++
.../customerprofilesiface/interface.go | 176 +
service/customerprofiles/doc.go | 39 +
service/customerprofiles/errors.go | 48 +
service/customerprofiles/service.go | 104 +
14 files changed, 10474 insertions(+), 3 deletions(-)
create mode 100644 models/apis/customer-profiles/2020-08-15/api-2.json
create mode 100644 models/apis/customer-profiles/2020-08-15/docs-2.json
create mode 100644 models/apis/customer-profiles/2020-08-15/examples-1.json
create mode 100644 models/apis/customer-profiles/2020-08-15/paginators-1.json
create mode 100644 service/customerprofiles/api.go
create mode 100644 service/customerprofiles/customerprofilesiface/interface.go
create mode 100644 service/customerprofiles/doc.go
create mode 100644 service/customerprofiles/errors.go
create mode 100644 service/customerprofiles/service.go
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2b68d06ba12..488d6d8cdcf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,13 @@
+Release v1.36.0 (2020-12-02)
+===
+
+### Service Client Updates
+* `service/customer-profiles`: Adds new service
+
+### SDK Features
+* `service/profile`: Remove incorrectly named client package, profile.
+ * Removes an incorrectly named service client package `profile` that was included in release, v1.35.37.
+
Release v1.35.37 (2020-12-01)
===
diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md
index dfe239d4867..8a1927a39ca 100644
--- a/CHANGELOG_PENDING.md
+++ b/CHANGELOG_PENDING.md
@@ -1,6 +1,4 @@
### SDK Features
-* `service/profile`: Remove incorrectly named client package, profile.
- * Removes an incorrectly named service client package `profile` that was included in release, v1.35.37.
### SDK Enhancements
diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go
index 76b2a401c21..fc8c1f92921 100644
--- a/aws/endpoints/defaults.go
+++ b/aws/endpoints/defaults.go
@@ -678,6 +678,18 @@ var awsPartition = partition{
"us-west-2": endpoint{},
},
},
+ "app-integrations": service{
+
+ Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "us-east-1": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
"appflow": service{
Endpoints: endpoints{
diff --git a/aws/version.go b/aws/version.go
index e9dacac7ce4..c0e056ea83a 100644
--- a/aws/version.go
+++ b/aws/version.go
@@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go"
// SDKVersion is the version of this SDK
-const SDKVersion = "1.35.37"
+const SDKVersion = "1.36.0"
diff --git a/models/apis/customer-profiles/2020-08-15/api-2.json b/models/apis/customer-profiles/2020-08-15/api-2.json
new file mode 100644
index 00000000000..1520dbba044
--- /dev/null
+++ b/models/apis/customer-profiles/2020-08-15/api-2.json
@@ -0,0 +1,1634 @@
+{
+ "version":"2.0",
+ "metadata":{
+ "apiVersion":"2020-08-15",
+ "endpointPrefix":"profile",
+ "jsonVersion":"1.1",
+ "protocol":"rest-json",
+ "serviceAbbreviation":"Customer Profiles",
+ "serviceFullName":"Amazon Connect Customer Profiles",
+ "serviceId":"Customer Profiles",
+ "signatureVersion":"v4",
+ "signingName":"profile",
+ "uid":"customer-profiles-2020-08-15"
+ },
+ "operations":{
+ "AddProfileKey":{
+ "name":"AddProfileKey",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/profiles/keys"
+ },
+ "input":{"shape":"AddProfileKeyRequest"},
+ "output":{"shape":"AddProfileKeyResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "CreateDomain":{
+ "name":"CreateDomain",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}"
+ },
+ "input":{"shape":"CreateDomainRequest"},
+ "output":{"shape":"CreateDomainResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "CreateProfile":{
+ "name":"CreateProfile",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/profiles"
+ },
+ "input":{"shape":"CreateProfileRequest"},
+ "output":{"shape":"CreateProfileResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "DeleteDomain":{
+ "name":"DeleteDomain",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/domains/{DomainName}"
+ },
+ "input":{"shape":"DeleteDomainRequest"},
+ "output":{"shape":"DeleteDomainResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "DeleteIntegration":{
+ "name":"DeleteIntegration",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/integrations/delete"
+ },
+ "input":{"shape":"DeleteIntegrationRequest"},
+ "output":{"shape":"DeleteIntegrationResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "DeleteProfile":{
+ "name":"DeleteProfile",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/profiles/delete"
+ },
+ "input":{"shape":"DeleteProfileRequest"},
+ "output":{"shape":"DeleteProfileResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "DeleteProfileKey":{
+ "name":"DeleteProfileKey",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/profiles/keys/delete"
+ },
+ "input":{"shape":"DeleteProfileKeyRequest"},
+ "output":{"shape":"DeleteProfileKeyResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "DeleteProfileObject":{
+ "name":"DeleteProfileObject",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/profiles/objects/delete"
+ },
+ "input":{"shape":"DeleteProfileObjectRequest"},
+ "output":{"shape":"DeleteProfileObjectResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "DeleteProfileObjectType":{
+ "name":"DeleteProfileObjectType",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/domains/{DomainName}/object-types/{ObjectTypeName}"
+ },
+ "input":{"shape":"DeleteProfileObjectTypeRequest"},
+ "output":{"shape":"DeleteProfileObjectTypeResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "GetDomain":{
+ "name":"GetDomain",
+ "http":{
+ "method":"GET",
+ "requestUri":"/domains/{DomainName}"
+ },
+ "input":{"shape":"GetDomainRequest"},
+ "output":{"shape":"GetDomainResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "GetIntegration":{
+ "name":"GetIntegration",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/integrations"
+ },
+ "input":{"shape":"GetIntegrationRequest"},
+ "output":{"shape":"GetIntegrationResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "GetProfileObjectType":{
+ "name":"GetProfileObjectType",
+ "http":{
+ "method":"GET",
+ "requestUri":"/domains/{DomainName}/object-types/{ObjectTypeName}"
+ },
+ "input":{"shape":"GetProfileObjectTypeRequest"},
+ "output":{"shape":"GetProfileObjectTypeResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "GetProfileObjectTypeTemplate":{
+ "name":"GetProfileObjectTypeTemplate",
+ "http":{
+ "method":"GET",
+ "requestUri":"/templates/{TemplateId}"
+ },
+ "input":{"shape":"GetProfileObjectTypeTemplateRequest"},
+ "output":{"shape":"GetProfileObjectTypeTemplateResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "ListAccountIntegrations":{
+ "name":"ListAccountIntegrations",
+ "http":{
+ "method":"POST",
+ "requestUri":"/integrations"
+ },
+ "input":{"shape":"ListAccountIntegrationsRequest"},
+ "output":{"shape":"ListAccountIntegrationsResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "ListDomains":{
+ "name":"ListDomains",
+ "http":{
+ "method":"GET",
+ "requestUri":"/domains"
+ },
+ "input":{"shape":"ListDomainsRequest"},
+ "output":{"shape":"ListDomainsResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "ListIntegrations":{
+ "name":"ListIntegrations",
+ "http":{
+ "method":"GET",
+ "requestUri":"/domains/{DomainName}/integrations"
+ },
+ "input":{"shape":"ListIntegrationsRequest"},
+ "output":{"shape":"ListIntegrationsResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "ListProfileObjectTypeTemplates":{
+ "name":"ListProfileObjectTypeTemplates",
+ "http":{
+ "method":"GET",
+ "requestUri":"/templates"
+ },
+ "input":{"shape":"ListProfileObjectTypeTemplatesRequest"},
+ "output":{"shape":"ListProfileObjectTypeTemplatesResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "ListProfileObjectTypes":{
+ "name":"ListProfileObjectTypes",
+ "http":{
+ "method":"GET",
+ "requestUri":"/domains/{DomainName}/object-types"
+ },
+ "input":{"shape":"ListProfileObjectTypesRequest"},
+ "output":{"shape":"ListProfileObjectTypesResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "ListProfileObjects":{
+ "name":"ListProfileObjects",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/profiles/objects"
+ },
+ "input":{"shape":"ListProfileObjectsRequest"},
+ "output":{"shape":"ListProfileObjectsResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "ListTagsForResource":{
+ "name":"ListTagsForResource",
+ "http":{
+ "method":"GET",
+ "requestUri":"/tags/{resourceArn}"
+ },
+ "input":{"shape":"ListTagsForResourceRequest"},
+ "output":{"shape":"ListTagsForResourceResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"}
+ ]
+ },
+ "PutIntegration":{
+ "name":"PutIntegration",
+ "http":{
+ "method":"PUT",
+ "requestUri":"/domains/{DomainName}/integrations"
+ },
+ "input":{"shape":"PutIntegrationRequest"},
+ "output":{"shape":"PutIntegrationResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "PutProfileObject":{
+ "name":"PutProfileObject",
+ "http":{
+ "method":"PUT",
+ "requestUri":"/domains/{DomainName}/profiles/objects"
+ },
+ "input":{"shape":"PutProfileObjectRequest"},
+ "output":{"shape":"PutProfileObjectResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "PutProfileObjectType":{
+ "name":"PutProfileObjectType",
+ "http":{
+ "method":"PUT",
+ "requestUri":"/domains/{DomainName}/object-types/{ObjectTypeName}"
+ },
+ "input":{"shape":"PutProfileObjectTypeRequest"},
+ "output":{"shape":"PutProfileObjectTypeResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "SearchProfiles":{
+ "name":"SearchProfiles",
+ "http":{
+ "method":"POST",
+ "requestUri":"/domains/{DomainName}/profiles/search"
+ },
+ "input":{"shape":"SearchProfilesRequest"},
+ "output":{"shape":"SearchProfilesResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "TagResource":{
+ "name":"TagResource",
+ "http":{
+ "method":"POST",
+ "requestUri":"/tags/{resourceArn}"
+ },
+ "input":{"shape":"TagResourceRequest"},
+ "output":{"shape":"TagResourceResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"}
+ ]
+ },
+ "UntagResource":{
+ "name":"UntagResource",
+ "http":{
+ "method":"DELETE",
+ "requestUri":"/tags/{resourceArn}"
+ },
+ "input":{"shape":"UntagResourceRequest"},
+ "output":{"shape":"UntagResourceResponse"},
+ "errors":[
+ {"shape":"InternalServerException"},
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"}
+ ]
+ },
+ "UpdateDomain":{
+ "name":"UpdateDomain",
+ "http":{
+ "method":"PUT",
+ "requestUri":"/domains/{DomainName}"
+ },
+ "input":{"shape":"UpdateDomainRequest"},
+ "output":{"shape":"UpdateDomainResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ },
+ "UpdateProfile":{
+ "name":"UpdateProfile",
+ "http":{
+ "method":"PUT",
+ "requestUri":"/domains/{DomainName}/profiles"
+ },
+ "input":{"shape":"UpdateProfileRequest"},
+ "output":{"shape":"UpdateProfileResponse"},
+ "errors":[
+ {"shape":"BadRequestException"},
+ {"shape":"AccessDeniedException"},
+ {"shape":"ResourceNotFoundException"},
+ {"shape":"ThrottlingException"},
+ {"shape":"InternalServerException"}
+ ]
+ }
+ },
+ "shapes":{
+ "name":{
+ "type":"string",
+ "max":64,
+ "min":1,
+ "pattern":"^[a-zA-Z0-9_-]+$"
+ },
+ "AccessDeniedException":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ },
+ "error":{"httpStatusCode":403},
+ "exception":true
+ },
+ "AddProfileKeyRequest":{
+ "type":"structure",
+ "required":[
+ "ProfileId",
+ "KeyName",
+ "Values",
+ "DomainName"
+ ],
+ "members":{
+ "ProfileId":{"shape":"uuid"},
+ "KeyName":{"shape":"name"},
+ "Values":{"shape":"requestValueList"},
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ }
+ }
+ },
+ "AddProfileKeyResponse":{
+ "type":"structure",
+ "members":{
+ "KeyName":{"shape":"name"},
+ "Values":{"shape":"requestValueList"}
+ }
+ },
+ "Address":{
+ "type":"structure",
+ "members":{
+ "Address1":{"shape":"string1To255"},
+ "Address2":{"shape":"string1To255"},
+ "Address3":{"shape":"string1To255"},
+ "Address4":{"shape":"string1To255"},
+ "City":{"shape":"string1To255"},
+ "County":{"shape":"string1To255"},
+ "State":{"shape":"string1To255"},
+ "Province":{"shape":"string1To255"},
+ "Country":{"shape":"string1To255"},
+ "PostalCode":{"shape":"string1To255"}
+ }
+ },
+ "Attributes":{
+ "type":"map",
+ "key":{"shape":"string1To255"},
+ "value":{"shape":"string1To255"}
+ },
+ "BadRequestException":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ },
+ "error":{"httpStatusCode":400},
+ "exception":true
+ },
+ "CreateDomainRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "DefaultExpirationDays"
+ ],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "DefaultExpirationDays":{"shape":"expirationDaysInteger"},
+ "DefaultEncryptionKey":{"shape":"encryptionKey"},
+ "DeadLetterQueueUrl":{"shape":"sqsQueueUrl"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "CreateDomainResponse":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "DefaultExpirationDays",
+ "CreatedAt",
+ "LastUpdatedAt"
+ ],
+ "members":{
+ "DomainName":{"shape":"name"},
+ "DefaultExpirationDays":{"shape":"expirationDaysInteger"},
+ "DefaultEncryptionKey":{"shape":"encryptionKey"},
+ "DeadLetterQueueUrl":{"shape":"sqsQueueUrl"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "CreateProfileRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "AccountNumber":{"shape":"string1To255"},
+ "AdditionalInformation":{"shape":"string1To1000"},
+ "PartyType":{"shape":"PartyType"},
+ "BusinessName":{"shape":"string1To255"},
+ "FirstName":{"shape":"string1To255"},
+ "MiddleName":{"shape":"string1To255"},
+ "LastName":{"shape":"string1To255"},
+ "BirthDate":{"shape":"string1To255"},
+ "Gender":{"shape":"Gender"},
+ "PhoneNumber":{"shape":"string1To255"},
+ "MobilePhoneNumber":{"shape":"string1To255"},
+ "HomePhoneNumber":{"shape":"string1To255"},
+ "BusinessPhoneNumber":{"shape":"string1To255"},
+ "EmailAddress":{"shape":"string1To255"},
+ "PersonalEmailAddress":{"shape":"string1To255"},
+ "BusinessEmailAddress":{"shape":"string1To255"},
+ "Address":{"shape":"Address"},
+ "ShippingAddress":{"shape":"Address"},
+ "MailingAddress":{"shape":"Address"},
+ "BillingAddress":{"shape":"Address"},
+ "Attributes":{"shape":"Attributes"}
+ }
+ },
+ "CreateProfileResponse":{
+ "type":"structure",
+ "required":["ProfileId"],
+ "members":{
+ "ProfileId":{"shape":"uuid"}
+ }
+ },
+ "DeleteDomainRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ }
+ }
+ },
+ "DeleteDomainResponse":{
+ "type":"structure",
+ "required":["Message"],
+ "members":{
+ "Message":{"shape":"message"}
+ }
+ },
+ "DeleteIntegrationRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "Uri":{"shape":"string1To255"}
+ }
+ },
+ "DeleteIntegrationResponse":{
+ "type":"structure",
+ "required":["Message"],
+ "members":{
+ "Message":{"shape":"message"}
+ }
+ },
+ "DeleteProfileKeyRequest":{
+ "type":"structure",
+ "required":[
+ "ProfileId",
+ "KeyName",
+ "Values",
+ "DomainName"
+ ],
+ "members":{
+ "ProfileId":{"shape":"uuid"},
+ "KeyName":{"shape":"name"},
+ "Values":{"shape":"requestValueList"},
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ }
+ }
+ },
+ "DeleteProfileKeyResponse":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ }
+ },
+ "DeleteProfileObjectRequest":{
+ "type":"structure",
+ "required":[
+ "ProfileId",
+ "ProfileObjectUniqueKey",
+ "ObjectTypeName",
+ "DomainName"
+ ],
+ "members":{
+ "ProfileId":{"shape":"uuid"},
+ "ProfileObjectUniqueKey":{"shape":"string1To255"},
+ "ObjectTypeName":{"shape":"typeName"},
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ }
+ }
+ },
+ "DeleteProfileObjectResponse":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ }
+ },
+ "DeleteProfileObjectTypeRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "ObjectTypeName"
+ ],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "ObjectTypeName":{
+ "shape":"typeName",
+ "location":"uri",
+ "locationName":"ObjectTypeName"
+ }
+ }
+ },
+ "DeleteProfileObjectTypeResponse":{
+ "type":"structure",
+ "required":["Message"],
+ "members":{
+ "Message":{"shape":"message"}
+ }
+ },
+ "DeleteProfileRequest":{
+ "type":"structure",
+ "required":[
+ "ProfileId",
+ "DomainName"
+ ],
+ "members":{
+ "ProfileId":{"shape":"uuid"},
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ }
+ }
+ },
+ "DeleteProfileResponse":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ }
+ },
+ "DomainList":{
+ "type":"list",
+ "member":{"shape":"ListDomainItem"}
+ },
+ "DomainStats":{
+ "type":"structure",
+ "members":{
+ "ProfileCount":{"shape":"long"},
+ "MeteringProfileCount":{"shape":"long"},
+ "ObjectCount":{"shape":"long"},
+ "TotalSize":{"shape":"long"}
+ }
+ },
+ "FieldContentType":{
+ "type":"string",
+ "enum":[
+ "STRING",
+ "NUMBER",
+ "PHONE_NUMBER",
+ "EMAIL_ADDRESS",
+ "NAME"
+ ]
+ },
+ "FieldMap":{
+ "type":"map",
+ "key":{"shape":"name"},
+ "value":{"shape":"ObjectTypeField"}
+ },
+ "FieldNameList":{
+ "type":"list",
+ "member":{"shape":"name"}
+ },
+ "Gender":{
+ "type":"string",
+ "enum":[
+ "MALE",
+ "FEMALE",
+ "UNSPECIFIED"
+ ]
+ },
+ "GetDomainRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ }
+ }
+ },
+ "GetDomainResponse":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "CreatedAt",
+ "LastUpdatedAt"
+ ],
+ "members":{
+ "DomainName":{"shape":"name"},
+ "DefaultExpirationDays":{"shape":"expirationDaysInteger"},
+ "DefaultEncryptionKey":{"shape":"encryptionKey"},
+ "DeadLetterQueueUrl":{"shape":"sqsQueueUrl"},
+ "Stats":{"shape":"DomainStats"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "GetIntegrationRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "Uri":{"shape":"string1To255"}
+ }
+ },
+ "GetIntegrationResponse":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "Uri",
+ "ObjectTypeName",
+ "CreatedAt",
+ "LastUpdatedAt"
+ ],
+ "members":{
+ "DomainName":{"shape":"name"},
+ "Uri":{"shape":"string1To255"},
+ "ObjectTypeName":{"shape":"typeName"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "GetProfileObjectTypeRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "ObjectTypeName"
+ ],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "ObjectTypeName":{
+ "shape":"typeName",
+ "location":"uri",
+ "locationName":"ObjectTypeName"
+ }
+ }
+ },
+ "GetProfileObjectTypeResponse":{
+ "type":"structure",
+ "required":[
+ "ObjectTypeName",
+ "Description"
+ ],
+ "members":{
+ "ObjectTypeName":{"shape":"typeName"},
+ "Description":{"shape":"text"},
+ "TemplateId":{"shape":"name"},
+ "ExpirationDays":{"shape":"expirationDaysInteger"},
+ "EncryptionKey":{"shape":"encryptionKey"},
+ "AllowProfileCreation":{"shape":"boolean"},
+ "Fields":{"shape":"FieldMap"},
+ "Keys":{"shape":"KeyMap"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "GetProfileObjectTypeTemplateRequest":{
+ "type":"structure",
+ "required":["TemplateId"],
+ "members":{
+ "TemplateId":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"TemplateId"
+ }
+ }
+ },
+ "GetProfileObjectTypeTemplateResponse":{
+ "type":"structure",
+ "members":{
+ "TemplateId":{"shape":"name"},
+ "SourceName":{"shape":"name"},
+ "SourceObject":{"shape":"name"},
+ "AllowProfileCreation":{"shape":"boolean"},
+ "Fields":{"shape":"FieldMap"},
+ "Keys":{"shape":"KeyMap"}
+ }
+ },
+ "IntegrationList":{
+ "type":"list",
+ "member":{"shape":"ListIntegrationItem"}
+ },
+ "InternalServerException":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ },
+ "error":{"httpStatusCode":500},
+ "exception":true,
+ "fault":true
+ },
+ "KeyMap":{
+ "type":"map",
+ "key":{"shape":"name"},
+ "value":{"shape":"ObjectTypeKeyList"}
+ },
+ "ListAccountIntegrationsRequest":{
+ "type":"structure",
+ "required":["Uri"],
+ "members":{
+ "Uri":{"shape":"string1To255"},
+ "NextToken":{
+ "shape":"token",
+ "location":"querystring",
+ "locationName":"next-token"
+ },
+ "MaxResults":{
+ "shape":"maxSize100",
+ "location":"querystring",
+ "locationName":"max-results"
+ }
+ }
+ },
+ "ListAccountIntegrationsResponse":{
+ "type":"structure",
+ "members":{
+ "Items":{"shape":"IntegrationList"},
+ "NextToken":{"shape":"token"}
+ }
+ },
+ "ListDomainItem":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "CreatedAt",
+ "LastUpdatedAt"
+ ],
+ "members":{
+ "DomainName":{"shape":"name"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "ListDomainsRequest":{
+ "type":"structure",
+ "members":{
+ "NextToken":{
+ "shape":"token",
+ "location":"querystring",
+ "locationName":"next-token"
+ },
+ "MaxResults":{
+ "shape":"maxSize100",
+ "location":"querystring",
+ "locationName":"max-results"
+ }
+ }
+ },
+ "ListDomainsResponse":{
+ "type":"structure",
+ "members":{
+ "Items":{"shape":"DomainList"},
+ "NextToken":{"shape":"token"}
+ }
+ },
+ "ListIntegrationItem":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "Uri",
+ "ObjectTypeName",
+ "CreatedAt",
+ "LastUpdatedAt"
+ ],
+ "members":{
+ "DomainName":{"shape":"name"},
+ "Uri":{"shape":"string1To255"},
+ "ObjectTypeName":{"shape":"typeName"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "ListIntegrationsRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "NextToken":{
+ "shape":"token",
+ "location":"querystring",
+ "locationName":"next-token"
+ },
+ "MaxResults":{
+ "shape":"maxSize100",
+ "location":"querystring",
+ "locationName":"max-results"
+ }
+ }
+ },
+ "ListIntegrationsResponse":{
+ "type":"structure",
+ "members":{
+ "Items":{"shape":"IntegrationList"},
+ "NextToken":{"shape":"token"}
+ }
+ },
+ "ListProfileObjectTypeItem":{
+ "type":"structure",
+ "required":[
+ "ObjectTypeName",
+ "Description"
+ ],
+ "members":{
+ "ObjectTypeName":{"shape":"typeName"},
+ "Description":{"shape":"text"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "ListProfileObjectTypeTemplateItem":{
+ "type":"structure",
+ "members":{
+ "TemplateId":{"shape":"name"},
+ "SourceName":{"shape":"name"},
+ "SourceObject":{"shape":"name"}
+ }
+ },
+ "ListProfileObjectTypeTemplatesRequest":{
+ "type":"structure",
+ "members":{
+ "NextToken":{
+ "shape":"token",
+ "location":"querystring",
+ "locationName":"next-token"
+ },
+ "MaxResults":{
+ "shape":"maxSize100",
+ "location":"querystring",
+ "locationName":"max-results"
+ }
+ }
+ },
+ "ListProfileObjectTypeTemplatesResponse":{
+ "type":"structure",
+ "members":{
+ "Items":{"shape":"ProfileObjectTypeTemplateList"},
+ "NextToken":{"shape":"token"}
+ }
+ },
+ "ListProfileObjectTypesRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "NextToken":{
+ "shape":"token",
+ "location":"querystring",
+ "locationName":"next-token"
+ },
+ "MaxResults":{
+ "shape":"maxSize100",
+ "location":"querystring",
+ "locationName":"max-results"
+ }
+ }
+ },
+ "ListProfileObjectTypesResponse":{
+ "type":"structure",
+ "members":{
+ "Items":{"shape":"ProfileObjectTypeList"},
+ "NextToken":{"shape":"token"}
+ }
+ },
+ "ListProfileObjectsItem":{
+ "type":"structure",
+ "members":{
+ "ObjectTypeName":{"shape":"typeName"},
+ "ProfileObjectUniqueKey":{"shape":"string1To255"},
+ "Object":{"shape":"stringifiedJson"}
+ }
+ },
+ "ListProfileObjectsRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "ObjectTypeName",
+ "ProfileId"
+ ],
+ "members":{
+ "NextToken":{
+ "shape":"token",
+ "location":"querystring",
+ "locationName":"next-token"
+ },
+ "MaxResults":{
+ "shape":"maxSize100",
+ "location":"querystring",
+ "locationName":"max-results"
+ },
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "ObjectTypeName":{"shape":"typeName"},
+ "ProfileId":{"shape":"uuid"}
+ }
+ },
+ "ListProfileObjectsResponse":{
+ "type":"structure",
+ "members":{
+ "Items":{"shape":"ProfileObjectList"},
+ "NextToken":{"shape":"token"}
+ }
+ },
+ "ListTagsForResourceRequest":{
+ "type":"structure",
+ "required":["resourceArn"],
+ "members":{
+ "resourceArn":{
+ "shape":"TagArn",
+ "location":"uri",
+ "locationName":"resourceArn"
+ }
+ }
+ },
+ "ListTagsForResourceResponse":{
+ "type":"structure",
+ "members":{
+ "tags":{"shape":"TagMap"}
+ }
+ },
+ "ObjectTypeField":{
+ "type":"structure",
+ "members":{
+ "Source":{"shape":"text"},
+ "Target":{"shape":"text"},
+ "ContentType":{"shape":"FieldContentType"}
+ }
+ },
+ "ObjectTypeKey":{
+ "type":"structure",
+ "members":{
+ "StandardIdentifiers":{"shape":"StandardIdentifierList"},
+ "FieldNames":{"shape":"FieldNameList"}
+ }
+ },
+ "ObjectTypeKeyList":{
+ "type":"list",
+ "member":{"shape":"ObjectTypeKey"}
+ },
+ "PartyType":{
+ "type":"string",
+ "enum":[
+ "INDIVIDUAL",
+ "BUSINESS",
+ "OTHER"
+ ]
+ },
+ "Profile":{
+ "type":"structure",
+ "members":{
+ "ProfileId":{"shape":"uuid"},
+ "AccountNumber":{"shape":"string1To255"},
+ "AdditionalInformation":{"shape":"string1To1000"},
+ "PartyType":{"shape":"PartyType"},
+ "BusinessName":{"shape":"string1To255"},
+ "FirstName":{"shape":"string1To255"},
+ "MiddleName":{"shape":"string1To255"},
+ "LastName":{"shape":"string1To255"},
+ "BirthDate":{"shape":"string1To255"},
+ "Gender":{"shape":"Gender"},
+ "PhoneNumber":{"shape":"string1To255"},
+ "MobilePhoneNumber":{"shape":"string1To255"},
+ "HomePhoneNumber":{"shape":"string1To255"},
+ "BusinessPhoneNumber":{"shape":"string1To255"},
+ "EmailAddress":{"shape":"string1To255"},
+ "PersonalEmailAddress":{"shape":"string1To255"},
+ "BusinessEmailAddress":{"shape":"string1To255"},
+ "Address":{"shape":"Address"},
+ "ShippingAddress":{"shape":"Address"},
+ "MailingAddress":{"shape":"Address"},
+ "BillingAddress":{"shape":"Address"},
+ "Attributes":{"shape":"Attributes"}
+ }
+ },
+ "ProfileList":{
+ "type":"list",
+ "member":{"shape":"Profile"}
+ },
+ "ProfileObjectList":{
+ "type":"list",
+ "member":{"shape":"ListProfileObjectsItem"}
+ },
+ "ProfileObjectTypeList":{
+ "type":"list",
+ "member":{"shape":"ListProfileObjectTypeItem"}
+ },
+ "ProfileObjectTypeTemplateList":{
+ "type":"list",
+ "member":{"shape":"ListProfileObjectTypeTemplateItem"}
+ },
+ "PutIntegrationRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "Uri",
+ "ObjectTypeName"
+ ],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "Uri":{"shape":"string1To255"},
+ "ObjectTypeName":{"shape":"typeName"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "PutIntegrationResponse":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "Uri",
+ "ObjectTypeName",
+ "CreatedAt",
+ "LastUpdatedAt"
+ ],
+ "members":{
+ "DomainName":{"shape":"name"},
+ "Uri":{"shape":"string1To255"},
+ "ObjectTypeName":{"shape":"typeName"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "PutProfileObjectRequest":{
+ "type":"structure",
+ "required":[
+ "ObjectTypeName",
+ "Object",
+ "DomainName"
+ ],
+ "members":{
+ "ObjectTypeName":{"shape":"typeName"},
+ "Object":{"shape":"stringifiedJson"},
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ }
+ }
+ },
+ "PutProfileObjectResponse":{
+ "type":"structure",
+ "members":{
+ "ProfileObjectUniqueKey":{"shape":"string1To255"}
+ }
+ },
+ "PutProfileObjectTypeRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "ObjectTypeName",
+ "Description"
+ ],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "ObjectTypeName":{
+ "shape":"typeName",
+ "location":"uri",
+ "locationName":"ObjectTypeName"
+ },
+ "Description":{"shape":"text"},
+ "TemplateId":{"shape":"name"},
+ "ExpirationDays":{"shape":"expirationDaysInteger"},
+ "EncryptionKey":{"shape":"encryptionKey"},
+ "AllowProfileCreation":{"shape":"boolean"},
+ "Fields":{"shape":"FieldMap"},
+ "Keys":{"shape":"KeyMap"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "PutProfileObjectTypeResponse":{
+ "type":"structure",
+ "required":[
+ "ObjectTypeName",
+ "Description"
+ ],
+ "members":{
+ "ObjectTypeName":{"shape":"typeName"},
+ "Description":{"shape":"text"},
+ "TemplateId":{"shape":"name"},
+ "ExpirationDays":{"shape":"expirationDaysInteger"},
+ "EncryptionKey":{"shape":"encryptionKey"},
+ "AllowProfileCreation":{"shape":"boolean"},
+ "Fields":{"shape":"FieldMap"},
+ "Keys":{"shape":"KeyMap"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "ResourceNotFoundException":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ },
+ "error":{"httpStatusCode":404},
+ "exception":true
+ },
+ "SearchProfilesRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "KeyName",
+ "Values"
+ ],
+ "members":{
+ "NextToken":{
+ "shape":"token",
+ "location":"querystring",
+ "locationName":"next-token"
+ },
+ "MaxResults":{
+ "shape":"maxSize100",
+ "location":"querystring",
+ "locationName":"max-results"
+ },
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "KeyName":{"shape":"name"},
+ "Values":{"shape":"requestValueList"}
+ }
+ },
+ "SearchProfilesResponse":{
+ "type":"structure",
+ "members":{
+ "Items":{"shape":"ProfileList"},
+ "NextToken":{"shape":"token"}
+ }
+ },
+ "StandardIdentifier":{
+ "type":"string",
+ "enum":[
+ "PROFILE",
+ "UNIQUE",
+ "SECONDARY",
+ "LOOKUP_ONLY",
+ "NEW_ONLY"
+ ]
+ },
+ "StandardIdentifierList":{
+ "type":"list",
+ "member":{"shape":"StandardIdentifier"}
+ },
+ "TagArn":{
+ "type":"string",
+ "max":256,
+ "pattern":"^arn:[a-z0-9]{1,10}:profile"
+ },
+ "TagKey":{
+ "type":"string",
+ "max":128,
+ "min":1,
+ "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$"
+ },
+ "TagKeyList":{
+ "type":"list",
+ "member":{"shape":"TagKey"},
+ "max":50,
+ "min":1
+ },
+ "TagMap":{
+ "type":"map",
+ "key":{"shape":"TagKey"},
+ "value":{"shape":"TagValue"},
+ "max":50,
+ "min":1
+ },
+ "TagResourceRequest":{
+ "type":"structure",
+ "required":[
+ "resourceArn",
+ "tags"
+ ],
+ "members":{
+ "resourceArn":{
+ "shape":"TagArn",
+ "location":"uri",
+ "locationName":"resourceArn"
+ },
+ "tags":{"shape":"TagMap"}
+ }
+ },
+ "TagResourceResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "TagValue":{
+ "type":"string",
+ "max":256
+ },
+ "ThrottlingException":{
+ "type":"structure",
+ "members":{
+ "Message":{"shape":"message"}
+ },
+ "error":{"httpStatusCode":429},
+ "exception":true
+ },
+ "UntagResourceRequest":{
+ "type":"structure",
+ "required":[
+ "resourceArn",
+ "tagKeys"
+ ],
+ "members":{
+ "resourceArn":{
+ "shape":"TagArn",
+ "location":"uri",
+ "locationName":"resourceArn"
+ },
+ "tagKeys":{
+ "shape":"TagKeyList",
+ "location":"querystring",
+ "locationName":"tagKeys"
+ }
+ }
+ },
+ "UntagResourceResponse":{
+ "type":"structure",
+ "members":{
+ }
+ },
+ "UpdateAddress":{
+ "type":"structure",
+ "members":{
+ "Address1":{"shape":"string0To255"},
+ "Address2":{"shape":"string0To255"},
+ "Address3":{"shape":"string0To255"},
+ "Address4":{"shape":"string0To255"},
+ "City":{"shape":"string0To255"},
+ "County":{"shape":"string0To255"},
+ "State":{"shape":"string0To255"},
+ "Province":{"shape":"string0To255"},
+ "Country":{"shape":"string0To255"},
+ "PostalCode":{"shape":"string0To255"}
+ }
+ },
+ "UpdateAttributes":{
+ "type":"map",
+ "key":{"shape":"string1To255"},
+ "value":{"shape":"string0To255"}
+ },
+ "UpdateDomainRequest":{
+ "type":"structure",
+ "required":["DomainName"],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "DefaultExpirationDays":{"shape":"expirationDaysInteger"},
+ "DefaultEncryptionKey":{"shape":"encryptionKey"},
+ "DeadLetterQueueUrl":{"shape":"sqsQueueUrl"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "UpdateDomainResponse":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "CreatedAt",
+ "LastUpdatedAt"
+ ],
+ "members":{
+ "DomainName":{"shape":"name"},
+ "DefaultExpirationDays":{"shape":"expirationDaysInteger"},
+ "DefaultEncryptionKey":{"shape":"encryptionKey"},
+ "DeadLetterQueueUrl":{"shape":"sqsQueueUrl"},
+ "CreatedAt":{"shape":"timestamp"},
+ "LastUpdatedAt":{"shape":"timestamp"},
+ "Tags":{"shape":"TagMap"}
+ }
+ },
+ "UpdateProfileRequest":{
+ "type":"structure",
+ "required":[
+ "DomainName",
+ "ProfileId"
+ ],
+ "members":{
+ "DomainName":{
+ "shape":"name",
+ "location":"uri",
+ "locationName":"DomainName"
+ },
+ "ProfileId":{"shape":"uuid"},
+ "AdditionalInformation":{"shape":"string0To1000"},
+ "AccountNumber":{"shape":"string0To255"},
+ "PartyType":{"shape":"PartyType"},
+ "BusinessName":{"shape":"string0To255"},
+ "FirstName":{"shape":"string0To255"},
+ "MiddleName":{"shape":"string0To255"},
+ "LastName":{"shape":"string0To255"},
+ "BirthDate":{"shape":"string0To255"},
+ "Gender":{"shape":"Gender"},
+ "PhoneNumber":{"shape":"string0To255"},
+ "MobilePhoneNumber":{"shape":"string0To255"},
+ "HomePhoneNumber":{"shape":"string0To255"},
+ "BusinessPhoneNumber":{"shape":"string0To255"},
+ "EmailAddress":{"shape":"string0To255"},
+ "PersonalEmailAddress":{"shape":"string0To255"},
+ "BusinessEmailAddress":{"shape":"string0To255"},
+ "Address":{"shape":"UpdateAddress"},
+ "ShippingAddress":{"shape":"UpdateAddress"},
+ "MailingAddress":{"shape":"UpdateAddress"},
+ "BillingAddress":{"shape":"UpdateAddress"},
+ "Attributes":{"shape":"UpdateAttributes"}
+ }
+ },
+ "UpdateProfileResponse":{
+ "type":"structure",
+ "required":["ProfileId"],
+ "members":{
+ "ProfileId":{"shape":"uuid"}
+ }
+ },
+ "boolean":{"type":"boolean"},
+ "encryptionKey":{
+ "type":"string",
+ "max":255,
+ "min":0
+ },
+ "expirationDaysInteger":{
+ "type":"integer",
+ "max":1098,
+ "min":1
+ },
+ "long":{"type":"long"},
+ "maxSize100":{
+ "type":"integer",
+ "max":100,
+ "min":1
+ },
+ "message":{"type":"string"},
+ "requestValueList":{
+ "type":"list",
+ "member":{"shape":"string1To255"}
+ },
+ "sqsQueueUrl":{
+ "type":"string",
+ "max":255,
+ "min":0
+ },
+ "string0To1000":{
+ "type":"string",
+ "max":1000,
+ "min":0
+ },
+ "string0To255":{
+ "type":"string",
+ "max":255,
+ "min":0
+ },
+ "string1To1000":{
+ "type":"string",
+ "max":1000,
+ "min":1
+ },
+ "string1To255":{
+ "type":"string",
+ "max":255,
+ "min":1
+ },
+ "stringifiedJson":{
+ "type":"string",
+ "max":256000,
+ "min":1
+ },
+ "text":{
+ "type":"string",
+ "max":1000,
+ "min":1
+ },
+ "timestamp":{"type":"timestamp"},
+ "token":{
+ "type":"string",
+ "max":1024,
+ "min":1
+ },
+ "typeName":{
+ "type":"string",
+ "max":255,
+ "min":1,
+ "pattern":"^[a-zA-Z_][a-zA-Z_0-9-]*$"
+ },
+ "uuid":{
+ "type":"string",
+ "pattern":"[a-f0-9]{32}"
+ }
+ }
+}
diff --git a/models/apis/customer-profiles/2020-08-15/docs-2.json b/models/apis/customer-profiles/2020-08-15/docs-2.json
new file mode 100644
index 00000000000..3440e2fe771
--- /dev/null
+++ b/models/apis/customer-profiles/2020-08-15/docs-2.json
@@ -0,0 +1,912 @@
+{
+ "version": "2.0",
+ "service": "
Welcome to the Amazon Connect Customer Profiles API Reference. This guide provides information about the Amazon Connect Customer Profiles API, including supported operations, data types, parameters, and schemas.
Amazon Connect Customer Profiles is a unified customer profile for your contact center that has pre-built connectors powered by AppFlow that make it easy to combine customer information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your Amazon Connect contact center.
If you're new to Amazon Connect, you might find it helpful to also review the Amazon Connect Administrator Guide.
", + "operations": { + "AddProfileKey": "Associates a new key value with a specific profile, such as a Contact Trace Record (CTR) ContactId.
A profile object can have a single unique key and any number of additional keys that can be used to identify the profile that it belongs to.
", + "CreateDomain": "Creates a domain, which is a container for all customer data, such as customer profile attributes, object types, profile keys, and encryption keys. You can create multiple domains, and each domain can have multiple third-party integrations.
Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances can be associated with one domain.
", + "CreateProfile": "Creates a standard profile.
A standard profile represents the following attributes for a customer profile in a domain.
", + "DeleteDomain": "Deletes a specific domain and all of its customer data, such as customer profile attributes and their related objects.
", + "DeleteIntegration": "Removes an integration from a specific domain.
", + "DeleteProfile": "Deletes the standard customer profile and all data pertaining to the profile.
", + "DeleteProfileKey": "Removes a searchable key from a customer profile.
", + "DeleteProfileObject": "Removes an object associated with a profile of a given ProfileObjectType.
", + "DeleteProfileObjectType": "Removes a ProfileObjectType from a specific domain as well as removes all the ProfileObjects of that type. It also disables integrations from this specific ProfileObjectType. In addition, it scrubs all of the fields of the standard profile that were populated from this ProfileObjectType.
", + "GetDomain": "Returns information about a specific domain.
", + "GetIntegration": "Returns an integration for a domain.
", + "GetProfileObjectType": "Returns the object types for a specific domain.
", + "GetProfileObjectTypeTemplate": "Returns the template information for a specific object type.
A template is a predefined ProfileObjectType, such as “Salesforce-Account” or “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API, with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the template.
", + "ListAccountIntegrations": "Lists all of the integrations associated to a specific URI in the AWS account.
", + "ListDomains": "Returns a list of all the domains for an AWS account that have been created.
", + "ListIntegrations": "Lists all of the integrations in your domain.
", + "ListProfileObjectTypeTemplates": "Lists all of the template information for object types.
", + "ListProfileObjectTypes": "Lists all of the templates available within the service.
", + "ListProfileObjects": "Returns a list of objects associated with a profile of a given ProfileObjectType.
", + "ListTagsForResource": "Displays the tags associated with an Amazon Connect Customer Profiles resource. In Connect Customer Profiles, domains, profile object types, and integrations can be tagged.
", + "PutIntegration": "Adds an integration between the service and a third-party service, which includes Amazon AppFlow and Amazon Connect.
An integration can belong to only one domain.
", + "PutProfileObject": "Adds additional objects to customer profiles of a given ObjectType.
When adding a specific profile object, like a Contact Trace Record (CTR), an inferred profile can get created if it is not mapped to an existing profile. The resulting profile will only have a phone number populated in the standard ProfileObject. Any additional CTRs with the same phone number will be mapped to the same inferred profile.
When a ProfileObject is created and if a ProfileObjectType already exists for the ProfileObject, it will provide data to a standard profile depending on the ProfileObjectType definition.
PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType.
", + "PutProfileObjectType": "Defines a ProfileObjectType.
", + "SearchProfiles": "Searches for profiles within a specific domain name using name, phone number, email address, account number, or a custom defined index.
", + "TagResource": "Assigns one or more tags (key-value pairs) to the specified Amazon Connect Customer Profiles resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. In Connect Customer Profiles, domains, profile object types, and integrations can be tagged.
Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.
You can use the TagResource action with a resource that already has tags. If you specify a new tag key, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.
You can associate as many as 50 tags with a resource.
", + "UntagResource": "Removes one or more tags from the specified Amazon Connect Customer Profiles resource. In Connect Customer Profiles, domains, profile object types, and integrations can be tagged.
", + "UpdateDomain": "Updates the properties of a domain, including creating or selecting a dead letter queue or an encryption key.
Once a domain is created, the name can’t be changed.
", + "UpdateProfile": "Updates the properties of a profile. The ProfileId is required for updating a customer profile.
When calling the UpdateProfile API, specifying an empty string value means that any existing value will be removed. Not specifying a string value means that any value already there will be kept.
" + }, + "shapes": { + "name": { + "base": null, + "refs": { + "AddProfileKeyRequest$KeyName": "A searchable identifier of a customer profile.
", + "AddProfileKeyRequest$DomainName": "The unique name of the domain.
", + "AddProfileKeyResponse$KeyName": "A searchable identifier of a customer profile.
", + "CreateDomainRequest$DomainName": "The unique name of the domain.
", + "CreateDomainResponse$DomainName": "The unique name of the domain.
", + "CreateProfileRequest$DomainName": "The unique name of the domain.
", + "DeleteDomainRequest$DomainName": "The unique name of the domain.
", + "DeleteIntegrationRequest$DomainName": "The unique name of the domain.
", + "DeleteProfileKeyRequest$KeyName": "A searchable identifier of a customer profile.
", + "DeleteProfileKeyRequest$DomainName": "The unique name of the domain.
", + "DeleteProfileObjectRequest$DomainName": "The unique name of the domain.
", + "DeleteProfileObjectTypeRequest$DomainName": "The unique name of the domain.
", + "DeleteProfileRequest$DomainName": "The unique name of the domain.
", + "FieldMap$key": null, + "FieldNameList$member": null, + "GetDomainRequest$DomainName": "A unique name for the domain.
", + "GetDomainResponse$DomainName": "The unique name of the domain.
", + "GetIntegrationRequest$DomainName": "The unique name of the domain.
", + "GetIntegrationResponse$DomainName": "The unique name of the domain.
", + "GetProfileObjectTypeRequest$DomainName": "The unique name of the domain.
", + "GetProfileObjectTypeResponse$TemplateId": "A unique identifier for the object template.
", + "GetProfileObjectTypeTemplateRequest$TemplateId": "A unique identifier for the object template.
", + "GetProfileObjectTypeTemplateResponse$TemplateId": "A unique identifier for the object template.
", + "GetProfileObjectTypeTemplateResponse$SourceName": "The name of the source of the object template.
", + "GetProfileObjectTypeTemplateResponse$SourceObject": "The source of the object template.
", + "KeyMap$key": null, + "ListDomainItem$DomainName": "The unique name of the domain.
", + "ListIntegrationItem$DomainName": "The unique name of the domain.
", + "ListIntegrationsRequest$DomainName": "The unique name of the domain.
", + "ListProfileObjectTypeTemplateItem$TemplateId": "A unique identifier for the object template.
", + "ListProfileObjectTypeTemplateItem$SourceName": "The name of the source of the object template.
", + "ListProfileObjectTypeTemplateItem$SourceObject": "The source of the object template.
", + "ListProfileObjectTypesRequest$DomainName": "The unique name of the domain.
", + "ListProfileObjectsRequest$DomainName": "The unique name of the domain.
", + "PutIntegrationRequest$DomainName": "The unique name of the domain.
", + "PutIntegrationResponse$DomainName": "The unique name of the domain.
", + "PutProfileObjectRequest$DomainName": "The unique name of the domain.
", + "PutProfileObjectTypeRequest$DomainName": "The unique name of the domain.
", + "PutProfileObjectTypeRequest$TemplateId": "A unique identifier for the object template.
", + "PutProfileObjectTypeResponse$TemplateId": "A unique identifier for the object template.
", + "SearchProfilesRequest$DomainName": "The unique name of the domain.
", + "SearchProfilesRequest$KeyName": "A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, _profileId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, _salesforceAccountId, _salesforceContactId, _zendeskUserId, _zendeskExternalId, _serviceNowSystemId.
", + "UpdateDomainRequest$DomainName": "The unique name for the domain.
", + "UpdateDomainResponse$DomainName": "The unique name for the domain.
", + "UpdateProfileRequest$DomainName": "The unique name of the domain.
" + } + }, + "AccessDeniedException": { + "base": "You do not have sufficient access to perform this action.
", + "refs": { + } + }, + "AddProfileKeyRequest": { + "base": null, + "refs": { + } + }, + "AddProfileKeyResponse": { + "base": null, + "refs": { + } + }, + "Address": { + "base": "A generic address associated with the customer that is not mailing, shipping, or billing.
", + "refs": { + "CreateProfileRequest$Address": "A generic address associated with the customer that is not mailing, shipping, or billing.
", + "CreateProfileRequest$ShippingAddress": "The customer’s shipping address.
", + "CreateProfileRequest$MailingAddress": "The customer’s mailing address.
", + "CreateProfileRequest$BillingAddress": "The customer’s billing address.
", + "Profile$Address": "A generic address associated with the customer that is not mailing, shipping, or billing.
", + "Profile$ShippingAddress": "The customer’s shipping address.
", + "Profile$MailingAddress": "The customer’s mailing address.
", + "Profile$BillingAddress": "The customer’s billing address.
" + } + }, + "Attributes": { + "base": null, + "refs": { + "CreateProfileRequest$Attributes": "A key value pair of attributes of a customer profile.
", + "Profile$Attributes": "A key value pair of attributes of a customer profile.
" + } + }, + "BadRequestException": { + "base": "The input you provided is invalid.
", + "refs": { + } + }, + "CreateDomainRequest": { + "base": null, + "refs": { + } + }, + "CreateDomainResponse": { + "base": null, + "refs": { + } + }, + "CreateProfileRequest": { + "base": null, + "refs": { + } + }, + "CreateProfileResponse": { + "base": null, + "refs": { + } + }, + "DeleteDomainRequest": { + "base": null, + "refs": { + } + }, + "DeleteDomainResponse": { + "base": null, + "refs": { + } + }, + "DeleteIntegrationRequest": { + "base": null, + "refs": { + } + }, + "DeleteIntegrationResponse": { + "base": null, + "refs": { + } + }, + "DeleteProfileKeyRequest": { + "base": null, + "refs": { + } + }, + "DeleteProfileKeyResponse": { + "base": null, + "refs": { + } + }, + "DeleteProfileObjectRequest": { + "base": null, + "refs": { + } + }, + "DeleteProfileObjectResponse": { + "base": null, + "refs": { + } + }, + "DeleteProfileObjectTypeRequest": { + "base": null, + "refs": { + } + }, + "DeleteProfileObjectTypeResponse": { + "base": null, + "refs": { + } + }, + "DeleteProfileRequest": { + "base": null, + "refs": { + } + }, + "DeleteProfileResponse": { + "base": null, + "refs": { + } + }, + "DomainList": { + "base": null, + "refs": { + "ListDomainsResponse$Items": "The list of ListDomains instances.
" + } + }, + "DomainStats": { + "base": "Usage-specific statistics about the domain.
", + "refs": { + "GetDomainResponse$Stats": "Usage-specific statistics about the domain.
" + } + }, + "FieldContentType": { + "base": null, + "refs": { + "ObjectTypeField$ContentType": "The content type of the field. Used for determining equality when searching.
" + } + }, + "FieldMap": { + "base": null, + "refs": { + "GetProfileObjectTypeResponse$Fields": "A map of the name and ObjectType field.
", + "GetProfileObjectTypeTemplateResponse$Fields": "A map of the name and ObjectType field.
", + "PutProfileObjectTypeRequest$Fields": "A map of the name and ObjectType field.
", + "PutProfileObjectTypeResponse$Fields": "A map of the name and ObjectType field.
" + } + }, + "FieldNameList": { + "base": null, + "refs": { + "ObjectTypeKey$FieldNames": "The reference for the key name of the fields map.
" + } + }, + "Gender": { + "base": null, + "refs": { + "CreateProfileRequest$Gender": "The gender with which the customer identifies.
", + "Profile$Gender": "The gender with which the customer identifies.
", + "UpdateProfileRequest$Gender": "The gender with which the customer identifies.
" + } + }, + "GetDomainRequest": { + "base": null, + "refs": { + } + }, + "GetDomainResponse": { + "base": null, + "refs": { + } + }, + "GetIntegrationRequest": { + "base": null, + "refs": { + } + }, + "GetIntegrationResponse": { + "base": null, + "refs": { + } + }, + "GetProfileObjectTypeRequest": { + "base": null, + "refs": { + } + }, + "GetProfileObjectTypeResponse": { + "base": null, + "refs": { + } + }, + "GetProfileObjectTypeTemplateRequest": { + "base": null, + "refs": { + } + }, + "GetProfileObjectTypeTemplateResponse": { + "base": null, + "refs": { + } + }, + "IntegrationList": { + "base": null, + "refs": { + "ListAccountIntegrationsResponse$Items": "The list of ListAccountIntegration instances.
", + "ListIntegrationsResponse$Items": "The list of ListIntegrations instances.
" + } + }, + "InternalServerException": { + "base": "An internal service error occurred.
", + "refs": { + } + }, + "KeyMap": { + "base": null, + "refs": { + "GetProfileObjectTypeResponse$Keys": "A list of unique keys that can be used to map data to the profile.
", + "GetProfileObjectTypeTemplateResponse$Keys": "A list of unique keys that can be used to map data to the profile.
", + "PutProfileObjectTypeRequest$Keys": "A list of unique keys that can be used to map data to the profile.
", + "PutProfileObjectTypeResponse$Keys": "A list of unique keys that can be used to map data to the profile.
" + } + }, + "ListAccountIntegrationsRequest": { + "base": null, + "refs": { + } + }, + "ListAccountIntegrationsResponse": { + "base": null, + "refs": { + } + }, + "ListDomainItem": { + "base": "An object in a list that represents a domain.
", + "refs": { + "DomainList$member": null + } + }, + "ListDomainsRequest": { + "base": null, + "refs": { + } + }, + "ListDomainsResponse": { + "base": null, + "refs": { + } + }, + "ListIntegrationItem": { + "base": "An integration in list of integrations.
", + "refs": { + "IntegrationList$member": null + } + }, + "ListIntegrationsRequest": { + "base": null, + "refs": { + } + }, + "ListIntegrationsResponse": { + "base": null, + "refs": { + } + }, + "ListProfileObjectTypeItem": { + "base": "A ProfileObjectType instance.
", + "refs": { + "ProfileObjectTypeList$member": null + } + }, + "ListProfileObjectTypeTemplateItem": { + "base": "A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.
", + "refs": { + "ProfileObjectTypeTemplateList$member": null + } + }, + "ListProfileObjectTypeTemplatesRequest": { + "base": null, + "refs": { + } + }, + "ListProfileObjectTypeTemplatesResponse": { + "base": null, + "refs": { + } + }, + "ListProfileObjectTypesRequest": { + "base": null, + "refs": { + } + }, + "ListProfileObjectTypesResponse": { + "base": null, + "refs": { + } + }, + "ListProfileObjectsItem": { + "base": "A ProfileObject in a list of ProfileObjects.
", + "refs": { + "ProfileObjectList$member": null + } + }, + "ListProfileObjectsRequest": { + "base": null, + "refs": { + } + }, + "ListProfileObjectsResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "ObjectTypeField": { + "base": "Represents a field in a ProfileObjectType.
", + "refs": { + "FieldMap$value": null + } + }, + "ObjectTypeKey": { + "base": "An object that defines the Key element of a ProfileObject. A Key is a special element that can be used to search for a customer profile.
", + "refs": { + "ObjectTypeKeyList$member": null + } + }, + "ObjectTypeKeyList": { + "base": null, + "refs": { + "KeyMap$value": null + } + }, + "PartyType": { + "base": null, + "refs": { + "CreateProfileRequest$PartyType": "The type of profile used to describe the customer.
", + "Profile$PartyType": "The type of profile used to describe the customer.
", + "UpdateProfileRequest$PartyType": "The type of profile used to describe the customer.
" + } + }, + "Profile": { + "base": "The standard profile of a customer.
", + "refs": { + "ProfileList$member": null + } + }, + "ProfileList": { + "base": null, + "refs": { + "SearchProfilesResponse$Items": "The list of SearchProfiles instances.
" + } + }, + "ProfileObjectList": { + "base": null, + "refs": { + "ListProfileObjectsResponse$Items": "The list of ListProfileObject instances.
" + } + }, + "ProfileObjectTypeList": { + "base": null, + "refs": { + "ListProfileObjectTypesResponse$Items": "The list of ListProfileObjectTypes instances.
" + } + }, + "ProfileObjectTypeTemplateList": { + "base": null, + "refs": { + "ListProfileObjectTypeTemplatesResponse$Items": "The list of ListProfileObjectType template instances.
" + } + }, + "PutIntegrationRequest": { + "base": null, + "refs": { + } + }, + "PutIntegrationResponse": { + "base": null, + "refs": { + } + }, + "PutProfileObjectRequest": { + "base": null, + "refs": { + } + }, + "PutProfileObjectResponse": { + "base": null, + "refs": { + } + }, + "PutProfileObjectTypeRequest": { + "base": null, + "refs": { + } + }, + "PutProfileObjectTypeResponse": { + "base": null, + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "The requested resource does not exist, or access was denied.
", + "refs": { + } + }, + "SearchProfilesRequest": { + "base": null, + "refs": { + } + }, + "SearchProfilesResponse": { + "base": null, + "refs": { + } + }, + "StandardIdentifier": { + "base": null, + "refs": { + "StandardIdentifierList$member": null + } + }, + "StandardIdentifierList": { + "base": null, + "refs": { + "ObjectTypeKey$StandardIdentifiers": "The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys. PROFILE means that this key can be used to tie an object to a PROFILE. UNIQUE means that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles.
" + } + }, + "TagArn": { + "base": null, + "refs": { + "ListTagsForResourceRequest$resourceArn": "The ARN of the resource for which you want to view tags.
", + "TagResourceRequest$resourceArn": "The ARN of the resource that you're adding tags to.
", + "UntagResourceRequest$resourceArn": "The ARN of the resource from which you are removing tags.
" + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "The list of tag keys to remove from the resource.
" + } + }, + "TagMap": { + "base": null, + "refs": { + "CreateDomainRequest$Tags": "The tags used to organize, track, or control access for this resource.
", + "CreateDomainResponse$Tags": "The tags used to organize, track, or control access for this resource.
", + "GetDomainResponse$Tags": "The tags used to organize, track, or control access for this resource.
", + "GetIntegrationResponse$Tags": "The tags used to organize, track, or control access for this resource.
", + "GetProfileObjectTypeResponse$Tags": "The tags used to organize, track, or control access for this resource.
", + "ListDomainItem$Tags": "The tags used to organize, track, or control access for this resource.
", + "ListIntegrationItem$Tags": "The tags used to organize, track, or control access for this resource.
", + "ListProfileObjectTypeItem$Tags": "The tags used to organize, track, or control access for this resource.
", + "ListTagsForResourceResponse$tags": "The tags used to organize, track, or control access for this resource.
", + "PutIntegrationRequest$Tags": "The tags used to organize, track, or control access for this resource.
", + "PutIntegrationResponse$Tags": "The tags used to organize, track, or control access for this resource.
", + "PutProfileObjectTypeRequest$Tags": "The tags used to organize, track, or control access for this resource.
", + "PutProfileObjectTypeResponse$Tags": "The tags used to organize, track, or control access for this resource.
", + "TagResourceRequest$tags": "The tags used to organize, track, or control access for this resource.
", + "UpdateDomainRequest$Tags": "The tags used to organize, track, or control access for this resource.
", + "UpdateDomainResponse$Tags": "The tags used to organize, track, or control access for this resource.
" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, + "ThrottlingException": { + "base": "You exceeded the maximum number of requests.
", + "refs": { + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateAddress": { + "base": "Updates associated with the address properties of a customer profile.
", + "refs": { + "UpdateProfileRequest$Address": "A generic address associated with the customer that is not mailing, shipping, or billing.
", + "UpdateProfileRequest$ShippingAddress": "The customer’s shipping address.
", + "UpdateProfileRequest$MailingAddress": "The customer’s mailing address.
", + "UpdateProfileRequest$BillingAddress": "The customer’s billing address.
" + } + }, + "UpdateAttributes": { + "base": null, + "refs": { + "UpdateProfileRequest$Attributes": "A key value pair of attributes of a customer profile.
" + } + }, + "UpdateDomainRequest": { + "base": null, + "refs": { + } + }, + "UpdateDomainResponse": { + "base": null, + "refs": { + } + }, + "UpdateProfileRequest": { + "base": null, + "refs": { + } + }, + "UpdateProfileResponse": { + "base": null, + "refs": { + } + }, + "boolean": { + "base": null, + "refs": { + "GetProfileObjectTypeResponse$AllowProfileCreation": "Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE
. If the AllowProfileCreation flag is set to FALSE
, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE
, and if no match is found, then the service creates a new standard profile.
Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE
. If the AllowProfileCreation flag is set to FALSE
, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE
, and if no match is found, then the service creates a new standard profile.
Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE
. If the AllowProfileCreation flag is set to FALSE
, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE
, and if no match is found, then the service creates a new standard profile.
Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE
. If the AllowProfileCreation flag is set to FALSE
, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to TRUE
, and if no match is found, then the service creates a new standard profile.
The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
", + "CreateDomainResponse$DefaultEncryptionKey": "The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
", + "GetDomainResponse$DefaultEncryptionKey": "The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
", + "GetProfileObjectTypeResponse$EncryptionKey": "The customer-provided key to encrypt the profile object that will be created in this profile object type.
", + "PutProfileObjectTypeRequest$EncryptionKey": "The customer-provided key to encrypt the profile object that will be created in this profile object type.
", + "PutProfileObjectTypeResponse$EncryptionKey": "The customer-provided key to encrypt the profile object that will be created in this profile object type.
", + "UpdateDomainRequest$DefaultEncryptionKey": "The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. If specified as an empty string, it will clear any existing value.
", + "UpdateDomainResponse$DefaultEncryptionKey": "The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
" + } + }, + "expirationDaysInteger": { + "base": null, + "refs": { + "CreateDomainRequest$DefaultExpirationDays": "The default number of days until the data within the domain expires.
", + "CreateDomainResponse$DefaultExpirationDays": "The default number of days until the data within the domain expires.
", + "GetDomainResponse$DefaultExpirationDays": "The default number of days until the data within the domain expires.
", + "GetProfileObjectTypeResponse$ExpirationDays": "The number of days until the data in the object expires.
", + "PutProfileObjectTypeRequest$ExpirationDays": "The number of days until the data in the object expires.
", + "PutProfileObjectTypeResponse$ExpirationDays": "The number of days until the data in the object expires.
", + "UpdateDomainRequest$DefaultExpirationDays": "The default number of days until the data within the domain expires.
", + "UpdateDomainResponse$DefaultExpirationDays": "The default number of days until the data within the domain expires.
" + } + }, + "long": { + "base": null, + "refs": { + "DomainStats$ProfileCount": "The total number of profiles currently in the domain.
", + "DomainStats$MeteringProfileCount": "The number of profiles that you are currently paying for in the domain. If you have more than 100 objects associated with a single profile, that profile counts as two profiles. If you have more than 200 objects, that profile counts as three, and so on.
", + "DomainStats$ObjectCount": "The total number of objects in domain.
", + "DomainStats$TotalSize": "The total size, in bytes, of all objects in the domain.
" + } + }, + "maxSize100": { + "base": null, + "refs": { + "ListAccountIntegrationsRequest$MaxResults": "The maximum number of objects returned per page.
", + "ListDomainsRequest$MaxResults": "The maximum number of objects returned per page.
", + "ListIntegrationsRequest$MaxResults": "The maximum number of objects returned per page.
", + "ListProfileObjectTypeTemplatesRequest$MaxResults": "The maximum number of objects returned per page.
", + "ListProfileObjectTypesRequest$MaxResults": "The maximum number of objects returned per page.
", + "ListProfileObjectsRequest$MaxResults": "The maximum number of objects returned per page.
", + "SearchProfilesRequest$MaxResults": "The maximum number of objects returned per page.
" + } + }, + "message": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "BadRequestException$Message": null, + "DeleteDomainResponse$Message": "A message that indicates the delete request is done.
", + "DeleteIntegrationResponse$Message": "A message that indicates the delete request is done.
", + "DeleteProfileKeyResponse$Message": "A message that indicates the delete request is done.
", + "DeleteProfileObjectResponse$Message": "A message that indicates the delete request is done.
", + "DeleteProfileObjectTypeResponse$Message": "A message that indicates the delete request is done.
", + "DeleteProfileResponse$Message": "A message that indicates the delete request is done.
", + "InternalServerException$Message": null, + "ResourceNotFoundException$Message": null, + "ThrottlingException$Message": null + } + }, + "requestValueList": { + "base": null, + "refs": { + "AddProfileKeyRequest$Values": "A list of key values.
", + "AddProfileKeyResponse$Values": "A list of key values.
", + "DeleteProfileKeyRequest$Values": "A list of key values.
", + "SearchProfilesRequest$Values": "A list of key values.
" + } + }, + "sqsQueueUrl": { + "base": null, + "refs": { + "CreateDomainRequest$DeadLetterQueueUrl": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.
", + "CreateDomainResponse$DeadLetterQueueUrl": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.
", + "GetDomainResponse$DeadLetterQueueUrl": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.
", + "UpdateDomainRequest$DeadLetterQueueUrl": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. If specified as an empty string, it will clear any existing value. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.
", + "UpdateDomainResponse$DeadLetterQueueUrl": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.
" + } + }, + "string0To1000": { + "base": null, + "refs": { + "UpdateProfileRequest$AdditionalInformation": "Any additional information relevant to the customer's profile.
" + } + }, + "string0To255": { + "base": null, + "refs": { + "UpdateAddress$Address1": "The first line of a customer address.
", + "UpdateAddress$Address2": "The second line of a customer address.
", + "UpdateAddress$Address3": "The third line of a customer address.
", + "UpdateAddress$Address4": "The fourth line of a customer address.
", + "UpdateAddress$City": "The city in which a customer lives.
", + "UpdateAddress$County": "The county in which a customer lives.
", + "UpdateAddress$State": "The state in which a customer lives.
", + "UpdateAddress$Province": "The province in which a customer lives.
", + "UpdateAddress$Country": "The country in which a customer lives.
", + "UpdateAddress$PostalCode": "The postal code of a customer address.
", + "UpdateAttributes$value": null, + "UpdateProfileRequest$AccountNumber": "A unique account number that you have given to the customer.
", + "UpdateProfileRequest$BusinessName": "The name of the customer’s business.
", + "UpdateProfileRequest$FirstName": "The customer’s first name.
", + "UpdateProfileRequest$MiddleName": "The customer’s middle name.
", + "UpdateProfileRequest$LastName": "The customer’s last name.
", + "UpdateProfileRequest$BirthDate": "The customer’s birth date.
", + "UpdateProfileRequest$PhoneNumber": "The customer's phone number, which has not been specified as a mobile, home, or business number.
", + "UpdateProfileRequest$MobilePhoneNumber": "The customer’s mobile phone number.
", + "UpdateProfileRequest$HomePhoneNumber": "The customer’s home phone number.
", + "UpdateProfileRequest$BusinessPhoneNumber": "The customer’s business phone number.
", + "UpdateProfileRequest$EmailAddress": "The customer's email address, which has not been specified as a personal or business address.
", + "UpdateProfileRequest$PersonalEmailAddress": "The customer’s personal email address.
", + "UpdateProfileRequest$BusinessEmailAddress": "The customer’s business email address.
" + } + }, + "string1To1000": { + "base": null, + "refs": { + "CreateProfileRequest$AdditionalInformation": "Any additional information relevant to the customer's profile.
", + "Profile$AdditionalInformation": "Any additional information relevant to the customer's profile.
" + } + }, + "string1To255": { + "base": null, + "refs": { + "Address$Address1": "The first line of a customer address.
", + "Address$Address2": "The second line of a customer address.
", + "Address$Address3": "The third line of a customer address.
", + "Address$Address4": "The fourth line of a customer address.
", + "Address$City": "The city in which a customer lives.
", + "Address$County": "The county in which a customer lives.
", + "Address$State": "The state in which a customer lives.
", + "Address$Province": "The province in which a customer lives.
", + "Address$Country": "The country in which a customer lives.
", + "Address$PostalCode": "The postal code of a customer address.
", + "Attributes$key": null, + "Attributes$value": null, + "CreateProfileRequest$AccountNumber": "A unique account number that you have given to the customer.
", + "CreateProfileRequest$BusinessName": "The name of the customer’s business.
", + "CreateProfileRequest$FirstName": "The customer’s first name.
", + "CreateProfileRequest$MiddleName": "The customer’s middle name.
", + "CreateProfileRequest$LastName": "The customer’s last name.
", + "CreateProfileRequest$BirthDate": "The customer’s birth date.
", + "CreateProfileRequest$PhoneNumber": "The customer's phone number, which has not been specified as a mobile, home, or business number.
", + "CreateProfileRequest$MobilePhoneNumber": "The customer’s mobile phone number.
", + "CreateProfileRequest$HomePhoneNumber": "The customer’s home phone number.
", + "CreateProfileRequest$BusinessPhoneNumber": "The customer’s business phone number.
", + "CreateProfileRequest$EmailAddress": "The customer's email address, which has not been specified as a personal or business address.
", + "CreateProfileRequest$PersonalEmailAddress": "The customer’s personal email address.
", + "CreateProfileRequest$BusinessEmailAddress": "The customer’s business email address.
", + "DeleteIntegrationRequest$Uri": "The URI of the S3 bucket or any other type of data source.
", + "DeleteProfileObjectRequest$ProfileObjectUniqueKey": "The unique identifier of the profile object generated by the service.
", + "GetIntegrationRequest$Uri": "The URI of the S3 bucket or any other type of data source.
", + "GetIntegrationResponse$Uri": "The URI of the S3 bucket or any other type of data source.
", + "ListAccountIntegrationsRequest$Uri": "The URI of the S3 bucket or any other type of data source.
", + "ListIntegrationItem$Uri": "The URI of the S3 bucket or any other type of data source.
", + "ListProfileObjectsItem$ProfileObjectUniqueKey": "The unique identifier of the ProfileObject generated by the service.
", + "Profile$AccountNumber": "A unique account number that you have given to the customer.
", + "Profile$BusinessName": "The name of the customer’s business.
", + "Profile$FirstName": "The customer’s first name.
", + "Profile$MiddleName": "The customer’s middle name.
", + "Profile$LastName": "The customer’s last name.
", + "Profile$BirthDate": "The customer’s birth date.
", + "Profile$PhoneNumber": "The customer's phone number, which has not been specified as a mobile, home, or business number.
", + "Profile$MobilePhoneNumber": "The customer’s mobile phone number.
", + "Profile$HomePhoneNumber": "The customer’s home phone number.
", + "Profile$BusinessPhoneNumber": "The customer’s home phone number.
", + "Profile$EmailAddress": "The customer's email address, which has not been specified as a personal or business address.
", + "Profile$PersonalEmailAddress": "The customer’s personal email address.
", + "Profile$BusinessEmailAddress": "The customer’s business email address.
", + "PutIntegrationRequest$Uri": "The URI of the S3 bucket or any other type of data source.
", + "PutIntegrationResponse$Uri": "The URI of the S3 bucket or any other type of data source.
", + "PutProfileObjectResponse$ProfileObjectUniqueKey": "The unique identifier of the profile object generated by the service.
", + "UpdateAttributes$key": null, + "requestValueList$member": null + } + }, + "stringifiedJson": { + "base": null, + "refs": { + "ListProfileObjectsItem$Object": "A JSON representation of a ProfileObject that belongs to a profile.
", + "PutProfileObjectRequest$Object": "A string that is serialized from a JSON object.
" + } + }, + "text": { + "base": null, + "refs": { + "GetProfileObjectTypeResponse$Description": "The description of the profile object type.
", + "ListProfileObjectTypeItem$Description": "Description of the profile object type.
", + "ObjectTypeField$Source": "A field of a ProfileObject. For example: _source.FirstName, where “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.
", + "ObjectTypeField$Target": "The location of the data in the standard ProfileObject model. For example: _profile.Address.PostalCode.
", + "PutProfileObjectTypeRequest$Description": "Description of the profile object type.
", + "PutProfileObjectTypeResponse$Description": "Description of the profile object type.
" + } + }, + "timestamp": { + "base": null, + "refs": { + "CreateDomainResponse$CreatedAt": "The timestamp of when the domain was created.
", + "CreateDomainResponse$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "GetDomainResponse$CreatedAt": "The timestamp of when the domain was created.
", + "GetDomainResponse$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "GetIntegrationResponse$CreatedAt": "The timestamp of when the domain was created.
", + "GetIntegrationResponse$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "GetProfileObjectTypeResponse$CreatedAt": "The timestamp of when the domain was created.
", + "GetProfileObjectTypeResponse$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "ListDomainItem$CreatedAt": "The timestamp of when the domain was created.
", + "ListDomainItem$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "ListIntegrationItem$CreatedAt": "The timestamp of when the domain was created.
", + "ListIntegrationItem$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "ListProfileObjectTypeItem$CreatedAt": "The timestamp of when the domain was created.
", + "ListProfileObjectTypeItem$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "PutIntegrationResponse$CreatedAt": "The timestamp of when the domain was created.
", + "PutIntegrationResponse$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "PutProfileObjectTypeResponse$CreatedAt": "The timestamp of when the domain was created.
", + "PutProfileObjectTypeResponse$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
", + "UpdateDomainResponse$CreatedAt": "The timestamp of when the domain was created.
", + "UpdateDomainResponse$LastUpdatedAt": "The timestamp of when the domain was most recently edited.
" + } + }, + "token": { + "base": null, + "refs": { + "ListAccountIntegrationsRequest$NextToken": "The pagination token from the previous ListAccountIntegrations API call.
", + "ListAccountIntegrationsResponse$NextToken": "The pagination token from the previous ListAccountIntegrations API call.
", + "ListDomainsRequest$NextToken": "The pagination token from the previous ListDomain API call.
", + "ListDomainsResponse$NextToken": "The pagination token from the previous ListDomains API call.
", + "ListIntegrationsRequest$NextToken": "The pagination token from the previous ListIntegrations API call.
", + "ListIntegrationsResponse$NextToken": "The pagination token from the previous ListIntegrations API call.
", + "ListProfileObjectTypeTemplatesRequest$NextToken": "The pagination token from the previous ListObjectTypeTemplates API call.
", + "ListProfileObjectTypeTemplatesResponse$NextToken": "The pagination token from the previous ListObjectTypeTemplates API call.
", + "ListProfileObjectTypesRequest$NextToken": "Identifies the next page of results to return.
", + "ListProfileObjectTypesResponse$NextToken": "Identifies the next page of results to return.
", + "ListProfileObjectsRequest$NextToken": "The pagination token from the previous call to ListProfileObjects.
", + "ListProfileObjectsResponse$NextToken": "The pagination token from the previous call to ListProfileObjects.
", + "SearchProfilesRequest$NextToken": "The pagination token from the previous SearchProfiles API call.
", + "SearchProfilesResponse$NextToken": "The pagination token from the previous SearchProfiles API call.
" + } + }, + "typeName": { + "base": null, + "refs": { + "DeleteProfileObjectRequest$ObjectTypeName": "The name of the profile object type.
", + "DeleteProfileObjectTypeRequest$ObjectTypeName": "The name of the profile object type.
", + "GetIntegrationResponse$ObjectTypeName": "The name of the profile object type.
", + "GetProfileObjectTypeRequest$ObjectTypeName": "The name of the profile object type.
", + "GetProfileObjectTypeResponse$ObjectTypeName": "The name of the profile object type.
", + "ListIntegrationItem$ObjectTypeName": "The name of the profile object type.
", + "ListProfileObjectTypeItem$ObjectTypeName": "The name of the profile object type.
", + "ListProfileObjectsItem$ObjectTypeName": "Specifies the kind of object being added to a profile, such as \"Salesforce-Account.\"
", + "ListProfileObjectsRequest$ObjectTypeName": "The name of the profile object type.
", + "PutIntegrationRequest$ObjectTypeName": "The name of the profile object type.
", + "PutIntegrationResponse$ObjectTypeName": "The name of the profile object type.
", + "PutProfileObjectRequest$ObjectTypeName": "The name of the profile object type.
", + "PutProfileObjectTypeRequest$ObjectTypeName": "The name of the profile object type.
", + "PutProfileObjectTypeResponse$ObjectTypeName": "The name of the profile object type.
" + } + }, + "uuid": { + "base": null, + "refs": { + "AddProfileKeyRequest$ProfileId": "The unique identifier of a customer profile.
", + "CreateProfileResponse$ProfileId": "The unique identifier of a customer profile.
", + "DeleteProfileKeyRequest$ProfileId": "The unique identifier of a customer profile.
", + "DeleteProfileObjectRequest$ProfileId": "The unique identifier of a customer profile.
", + "DeleteProfileRequest$ProfileId": "The unique identifier of a customer profile.
", + "ListProfileObjectsRequest$ProfileId": "The unique identifier of a customer profile.
", + "Profile$ProfileId": "The unique identifier of a customer profile.
", + "UpdateProfileRequest$ProfileId": "The unique identifier of a customer profile.
", + "UpdateProfileResponse$ProfileId": "The unique identifier of a customer profile.
" + } + } + } +} diff --git a/models/apis/customer-profiles/2020-08-15/examples-1.json b/models/apis/customer-profiles/2020-08-15/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/customer-profiles/2020-08-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/customer-profiles/2020-08-15/paginators-1.json b/models/apis/customer-profiles/2020-08-15/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/customer-profiles/2020-08-15/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 5fe79a810aa..4ba430e4674 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -570,6 +570,17 @@ "us-west-2" : { } } }, + "app-integrations" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, "appflow" : { "endpoints" : { "ap-northeast-1" : { }, diff --git a/service/customerprofiles/api.go b/service/customerprofiles/api.go new file mode 100644 index 00000000000..700668bb9a6 --- /dev/null +++ b/service/customerprofiles/api.go @@ -0,0 +1,7518 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package customerprofiles + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opAddProfileKey = "AddProfileKey" + +// AddProfileKeyRequest generates a "aws/request.Request" representing the +// client's request for the AddProfileKey operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See AddProfileKey for more information on using the AddProfileKey +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the AddProfileKeyRequest method. +// req, resp := client.AddProfileKeyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AddProfileKey +func (c *CustomerProfiles) AddProfileKeyRequest(input *AddProfileKeyInput) (req *request.Request, output *AddProfileKeyOutput) { + op := &request.Operation{ + Name: opAddProfileKey, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/profiles/keys", + } + + if input == nil { + input = &AddProfileKeyInput{} + } + + output = &AddProfileKeyOutput{} + req = c.newRequest(op, input, output) + return +} + +// AddProfileKey API operation for Amazon Connect Customer Profiles. +// +// Associates a new key value with a specific profile, such as a Contact Trace +// Record (CTR) ContactId. +// +// A profile object can have a single unique key and any number of additional +// keys that can be used to identify the profile that it belongs to. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation AddProfileKey for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AddProfileKey +func (c *CustomerProfiles) AddProfileKey(input *AddProfileKeyInput) (*AddProfileKeyOutput, error) { + req, out := c.AddProfileKeyRequest(input) + return out, req.Send() +} + +// AddProfileKeyWithContext is the same as AddProfileKey with the addition of +// the ability to pass a context and additional request options. +// +// See AddProfileKey for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) AddProfileKeyWithContext(ctx aws.Context, input *AddProfileKeyInput, opts ...request.Option) (*AddProfileKeyOutput, error) { + req, out := c.AddProfileKeyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateDomain = "CreateDomain" + +// CreateDomainRequest generates a "aws/request.Request" representing the +// client's request for the CreateDomain operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateDomain for more information on using the CreateDomain +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateDomainRequest method. +// req, resp := client.CreateDomainRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateDomain +func (c *CustomerProfiles) CreateDomainRequest(input *CreateDomainInput) (req *request.Request, output *CreateDomainOutput) { + op := &request.Operation{ + Name: opCreateDomain, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}", + } + + if input == nil { + input = &CreateDomainInput{} + } + + output = &CreateDomainOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateDomain API operation for Amazon Connect Customer Profiles. +// +// Creates a domain, which is a container for all customer data, such as customer +// profile attributes, object types, profile keys, and encryption keys. You +// can create multiple domains, and each domain can have multiple third-party +// integrations. +// +// Each Amazon Connect instance can be associated with only one domain. Multiple +// Amazon Connect instances can be associated with one domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation CreateDomain for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateDomain +func (c *CustomerProfiles) CreateDomain(input *CreateDomainInput) (*CreateDomainOutput, error) { + req, out := c.CreateDomainRequest(input) + return out, req.Send() +} + +// CreateDomainWithContext is the same as CreateDomain with the addition of +// the ability to pass a context and additional request options. +// +// See CreateDomain for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) CreateDomainWithContext(ctx aws.Context, input *CreateDomainInput, opts ...request.Option) (*CreateDomainOutput, error) { + req, out := c.CreateDomainRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateProfile = "CreateProfile" + +// CreateProfileRequest generates a "aws/request.Request" representing the +// client's request for the CreateProfile operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateProfile for more information on using the CreateProfile +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateProfileRequest method. +// req, resp := client.CreateProfileRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateProfile +func (c *CustomerProfiles) CreateProfileRequest(input *CreateProfileInput) (req *request.Request, output *CreateProfileOutput) { + op := &request.Operation{ + Name: opCreateProfile, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/profiles", + } + + if input == nil { + input = &CreateProfileInput{} + } + + output = &CreateProfileOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateProfile API operation for Amazon Connect Customer Profiles. +// +// Creates a standard profile. +// +// A standard profile represents the following attributes for a customer profile +// in a domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation CreateProfile for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/CreateProfile +func (c *CustomerProfiles) CreateProfile(input *CreateProfileInput) (*CreateProfileOutput, error) { + req, out := c.CreateProfileRequest(input) + return out, req.Send() +} + +// CreateProfileWithContext is the same as CreateProfile with the addition of +// the ability to pass a context and additional request options. +// +// See CreateProfile for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) CreateProfileWithContext(ctx aws.Context, input *CreateProfileInput, opts ...request.Option) (*CreateProfileOutput, error) { + req, out := c.CreateProfileRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteDomain = "DeleteDomain" + +// DeleteDomainRequest generates a "aws/request.Request" representing the +// client's request for the DeleteDomain operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteDomain for more information on using the DeleteDomain +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteDomainRequest method. +// req, resp := client.DeleteDomainRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteDomain +func (c *CustomerProfiles) DeleteDomainRequest(input *DeleteDomainInput) (req *request.Request, output *DeleteDomainOutput) { + op := &request.Operation{ + Name: opDeleteDomain, + HTTPMethod: "DELETE", + HTTPPath: "/domains/{DomainName}", + } + + if input == nil { + input = &DeleteDomainInput{} + } + + output = &DeleteDomainOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteDomain API operation for Amazon Connect Customer Profiles. +// +// Deletes a specific domain and all of its customer data, such as customer +// profile attributes and their related objects. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation DeleteDomain for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteDomain +func (c *CustomerProfiles) DeleteDomain(input *DeleteDomainInput) (*DeleteDomainOutput, error) { + req, out := c.DeleteDomainRequest(input) + return out, req.Send() +} + +// DeleteDomainWithContext is the same as DeleteDomain with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteDomain for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) DeleteDomainWithContext(ctx aws.Context, input *DeleteDomainInput, opts ...request.Option) (*DeleteDomainOutput, error) { + req, out := c.DeleteDomainRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteIntegration = "DeleteIntegration" + +// DeleteIntegrationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteIntegration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteIntegration for more information on using the DeleteIntegration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteIntegrationRequest method. +// req, resp := client.DeleteIntegrationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteIntegration +func (c *CustomerProfiles) DeleteIntegrationRequest(input *DeleteIntegrationInput) (req *request.Request, output *DeleteIntegrationOutput) { + op := &request.Operation{ + Name: opDeleteIntegration, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/integrations/delete", + } + + if input == nil { + input = &DeleteIntegrationInput{} + } + + output = &DeleteIntegrationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteIntegration API operation for Amazon Connect Customer Profiles. +// +// Removes an integration from a specific domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation DeleteIntegration for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteIntegration +func (c *CustomerProfiles) DeleteIntegration(input *DeleteIntegrationInput) (*DeleteIntegrationOutput, error) { + req, out := c.DeleteIntegrationRequest(input) + return out, req.Send() +} + +// DeleteIntegrationWithContext is the same as DeleteIntegration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteIntegration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) DeleteIntegrationWithContext(ctx aws.Context, input *DeleteIntegrationInput, opts ...request.Option) (*DeleteIntegrationOutput, error) { + req, out := c.DeleteIntegrationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteProfile = "DeleteProfile" + +// DeleteProfileRequest generates a "aws/request.Request" representing the +// client's request for the DeleteProfile operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteProfile for more information on using the DeleteProfile +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteProfileRequest method. +// req, resp := client.DeleteProfileRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfile +func (c *CustomerProfiles) DeleteProfileRequest(input *DeleteProfileInput) (req *request.Request, output *DeleteProfileOutput) { + op := &request.Operation{ + Name: opDeleteProfile, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/profiles/delete", + } + + if input == nil { + input = &DeleteProfileInput{} + } + + output = &DeleteProfileOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteProfile API operation for Amazon Connect Customer Profiles. +// +// Deletes the standard customer profile and all data pertaining to the profile. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation DeleteProfile for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfile +func (c *CustomerProfiles) DeleteProfile(input *DeleteProfileInput) (*DeleteProfileOutput, error) { + req, out := c.DeleteProfileRequest(input) + return out, req.Send() +} + +// DeleteProfileWithContext is the same as DeleteProfile with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteProfile for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) DeleteProfileWithContext(ctx aws.Context, input *DeleteProfileInput, opts ...request.Option) (*DeleteProfileOutput, error) { + req, out := c.DeleteProfileRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteProfileKey = "DeleteProfileKey" + +// DeleteProfileKeyRequest generates a "aws/request.Request" representing the +// client's request for the DeleteProfileKey operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteProfileKey for more information on using the DeleteProfileKey +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteProfileKeyRequest method. +// req, resp := client.DeleteProfileKeyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileKey +func (c *CustomerProfiles) DeleteProfileKeyRequest(input *DeleteProfileKeyInput) (req *request.Request, output *DeleteProfileKeyOutput) { + op := &request.Operation{ + Name: opDeleteProfileKey, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/profiles/keys/delete", + } + + if input == nil { + input = &DeleteProfileKeyInput{} + } + + output = &DeleteProfileKeyOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteProfileKey API operation for Amazon Connect Customer Profiles. +// +// Removes a searchable key from a customer profile. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation DeleteProfileKey for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileKey +func (c *CustomerProfiles) DeleteProfileKey(input *DeleteProfileKeyInput) (*DeleteProfileKeyOutput, error) { + req, out := c.DeleteProfileKeyRequest(input) + return out, req.Send() +} + +// DeleteProfileKeyWithContext is the same as DeleteProfileKey with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteProfileKey for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) DeleteProfileKeyWithContext(ctx aws.Context, input *DeleteProfileKeyInput, opts ...request.Option) (*DeleteProfileKeyOutput, error) { + req, out := c.DeleteProfileKeyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteProfileObject = "DeleteProfileObject" + +// DeleteProfileObjectRequest generates a "aws/request.Request" representing the +// client's request for the DeleteProfileObject operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteProfileObject for more information on using the DeleteProfileObject +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteProfileObjectRequest method. +// req, resp := client.DeleteProfileObjectRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObject +func (c *CustomerProfiles) DeleteProfileObjectRequest(input *DeleteProfileObjectInput) (req *request.Request, output *DeleteProfileObjectOutput) { + op := &request.Operation{ + Name: opDeleteProfileObject, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/profiles/objects/delete", + } + + if input == nil { + input = &DeleteProfileObjectInput{} + } + + output = &DeleteProfileObjectOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteProfileObject API operation for Amazon Connect Customer Profiles. +// +// Removes an object associated with a profile of a given ProfileObjectType. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation DeleteProfileObject for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObject +func (c *CustomerProfiles) DeleteProfileObject(input *DeleteProfileObjectInput) (*DeleteProfileObjectOutput, error) { + req, out := c.DeleteProfileObjectRequest(input) + return out, req.Send() +} + +// DeleteProfileObjectWithContext is the same as DeleteProfileObject with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteProfileObject for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) DeleteProfileObjectWithContext(ctx aws.Context, input *DeleteProfileObjectInput, opts ...request.Option) (*DeleteProfileObjectOutput, error) { + req, out := c.DeleteProfileObjectRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteProfileObjectType = "DeleteProfileObjectType" + +// DeleteProfileObjectTypeRequest generates a "aws/request.Request" representing the +// client's request for the DeleteProfileObjectType operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteProfileObjectType for more information on using the DeleteProfileObjectType +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteProfileObjectTypeRequest method. +// req, resp := client.DeleteProfileObjectTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObjectType +func (c *CustomerProfiles) DeleteProfileObjectTypeRequest(input *DeleteProfileObjectTypeInput) (req *request.Request, output *DeleteProfileObjectTypeOutput) { + op := &request.Operation{ + Name: opDeleteProfileObjectType, + HTTPMethod: "DELETE", + HTTPPath: "/domains/{DomainName}/object-types/{ObjectTypeName}", + } + + if input == nil { + input = &DeleteProfileObjectTypeInput{} + } + + output = &DeleteProfileObjectTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteProfileObjectType API operation for Amazon Connect Customer Profiles. +// +// Removes a ProfileObjectType from a specific domain as well as removes all +// the ProfileObjects of that type. It also disables integrations from this +// specific ProfileObjectType. In addition, it scrubs all of the fields of the +// standard profile that were populated from this ProfileObjectType. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation DeleteProfileObjectType for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DeleteProfileObjectType +func (c *CustomerProfiles) DeleteProfileObjectType(input *DeleteProfileObjectTypeInput) (*DeleteProfileObjectTypeOutput, error) { + req, out := c.DeleteProfileObjectTypeRequest(input) + return out, req.Send() +} + +// DeleteProfileObjectTypeWithContext is the same as DeleteProfileObjectType with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteProfileObjectType for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) DeleteProfileObjectTypeWithContext(ctx aws.Context, input *DeleteProfileObjectTypeInput, opts ...request.Option) (*DeleteProfileObjectTypeOutput, error) { + req, out := c.DeleteProfileObjectTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetDomain = "GetDomain" + +// GetDomainRequest generates a "aws/request.Request" representing the +// client's request for the GetDomain operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetDomain for more information on using the GetDomain +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetDomainRequest method. +// req, resp := client.GetDomainRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetDomain +func (c *CustomerProfiles) GetDomainRequest(input *GetDomainInput) (req *request.Request, output *GetDomainOutput) { + op := &request.Operation{ + Name: opGetDomain, + HTTPMethod: "GET", + HTTPPath: "/domains/{DomainName}", + } + + if input == nil { + input = &GetDomainInput{} + } + + output = &GetDomainOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetDomain API operation for Amazon Connect Customer Profiles. +// +// Returns information about a specific domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation GetDomain for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetDomain +func (c *CustomerProfiles) GetDomain(input *GetDomainInput) (*GetDomainOutput, error) { + req, out := c.GetDomainRequest(input) + return out, req.Send() +} + +// GetDomainWithContext is the same as GetDomain with the addition of +// the ability to pass a context and additional request options. +// +// See GetDomain for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) GetDomainWithContext(ctx aws.Context, input *GetDomainInput, opts ...request.Option) (*GetDomainOutput, error) { + req, out := c.GetDomainRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetIntegration = "GetIntegration" + +// GetIntegrationRequest generates a "aws/request.Request" representing the +// client's request for the GetIntegration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetIntegration for more information on using the GetIntegration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetIntegrationRequest method. +// req, resp := client.GetIntegrationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetIntegration +func (c *CustomerProfiles) GetIntegrationRequest(input *GetIntegrationInput) (req *request.Request, output *GetIntegrationOutput) { + op := &request.Operation{ + Name: opGetIntegration, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/integrations", + } + + if input == nil { + input = &GetIntegrationInput{} + } + + output = &GetIntegrationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetIntegration API operation for Amazon Connect Customer Profiles. +// +// Returns an integration for a domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation GetIntegration for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetIntegration +func (c *CustomerProfiles) GetIntegration(input *GetIntegrationInput) (*GetIntegrationOutput, error) { + req, out := c.GetIntegrationRequest(input) + return out, req.Send() +} + +// GetIntegrationWithContext is the same as GetIntegration with the addition of +// the ability to pass a context and additional request options. +// +// See GetIntegration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) GetIntegrationWithContext(ctx aws.Context, input *GetIntegrationInput, opts ...request.Option) (*GetIntegrationOutput, error) { + req, out := c.GetIntegrationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetProfileObjectType = "GetProfileObjectType" + +// GetProfileObjectTypeRequest generates a "aws/request.Request" representing the +// client's request for the GetProfileObjectType operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetProfileObjectType for more information on using the GetProfileObjectType +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetProfileObjectTypeRequest method. +// req, resp := client.GetProfileObjectTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectType +func (c *CustomerProfiles) GetProfileObjectTypeRequest(input *GetProfileObjectTypeInput) (req *request.Request, output *GetProfileObjectTypeOutput) { + op := &request.Operation{ + Name: opGetProfileObjectType, + HTTPMethod: "GET", + HTTPPath: "/domains/{DomainName}/object-types/{ObjectTypeName}", + } + + if input == nil { + input = &GetProfileObjectTypeInput{} + } + + output = &GetProfileObjectTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetProfileObjectType API operation for Amazon Connect Customer Profiles. +// +// Returns the object types for a specific domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation GetProfileObjectType for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectType +func (c *CustomerProfiles) GetProfileObjectType(input *GetProfileObjectTypeInput) (*GetProfileObjectTypeOutput, error) { + req, out := c.GetProfileObjectTypeRequest(input) + return out, req.Send() +} + +// GetProfileObjectTypeWithContext is the same as GetProfileObjectType with the addition of +// the ability to pass a context and additional request options. +// +// See GetProfileObjectType for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) GetProfileObjectTypeWithContext(ctx aws.Context, input *GetProfileObjectTypeInput, opts ...request.Option) (*GetProfileObjectTypeOutput, error) { + req, out := c.GetProfileObjectTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetProfileObjectTypeTemplate = "GetProfileObjectTypeTemplate" + +// GetProfileObjectTypeTemplateRequest generates a "aws/request.Request" representing the +// client's request for the GetProfileObjectTypeTemplate operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetProfileObjectTypeTemplate for more information on using the GetProfileObjectTypeTemplate +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetProfileObjectTypeTemplateRequest method. +// req, resp := client.GetProfileObjectTypeTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectTypeTemplate +func (c *CustomerProfiles) GetProfileObjectTypeTemplateRequest(input *GetProfileObjectTypeTemplateInput) (req *request.Request, output *GetProfileObjectTypeTemplateOutput) { + op := &request.Operation{ + Name: opGetProfileObjectTypeTemplate, + HTTPMethod: "GET", + HTTPPath: "/templates/{TemplateId}", + } + + if input == nil { + input = &GetProfileObjectTypeTemplateInput{} + } + + output = &GetProfileObjectTypeTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetProfileObjectTypeTemplate API operation for Amazon Connect Customer Profiles. +// +// Returns the template information for a specific object type. +// +// A template is a predefined ProfileObjectType, such as “Salesforce-Account” +// or “Salesforce-Contact.” When a user sends a ProfileObject, using the +// PutProfileObject API, with an ObjectTypeName that matches one of the TemplateIds, +// it uses the mappings from the template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation GetProfileObjectTypeTemplate for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetProfileObjectTypeTemplate +func (c *CustomerProfiles) GetProfileObjectTypeTemplate(input *GetProfileObjectTypeTemplateInput) (*GetProfileObjectTypeTemplateOutput, error) { + req, out := c.GetProfileObjectTypeTemplateRequest(input) + return out, req.Send() +} + +// GetProfileObjectTypeTemplateWithContext is the same as GetProfileObjectTypeTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See GetProfileObjectTypeTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) GetProfileObjectTypeTemplateWithContext(ctx aws.Context, input *GetProfileObjectTypeTemplateInput, opts ...request.Option) (*GetProfileObjectTypeTemplateOutput, error) { + req, out := c.GetProfileObjectTypeTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListAccountIntegrations = "ListAccountIntegrations" + +// ListAccountIntegrationsRequest generates a "aws/request.Request" representing the +// client's request for the ListAccountIntegrations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListAccountIntegrations for more information on using the ListAccountIntegrations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListAccountIntegrationsRequest method. +// req, resp := client.ListAccountIntegrationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListAccountIntegrations +func (c *CustomerProfiles) ListAccountIntegrationsRequest(input *ListAccountIntegrationsInput) (req *request.Request, output *ListAccountIntegrationsOutput) { + op := &request.Operation{ + Name: opListAccountIntegrations, + HTTPMethod: "POST", + HTTPPath: "/integrations", + } + + if input == nil { + input = &ListAccountIntegrationsInput{} + } + + output = &ListAccountIntegrationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAccountIntegrations API operation for Amazon Connect Customer Profiles. +// +// Lists all of the integrations associated to a specific URI in the AWS account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation ListAccountIntegrations for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListAccountIntegrations +func (c *CustomerProfiles) ListAccountIntegrations(input *ListAccountIntegrationsInput) (*ListAccountIntegrationsOutput, error) { + req, out := c.ListAccountIntegrationsRequest(input) + return out, req.Send() +} + +// ListAccountIntegrationsWithContext is the same as ListAccountIntegrations with the addition of +// the ability to pass a context and additional request options. +// +// See ListAccountIntegrations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) ListAccountIntegrationsWithContext(ctx aws.Context, input *ListAccountIntegrationsInput, opts ...request.Option) (*ListAccountIntegrationsOutput, error) { + req, out := c.ListAccountIntegrationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListDomains = "ListDomains" + +// ListDomainsRequest generates a "aws/request.Request" representing the +// client's request for the ListDomains operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListDomains for more information on using the ListDomains +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListDomainsRequest method. +// req, resp := client.ListDomainsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListDomains +func (c *CustomerProfiles) ListDomainsRequest(input *ListDomainsInput) (req *request.Request, output *ListDomainsOutput) { + op := &request.Operation{ + Name: opListDomains, + HTTPMethod: "GET", + HTTPPath: "/domains", + } + + if input == nil { + input = &ListDomainsInput{} + } + + output = &ListDomainsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDomains API operation for Amazon Connect Customer Profiles. +// +// Returns a list of all the domains for an AWS account that have been created. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation ListDomains for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListDomains +func (c *CustomerProfiles) ListDomains(input *ListDomainsInput) (*ListDomainsOutput, error) { + req, out := c.ListDomainsRequest(input) + return out, req.Send() +} + +// ListDomainsWithContext is the same as ListDomains with the addition of +// the ability to pass a context and additional request options. +// +// See ListDomains for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) ListDomainsWithContext(ctx aws.Context, input *ListDomainsInput, opts ...request.Option) (*ListDomainsOutput, error) { + req, out := c.ListDomainsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListIntegrations = "ListIntegrations" + +// ListIntegrationsRequest generates a "aws/request.Request" representing the +// client's request for the ListIntegrations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListIntegrations for more information on using the ListIntegrations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListIntegrationsRequest method. +// req, resp := client.ListIntegrationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListIntegrations +func (c *CustomerProfiles) ListIntegrationsRequest(input *ListIntegrationsInput) (req *request.Request, output *ListIntegrationsOutput) { + op := &request.Operation{ + Name: opListIntegrations, + HTTPMethod: "GET", + HTTPPath: "/domains/{DomainName}/integrations", + } + + if input == nil { + input = &ListIntegrationsInput{} + } + + output = &ListIntegrationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListIntegrations API operation for Amazon Connect Customer Profiles. +// +// Lists all of the integrations in your domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation ListIntegrations for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListIntegrations +func (c *CustomerProfiles) ListIntegrations(input *ListIntegrationsInput) (*ListIntegrationsOutput, error) { + req, out := c.ListIntegrationsRequest(input) + return out, req.Send() +} + +// ListIntegrationsWithContext is the same as ListIntegrations with the addition of +// the ability to pass a context and additional request options. +// +// See ListIntegrations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) ListIntegrationsWithContext(ctx aws.Context, input *ListIntegrationsInput, opts ...request.Option) (*ListIntegrationsOutput, error) { + req, out := c.ListIntegrationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListProfileObjectTypeTemplates = "ListProfileObjectTypeTemplates" + +// ListProfileObjectTypeTemplatesRequest generates a "aws/request.Request" representing the +// client's request for the ListProfileObjectTypeTemplates operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListProfileObjectTypeTemplates for more information on using the ListProfileObjectTypeTemplates +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListProfileObjectTypeTemplatesRequest method. +// req, resp := client.ListProfileObjectTypeTemplatesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypeTemplates +func (c *CustomerProfiles) ListProfileObjectTypeTemplatesRequest(input *ListProfileObjectTypeTemplatesInput) (req *request.Request, output *ListProfileObjectTypeTemplatesOutput) { + op := &request.Operation{ + Name: opListProfileObjectTypeTemplates, + HTTPMethod: "GET", + HTTPPath: "/templates", + } + + if input == nil { + input = &ListProfileObjectTypeTemplatesInput{} + } + + output = &ListProfileObjectTypeTemplatesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListProfileObjectTypeTemplates API operation for Amazon Connect Customer Profiles. +// +// Lists all of the template information for object types. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation ListProfileObjectTypeTemplates for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypeTemplates +func (c *CustomerProfiles) ListProfileObjectTypeTemplates(input *ListProfileObjectTypeTemplatesInput) (*ListProfileObjectTypeTemplatesOutput, error) { + req, out := c.ListProfileObjectTypeTemplatesRequest(input) + return out, req.Send() +} + +// ListProfileObjectTypeTemplatesWithContext is the same as ListProfileObjectTypeTemplates with the addition of +// the ability to pass a context and additional request options. +// +// See ListProfileObjectTypeTemplates for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) ListProfileObjectTypeTemplatesWithContext(ctx aws.Context, input *ListProfileObjectTypeTemplatesInput, opts ...request.Option) (*ListProfileObjectTypeTemplatesOutput, error) { + req, out := c.ListProfileObjectTypeTemplatesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListProfileObjectTypes = "ListProfileObjectTypes" + +// ListProfileObjectTypesRequest generates a "aws/request.Request" representing the +// client's request for the ListProfileObjectTypes operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListProfileObjectTypes for more information on using the ListProfileObjectTypes +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListProfileObjectTypesRequest method. +// req, resp := client.ListProfileObjectTypesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypes +func (c *CustomerProfiles) ListProfileObjectTypesRequest(input *ListProfileObjectTypesInput) (req *request.Request, output *ListProfileObjectTypesOutput) { + op := &request.Operation{ + Name: opListProfileObjectTypes, + HTTPMethod: "GET", + HTTPPath: "/domains/{DomainName}/object-types", + } + + if input == nil { + input = &ListProfileObjectTypesInput{} + } + + output = &ListProfileObjectTypesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListProfileObjectTypes API operation for Amazon Connect Customer Profiles. +// +// Lists all of the templates available within the service. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation ListProfileObjectTypes for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjectTypes +func (c *CustomerProfiles) ListProfileObjectTypes(input *ListProfileObjectTypesInput) (*ListProfileObjectTypesOutput, error) { + req, out := c.ListProfileObjectTypesRequest(input) + return out, req.Send() +} + +// ListProfileObjectTypesWithContext is the same as ListProfileObjectTypes with the addition of +// the ability to pass a context and additional request options. +// +// See ListProfileObjectTypes for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) ListProfileObjectTypesWithContext(ctx aws.Context, input *ListProfileObjectTypesInput, opts ...request.Option) (*ListProfileObjectTypesOutput, error) { + req, out := c.ListProfileObjectTypesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListProfileObjects = "ListProfileObjects" + +// ListProfileObjectsRequest generates a "aws/request.Request" representing the +// client's request for the ListProfileObjects operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListProfileObjects for more information on using the ListProfileObjects +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListProfileObjectsRequest method. +// req, resp := client.ListProfileObjectsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjects +func (c *CustomerProfiles) ListProfileObjectsRequest(input *ListProfileObjectsInput) (req *request.Request, output *ListProfileObjectsOutput) { + op := &request.Operation{ + Name: opListProfileObjects, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/profiles/objects", + } + + if input == nil { + input = &ListProfileObjectsInput{} + } + + output = &ListProfileObjectsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListProfileObjects API operation for Amazon Connect Customer Profiles. +// +// Returns a list of objects associated with a profile of a given ProfileObjectType. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation ListProfileObjects for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListProfileObjects +func (c *CustomerProfiles) ListProfileObjects(input *ListProfileObjectsInput) (*ListProfileObjectsOutput, error) { + req, out := c.ListProfileObjectsRequest(input) + return out, req.Send() +} + +// ListProfileObjectsWithContext is the same as ListProfileObjects with the addition of +// the ability to pass a context and additional request options. +// +// See ListProfileObjects for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) ListProfileObjectsWithContext(ctx aws.Context, input *ListProfileObjectsInput, opts ...request.Option) (*ListProfileObjectsOutput, error) { + req, out := c.ListProfileObjectsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListTagsForResource +func (c *CustomerProfiles) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for Amazon Connect Customer Profiles. +// +// Displays the tags associated with an Amazon Connect Customer Profiles resource. +// In Connect Customer Profiles, domains, profile object types, and integrations +// can be tagged. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// An internal service error occurred. +// +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListTagsForResource +func (c *CustomerProfiles) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutIntegration = "PutIntegration" + +// PutIntegrationRequest generates a "aws/request.Request" representing the +// client's request for the PutIntegration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutIntegration for more information on using the PutIntegration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutIntegrationRequest method. +// req, resp := client.PutIntegrationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutIntegration +func (c *CustomerProfiles) PutIntegrationRequest(input *PutIntegrationInput) (req *request.Request, output *PutIntegrationOutput) { + op := &request.Operation{ + Name: opPutIntegration, + HTTPMethod: "PUT", + HTTPPath: "/domains/{DomainName}/integrations", + } + + if input == nil { + input = &PutIntegrationInput{} + } + + output = &PutIntegrationOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutIntegration API operation for Amazon Connect Customer Profiles. +// +// Adds an integration between the service and a third-party service, which +// includes Amazon AppFlow and Amazon Connect. +// +// An integration can belong to only one domain. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation PutIntegration for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutIntegration +func (c *CustomerProfiles) PutIntegration(input *PutIntegrationInput) (*PutIntegrationOutput, error) { + req, out := c.PutIntegrationRequest(input) + return out, req.Send() +} + +// PutIntegrationWithContext is the same as PutIntegration with the addition of +// the ability to pass a context and additional request options. +// +// See PutIntegration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) PutIntegrationWithContext(ctx aws.Context, input *PutIntegrationInput, opts ...request.Option) (*PutIntegrationOutput, error) { + req, out := c.PutIntegrationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutProfileObject = "PutProfileObject" + +// PutProfileObjectRequest generates a "aws/request.Request" representing the +// client's request for the PutProfileObject operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutProfileObject for more information on using the PutProfileObject +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutProfileObjectRequest method. +// req, resp := client.PutProfileObjectRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObject +func (c *CustomerProfiles) PutProfileObjectRequest(input *PutProfileObjectInput) (req *request.Request, output *PutProfileObjectOutput) { + op := &request.Operation{ + Name: opPutProfileObject, + HTTPMethod: "PUT", + HTTPPath: "/domains/{DomainName}/profiles/objects", + } + + if input == nil { + input = &PutProfileObjectInput{} + } + + output = &PutProfileObjectOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutProfileObject API operation for Amazon Connect Customer Profiles. +// +// Adds additional objects to customer profiles of a given ObjectType. +// +// When adding a specific profile object, like a Contact Trace Record (CTR), +// an inferred profile can get created if it is not mapped to an existing profile. +// The resulting profile will only have a phone number populated in the standard +// ProfileObject. Any additional CTRs with the same phone number will be mapped +// to the same inferred profile. +// +// When a ProfileObject is created and if a ProfileObjectType already exists +// for the ProfileObject, it will provide data to a standard profile depending +// on the ProfileObjectType definition. +// +// PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation PutProfileObject for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObject +func (c *CustomerProfiles) PutProfileObject(input *PutProfileObjectInput) (*PutProfileObjectOutput, error) { + req, out := c.PutProfileObjectRequest(input) + return out, req.Send() +} + +// PutProfileObjectWithContext is the same as PutProfileObject with the addition of +// the ability to pass a context and additional request options. +// +// See PutProfileObject for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) PutProfileObjectWithContext(ctx aws.Context, input *PutProfileObjectInput, opts ...request.Option) (*PutProfileObjectOutput, error) { + req, out := c.PutProfileObjectRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutProfileObjectType = "PutProfileObjectType" + +// PutProfileObjectTypeRequest generates a "aws/request.Request" representing the +// client's request for the PutProfileObjectType operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutProfileObjectType for more information on using the PutProfileObjectType +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutProfileObjectTypeRequest method. +// req, resp := client.PutProfileObjectTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObjectType +func (c *CustomerProfiles) PutProfileObjectTypeRequest(input *PutProfileObjectTypeInput) (req *request.Request, output *PutProfileObjectTypeOutput) { + op := &request.Operation{ + Name: opPutProfileObjectType, + HTTPMethod: "PUT", + HTTPPath: "/domains/{DomainName}/object-types/{ObjectTypeName}", + } + + if input == nil { + input = &PutProfileObjectTypeInput{} + } + + output = &PutProfileObjectTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutProfileObjectType API operation for Amazon Connect Customer Profiles. +// +// Defines a ProfileObjectType. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation PutProfileObjectType for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/PutProfileObjectType +func (c *CustomerProfiles) PutProfileObjectType(input *PutProfileObjectTypeInput) (*PutProfileObjectTypeOutput, error) { + req, out := c.PutProfileObjectTypeRequest(input) + return out, req.Send() +} + +// PutProfileObjectTypeWithContext is the same as PutProfileObjectType with the addition of +// the ability to pass a context and additional request options. +// +// See PutProfileObjectType for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) PutProfileObjectTypeWithContext(ctx aws.Context, input *PutProfileObjectTypeInput, opts ...request.Option) (*PutProfileObjectTypeOutput, error) { + req, out := c.PutProfileObjectTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSearchProfiles = "SearchProfiles" + +// SearchProfilesRequest generates a "aws/request.Request" representing the +// client's request for the SearchProfiles operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See SearchProfiles for more information on using the SearchProfiles +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the SearchProfilesRequest method. +// req, resp := client.SearchProfilesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/SearchProfiles +func (c *CustomerProfiles) SearchProfilesRequest(input *SearchProfilesInput) (req *request.Request, output *SearchProfilesOutput) { + op := &request.Operation{ + Name: opSearchProfiles, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/profiles/search", + } + + if input == nil { + input = &SearchProfilesInput{} + } + + output = &SearchProfilesOutput{} + req = c.newRequest(op, input, output) + return +} + +// SearchProfiles API operation for Amazon Connect Customer Profiles. +// +// Searches for profiles within a specific domain name using name, phone number, +// email address, account number, or a custom defined index. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation SearchProfiles for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/SearchProfiles +func (c *CustomerProfiles) SearchProfiles(input *SearchProfilesInput) (*SearchProfilesOutput, error) { + req, out := c.SearchProfilesRequest(input) + return out, req.Send() +} + +// SearchProfilesWithContext is the same as SearchProfiles with the addition of +// the ability to pass a context and additional request options. +// +// See SearchProfiles for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) SearchProfilesWithContext(ctx aws.Context, input *SearchProfilesInput, opts ...request.Option) (*SearchProfilesOutput, error) { + req, out := c.SearchProfilesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/TagResource +func (c *CustomerProfiles) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for Amazon Connect Customer Profiles. +// +// Assigns one or more tags (key-value pairs) to the specified Amazon Connect +// Customer Profiles resource. Tags can help you organize and categorize your +// resources. You can also use them to scope user permissions by granting a +// user permission to access or change only resources with certain tag values. +// In Connect Customer Profiles, domains, profile object types, and integrations +// can be tagged. +// +// Tags don't have any semantic meaning to AWS and are interpreted strictly +// as strings of characters. +// +// You can use the TagResource action with a resource that already has tags. +// If you specify a new tag key, this tag is appended to the list of tags associated +// with the resource. If you specify a tag key that is already associated with +// the resource, the new tag value that you specify replaces the previous value +// for that tag. +// +// You can associate as many as 50 tags with a resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// An internal service error occurred. +// +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/TagResource +func (c *CustomerProfiles) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UntagResource for more information on using the UntagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UntagResource +func (c *CustomerProfiles) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for Amazon Connect Customer Profiles. +// +// Removes one or more tags from the specified Amazon Connect Customer Profiles +// resource. In Connect Customer Profiles, domains, profile object types, and +// integrations can be tagged. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// An internal service error occurred. +// +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UntagResource +func (c *CustomerProfiles) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateDomain = "UpdateDomain" + +// UpdateDomainRequest generates a "aws/request.Request" representing the +// client's request for the UpdateDomain operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateDomain for more information on using the UpdateDomain +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateDomainRequest method. +// req, resp := client.UpdateDomainRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateDomain +func (c *CustomerProfiles) UpdateDomainRequest(input *UpdateDomainInput) (req *request.Request, output *UpdateDomainOutput) { + op := &request.Operation{ + Name: opUpdateDomain, + HTTPMethod: "PUT", + HTTPPath: "/domains/{DomainName}", + } + + if input == nil { + input = &UpdateDomainInput{} + } + + output = &UpdateDomainOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateDomain API operation for Amazon Connect Customer Profiles. +// +// Updates the properties of a domain, including creating or selecting a dead +// letter queue or an encryption key. +// +// Once a domain is created, the name can’t be changed. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation UpdateDomain for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateDomain +func (c *CustomerProfiles) UpdateDomain(input *UpdateDomainInput) (*UpdateDomainOutput, error) { + req, out := c.UpdateDomainRequest(input) + return out, req.Send() +} + +// UpdateDomainWithContext is the same as UpdateDomain with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateDomain for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) UpdateDomainWithContext(ctx aws.Context, input *UpdateDomainInput, opts ...request.Option) (*UpdateDomainOutput, error) { + req, out := c.UpdateDomainRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateProfile = "UpdateProfile" + +// UpdateProfileRequest generates a "aws/request.Request" representing the +// client's request for the UpdateProfile operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateProfile for more information on using the UpdateProfile +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateProfileRequest method. +// req, resp := client.UpdateProfileRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateProfile +func (c *CustomerProfiles) UpdateProfileRequest(input *UpdateProfileInput) (req *request.Request, output *UpdateProfileOutput) { + op := &request.Operation{ + Name: opUpdateProfile, + HTTPMethod: "PUT", + HTTPPath: "/domains/{DomainName}/profiles", + } + + if input == nil { + input = &UpdateProfileInput{} + } + + output = &UpdateProfileOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateProfile API operation for Amazon Connect Customer Profiles. +// +// Updates the properties of a profile. The ProfileId is required for updating +// a customer profile. +// +// When calling the UpdateProfile API, specifying an empty string value means +// that any existing value will be removed. Not specifying a string value means +// that any value already there will be kept. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Connect Customer Profiles's +// API operation UpdateProfile for usage and error information. +// +// Returned Error Types: +// * BadRequestException +// The input you provided is invalid. +// +// * AccessDeniedException +// You do not have sufficient access to perform this action. +// +// * ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// * ThrottlingException +// You exceeded the maximum number of requests. +// +// * InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/UpdateProfile +func (c *CustomerProfiles) UpdateProfile(input *UpdateProfileInput) (*UpdateProfileOutput, error) { + req, out := c.UpdateProfileRequest(input) + return out, req.Send() +} + +// UpdateProfileWithContext is the same as UpdateProfile with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateProfile for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CustomerProfiles) UpdateProfileWithContext(ctx aws.Context, input *UpdateProfileInput, opts ...request.Option) (*UpdateProfileOutput, error) { + req, out := c.UpdateProfileRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +type AddProfileKeyInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // A searchable identifier of a customer profile. + // + // KeyName is a required field + KeyName *string `min:"1" type:"string" required:"true"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` + + // A list of key values. + // + // Values is a required field + Values []*string `type:"list" required:"true"` +} + +// String returns the string representation +func (s AddProfileKeyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddProfileKeyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddProfileKeyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddProfileKeyInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.KeyName == nil { + invalidParams.Add(request.NewErrParamRequired("KeyName")) + } + if s.KeyName != nil && len(*s.KeyName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyName", 1)) + } + if s.ProfileId == nil { + invalidParams.Add(request.NewErrParamRequired("ProfileId")) + } + if s.Values == nil { + invalidParams.Add(request.NewErrParamRequired("Values")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *AddProfileKeyInput) SetDomainName(v string) *AddProfileKeyInput { + s.DomainName = &v + return s +} + +// SetKeyName sets the KeyName field's value. +func (s *AddProfileKeyInput) SetKeyName(v string) *AddProfileKeyInput { + s.KeyName = &v + return s +} + +// SetProfileId sets the ProfileId field's value. +func (s *AddProfileKeyInput) SetProfileId(v string) *AddProfileKeyInput { + s.ProfileId = &v + return s +} + +// SetValues sets the Values field's value. +func (s *AddProfileKeyInput) SetValues(v []*string) *AddProfileKeyInput { + s.Values = v + return s +} + +type AddProfileKeyOutput struct { + _ struct{} `type:"structure"` + + // A searchable identifier of a customer profile. + KeyName *string `min:"1" type:"string"` + + // A list of key values. + Values []*string `type:"list"` +} + +// String returns the string representation +func (s AddProfileKeyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddProfileKeyOutput) GoString() string { + return s.String() +} + +// SetKeyName sets the KeyName field's value. +func (s *AddProfileKeyOutput) SetKeyName(v string) *AddProfileKeyOutput { + s.KeyName = &v + return s +} + +// SetValues sets the Values field's value. +func (s *AddProfileKeyOutput) SetValues(v []*string) *AddProfileKeyOutput { + s.Values = v + return s +} + +// A generic address associated with the customer that is not mailing, shipping, +// or billing. +type Address struct { + _ struct{} `type:"structure"` + + // The first line of a customer address. + Address1 *string `min:"1" type:"string"` + + // The second line of a customer address. + Address2 *string `min:"1" type:"string"` + + // The third line of a customer address. + Address3 *string `min:"1" type:"string"` + + // The fourth line of a customer address. + Address4 *string `min:"1" type:"string"` + + // The city in which a customer lives. + City *string `min:"1" type:"string"` + + // The country in which a customer lives. + Country *string `min:"1" type:"string"` + + // The county in which a customer lives. + County *string `min:"1" type:"string"` + + // The postal code of a customer address. + PostalCode *string `min:"1" type:"string"` + + // The province in which a customer lives. + Province *string `min:"1" type:"string"` + + // The state in which a customer lives. + State *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Address) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Address) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Address) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Address"} + if s.Address1 != nil && len(*s.Address1) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Address1", 1)) + } + if s.Address2 != nil && len(*s.Address2) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Address2", 1)) + } + if s.Address3 != nil && len(*s.Address3) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Address3", 1)) + } + if s.Address4 != nil && len(*s.Address4) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Address4", 1)) + } + if s.City != nil && len(*s.City) < 1 { + invalidParams.Add(request.NewErrParamMinLen("City", 1)) + } + if s.Country != nil && len(*s.Country) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Country", 1)) + } + if s.County != nil && len(*s.County) < 1 { + invalidParams.Add(request.NewErrParamMinLen("County", 1)) + } + if s.PostalCode != nil && len(*s.PostalCode) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PostalCode", 1)) + } + if s.Province != nil && len(*s.Province) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Province", 1)) + } + if s.State != nil && len(*s.State) < 1 { + invalidParams.Add(request.NewErrParamMinLen("State", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAddress1 sets the Address1 field's value. +func (s *Address) SetAddress1(v string) *Address { + s.Address1 = &v + return s +} + +// SetAddress2 sets the Address2 field's value. +func (s *Address) SetAddress2(v string) *Address { + s.Address2 = &v + return s +} + +// SetAddress3 sets the Address3 field's value. +func (s *Address) SetAddress3(v string) *Address { + s.Address3 = &v + return s +} + +// SetAddress4 sets the Address4 field's value. +func (s *Address) SetAddress4(v string) *Address { + s.Address4 = &v + return s +} + +// SetCity sets the City field's value. +func (s *Address) SetCity(v string) *Address { + s.City = &v + return s +} + +// SetCountry sets the Country field's value. +func (s *Address) SetCountry(v string) *Address { + s.Country = &v + return s +} + +// SetCounty sets the County field's value. +func (s *Address) SetCounty(v string) *Address { + s.County = &v + return s +} + +// SetPostalCode sets the PostalCode field's value. +func (s *Address) SetPostalCode(v string) *Address { + s.PostalCode = &v + return s +} + +// SetProvince sets the Province field's value. +func (s *Address) SetProvince(v string) *Address { + s.Province = &v + return s +} + +// SetState sets the State field's value. +func (s *Address) SetState(v string) *Address { + s.State = &v + return s +} + +// The input you provided is invalid. +type BadRequestException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s BadRequestException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BadRequestException) GoString() string { + return s.String() +} + +func newErrorBadRequestException(v protocol.ResponseMetadata) error { + return &BadRequestException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *BadRequestException) Code() string { + return "BadRequestException" +} + +// Message returns the exception's message. +func (s *BadRequestException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *BadRequestException) OrigErr() error { + return nil +} + +func (s *BadRequestException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *BadRequestException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *BadRequestException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CreateDomainInput struct { + _ struct{} `type:"structure"` + + // The URL of the SQS dead letter queue, which is used for reporting errors + // associated with ingesting data from third party applications. You must set + // up a policy on the DeadLetterQueue for the SendMessage operation to enable + // Amazon Connect Customer Profiles to send messages to the DeadLetterQueue. + DeadLetterQueueUrl *string `type:"string"` + + // The default encryption key, which is an AWS managed key, is used when no + // specific type of encryption key is specified. It is used to encrypt all data + // before it is placed in permanent or semi-permanent storage. + DefaultEncryptionKey *string `type:"string"` + + // The default number of days until the data within the domain expires. + // + // DefaultExpirationDays is a required field + DefaultExpirationDays *int64 `min:"1" type:"integer" required:"true"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation +func (s CreateDomainInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateDomainInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDomainInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateDomainInput"} + if s.DefaultExpirationDays == nil { + invalidParams.Add(request.NewErrParamRequired("DefaultExpirationDays")) + } + if s.DefaultExpirationDays != nil && *s.DefaultExpirationDays < 1 { + invalidParams.Add(request.NewErrParamMinValue("DefaultExpirationDays", 1)) + } + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value. +func (s *CreateDomainInput) SetDeadLetterQueueUrl(v string) *CreateDomainInput { + s.DeadLetterQueueUrl = &v + return s +} + +// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value. +func (s *CreateDomainInput) SetDefaultEncryptionKey(v string) *CreateDomainInput { + s.DefaultEncryptionKey = &v + return s +} + +// SetDefaultExpirationDays sets the DefaultExpirationDays field's value. +func (s *CreateDomainInput) SetDefaultExpirationDays(v int64) *CreateDomainInput { + s.DefaultExpirationDays = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *CreateDomainInput) SetDomainName(v string) *CreateDomainInput { + s.DomainName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateDomainInput) SetTags(v map[string]*string) *CreateDomainInput { + s.Tags = v + return s +} + +type CreateDomainOutput struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // The URL of the SQS dead letter queue, which is used for reporting errors + // associated with ingesting data from third party applications. + DeadLetterQueueUrl *string `type:"string"` + + // The default encryption key, which is an AWS managed key, is used when no + // specific type of encryption key is specified. It is used to encrypt all data + // before it is placed in permanent or semi-permanent storage. + DefaultEncryptionKey *string `type:"string"` + + // The default number of days until the data within the domain expires. + // + // DefaultExpirationDays is a required field + DefaultExpirationDays *int64 `min:"1" type:"integer" required:"true"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + // + // LastUpdatedAt is a required field + LastUpdatedAt *time.Time `type:"timestamp" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation +func (s CreateDomainOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateDomainOutput) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *CreateDomainOutput) SetCreatedAt(v time.Time) *CreateDomainOutput { + s.CreatedAt = &v + return s +} + +// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value. +func (s *CreateDomainOutput) SetDeadLetterQueueUrl(v string) *CreateDomainOutput { + s.DeadLetterQueueUrl = &v + return s +} + +// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value. +func (s *CreateDomainOutput) SetDefaultEncryptionKey(v string) *CreateDomainOutput { + s.DefaultEncryptionKey = &v + return s +} + +// SetDefaultExpirationDays sets the DefaultExpirationDays field's value. +func (s *CreateDomainOutput) SetDefaultExpirationDays(v int64) *CreateDomainOutput { + s.DefaultExpirationDays = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *CreateDomainOutput) SetDomainName(v string) *CreateDomainOutput { + s.DomainName = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *CreateDomainOutput) SetLastUpdatedAt(v time.Time) *CreateDomainOutput { + s.LastUpdatedAt = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateDomainOutput) SetTags(v map[string]*string) *CreateDomainOutput { + s.Tags = v + return s +} + +type CreateProfileInput struct { + _ struct{} `type:"structure"` + + // A unique account number that you have given to the customer. + AccountNumber *string `min:"1" type:"string"` + + // Any additional information relevant to the customer's profile. + AdditionalInformation *string `min:"1" type:"string"` + + // A generic address associated with the customer that is not mailing, shipping, + // or billing. + Address *Address `type:"structure"` + + // A key value pair of attributes of a customer profile. + Attributes map[string]*string `type:"map"` + + // The customer’s billing address. + BillingAddress *Address `type:"structure"` + + // The customer’s birth date. + BirthDate *string `min:"1" type:"string"` + + // The customer’s business email address. + BusinessEmailAddress *string `min:"1" type:"string"` + + // The name of the customer’s business. + BusinessName *string `min:"1" type:"string"` + + // The customer’s business phone number. + BusinessPhoneNumber *string `min:"1" type:"string"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The customer's email address, which has not been specified as a personal + // or business address. + EmailAddress *string `min:"1" type:"string"` + + // The customer’s first name. + FirstName *string `min:"1" type:"string"` + + // The gender with which the customer identifies. + Gender *string `type:"string" enum:"Gender"` + + // The customer’s home phone number. + HomePhoneNumber *string `min:"1" type:"string"` + + // The customer’s last name. + LastName *string `min:"1" type:"string"` + + // The customer’s mailing address. + MailingAddress *Address `type:"structure"` + + // The customer’s middle name. + MiddleName *string `min:"1" type:"string"` + + // The customer’s mobile phone number. + MobilePhoneNumber *string `min:"1" type:"string"` + + // The type of profile used to describe the customer. + PartyType *string `type:"string" enum:"PartyType"` + + // The customer’s personal email address. + PersonalEmailAddress *string `min:"1" type:"string"` + + // The customer's phone number, which has not been specified as a mobile, home, + // or business number. + PhoneNumber *string `min:"1" type:"string"` + + // The customer’s shipping address. + ShippingAddress *Address `type:"structure"` +} + +// String returns the string representation +func (s CreateProfileInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateProfileInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProfileInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateProfileInput"} + if s.AccountNumber != nil && len(*s.AccountNumber) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountNumber", 1)) + } + if s.AdditionalInformation != nil && len(*s.AdditionalInformation) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AdditionalInformation", 1)) + } + if s.BirthDate != nil && len(*s.BirthDate) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BirthDate", 1)) + } + if s.BusinessEmailAddress != nil && len(*s.BusinessEmailAddress) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BusinessEmailAddress", 1)) + } + if s.BusinessName != nil && len(*s.BusinessName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BusinessName", 1)) + } + if s.BusinessPhoneNumber != nil && len(*s.BusinessPhoneNumber) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BusinessPhoneNumber", 1)) + } + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.EmailAddress != nil && len(*s.EmailAddress) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1)) + } + if s.FirstName != nil && len(*s.FirstName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FirstName", 1)) + } + if s.HomePhoneNumber != nil && len(*s.HomePhoneNumber) < 1 { + invalidParams.Add(request.NewErrParamMinLen("HomePhoneNumber", 1)) + } + if s.LastName != nil && len(*s.LastName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LastName", 1)) + } + if s.MiddleName != nil && len(*s.MiddleName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MiddleName", 1)) + } + if s.MobilePhoneNumber != nil && len(*s.MobilePhoneNumber) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MobilePhoneNumber", 1)) + } + if s.PersonalEmailAddress != nil && len(*s.PersonalEmailAddress) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PersonalEmailAddress", 1)) + } + if s.PhoneNumber != nil && len(*s.PhoneNumber) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PhoneNumber", 1)) + } + if s.Address != nil { + if err := s.Address.Validate(); err != nil { + invalidParams.AddNested("Address", err.(request.ErrInvalidParams)) + } + } + if s.BillingAddress != nil { + if err := s.BillingAddress.Validate(); err != nil { + invalidParams.AddNested("BillingAddress", err.(request.ErrInvalidParams)) + } + } + if s.MailingAddress != nil { + if err := s.MailingAddress.Validate(); err != nil { + invalidParams.AddNested("MailingAddress", err.(request.ErrInvalidParams)) + } + } + if s.ShippingAddress != nil { + if err := s.ShippingAddress.Validate(); err != nil { + invalidParams.AddNested("ShippingAddress", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountNumber sets the AccountNumber field's value. +func (s *CreateProfileInput) SetAccountNumber(v string) *CreateProfileInput { + s.AccountNumber = &v + return s +} + +// SetAdditionalInformation sets the AdditionalInformation field's value. +func (s *CreateProfileInput) SetAdditionalInformation(v string) *CreateProfileInput { + s.AdditionalInformation = &v + return s +} + +// SetAddress sets the Address field's value. +func (s *CreateProfileInput) SetAddress(v *Address) *CreateProfileInput { + s.Address = v + return s +} + +// SetAttributes sets the Attributes field's value. +func (s *CreateProfileInput) SetAttributes(v map[string]*string) *CreateProfileInput { + s.Attributes = v + return s +} + +// SetBillingAddress sets the BillingAddress field's value. +func (s *CreateProfileInput) SetBillingAddress(v *Address) *CreateProfileInput { + s.BillingAddress = v + return s +} + +// SetBirthDate sets the BirthDate field's value. +func (s *CreateProfileInput) SetBirthDate(v string) *CreateProfileInput { + s.BirthDate = &v + return s +} + +// SetBusinessEmailAddress sets the BusinessEmailAddress field's value. +func (s *CreateProfileInput) SetBusinessEmailAddress(v string) *CreateProfileInput { + s.BusinessEmailAddress = &v + return s +} + +// SetBusinessName sets the BusinessName field's value. +func (s *CreateProfileInput) SetBusinessName(v string) *CreateProfileInput { + s.BusinessName = &v + return s +} + +// SetBusinessPhoneNumber sets the BusinessPhoneNumber field's value. +func (s *CreateProfileInput) SetBusinessPhoneNumber(v string) *CreateProfileInput { + s.BusinessPhoneNumber = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *CreateProfileInput) SetDomainName(v string) *CreateProfileInput { + s.DomainName = &v + return s +} + +// SetEmailAddress sets the EmailAddress field's value. +func (s *CreateProfileInput) SetEmailAddress(v string) *CreateProfileInput { + s.EmailAddress = &v + return s +} + +// SetFirstName sets the FirstName field's value. +func (s *CreateProfileInput) SetFirstName(v string) *CreateProfileInput { + s.FirstName = &v + return s +} + +// SetGender sets the Gender field's value. +func (s *CreateProfileInput) SetGender(v string) *CreateProfileInput { + s.Gender = &v + return s +} + +// SetHomePhoneNumber sets the HomePhoneNumber field's value. +func (s *CreateProfileInput) SetHomePhoneNumber(v string) *CreateProfileInput { + s.HomePhoneNumber = &v + return s +} + +// SetLastName sets the LastName field's value. +func (s *CreateProfileInput) SetLastName(v string) *CreateProfileInput { + s.LastName = &v + return s +} + +// SetMailingAddress sets the MailingAddress field's value. +func (s *CreateProfileInput) SetMailingAddress(v *Address) *CreateProfileInput { + s.MailingAddress = v + return s +} + +// SetMiddleName sets the MiddleName field's value. +func (s *CreateProfileInput) SetMiddleName(v string) *CreateProfileInput { + s.MiddleName = &v + return s +} + +// SetMobilePhoneNumber sets the MobilePhoneNumber field's value. +func (s *CreateProfileInput) SetMobilePhoneNumber(v string) *CreateProfileInput { + s.MobilePhoneNumber = &v + return s +} + +// SetPartyType sets the PartyType field's value. +func (s *CreateProfileInput) SetPartyType(v string) *CreateProfileInput { + s.PartyType = &v + return s +} + +// SetPersonalEmailAddress sets the PersonalEmailAddress field's value. +func (s *CreateProfileInput) SetPersonalEmailAddress(v string) *CreateProfileInput { + s.PersonalEmailAddress = &v + return s +} + +// SetPhoneNumber sets the PhoneNumber field's value. +func (s *CreateProfileInput) SetPhoneNumber(v string) *CreateProfileInput { + s.PhoneNumber = &v + return s +} + +// SetShippingAddress sets the ShippingAddress field's value. +func (s *CreateProfileInput) SetShippingAddress(v *Address) *CreateProfileInput { + s.ShippingAddress = v + return s +} + +type CreateProfileOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateProfileOutput) GoString() string { + return s.String() +} + +// SetProfileId sets the ProfileId field's value. +func (s *CreateProfileOutput) SetProfileId(v string) *CreateProfileOutput { + s.ProfileId = &v + return s +} + +type DeleteDomainInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDomainInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteDomainInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDomainInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteDomainInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *DeleteDomainInput) SetDomainName(v string) *DeleteDomainInput { + s.DomainName = &v + return s +} + +type DeleteDomainOutput struct { + _ struct{} `type:"structure"` + + // A message that indicates the delete request is done. + // + // Message is a required field + Message *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDomainOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteDomainOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *DeleteDomainOutput) SetMessage(v string) *DeleteDomainOutput { + s.Message = &v + return s +} + +type DeleteIntegrationInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The URI of the S3 bucket or any other type of data source. + Uri *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DeleteIntegrationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteIntegrationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteIntegrationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteIntegrationInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.Uri != nil && len(*s.Uri) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Uri", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *DeleteIntegrationInput) SetDomainName(v string) *DeleteIntegrationInput { + s.DomainName = &v + return s +} + +// SetUri sets the Uri field's value. +func (s *DeleteIntegrationInput) SetUri(v string) *DeleteIntegrationInput { + s.Uri = &v + return s +} + +type DeleteIntegrationOutput struct { + _ struct{} `type:"structure"` + + // A message that indicates the delete request is done. + // + // Message is a required field + Message *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteIntegrationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteIntegrationOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *DeleteIntegrationOutput) SetMessage(v string) *DeleteIntegrationOutput { + s.Message = &v + return s +} + +type DeleteProfileInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProfileInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProfileInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteProfileInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.ProfileId == nil { + invalidParams.Add(request.NewErrParamRequired("ProfileId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *DeleteProfileInput) SetDomainName(v string) *DeleteProfileInput { + s.DomainName = &v + return s +} + +// SetProfileId sets the ProfileId field's value. +func (s *DeleteProfileInput) SetProfileId(v string) *DeleteProfileInput { + s.ProfileId = &v + return s +} + +type DeleteProfileKeyInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // A searchable identifier of a customer profile. + // + // KeyName is a required field + KeyName *string `min:"1" type:"string" required:"true"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` + + // A list of key values. + // + // Values is a required field + Values []*string `type:"list" required:"true"` +} + +// String returns the string representation +func (s DeleteProfileKeyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileKeyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProfileKeyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteProfileKeyInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.KeyName == nil { + invalidParams.Add(request.NewErrParamRequired("KeyName")) + } + if s.KeyName != nil && len(*s.KeyName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyName", 1)) + } + if s.ProfileId == nil { + invalidParams.Add(request.NewErrParamRequired("ProfileId")) + } + if s.Values == nil { + invalidParams.Add(request.NewErrParamRequired("Values")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *DeleteProfileKeyInput) SetDomainName(v string) *DeleteProfileKeyInput { + s.DomainName = &v + return s +} + +// SetKeyName sets the KeyName field's value. +func (s *DeleteProfileKeyInput) SetKeyName(v string) *DeleteProfileKeyInput { + s.KeyName = &v + return s +} + +// SetProfileId sets the ProfileId field's value. +func (s *DeleteProfileKeyInput) SetProfileId(v string) *DeleteProfileKeyInput { + s.ProfileId = &v + return s +} + +// SetValues sets the Values field's value. +func (s *DeleteProfileKeyInput) SetValues(v []*string) *DeleteProfileKeyInput { + s.Values = v + return s +} + +type DeleteProfileKeyOutput struct { + _ struct{} `type:"structure"` + + // A message that indicates the delete request is done. + Message *string `type:"string"` +} + +// String returns the string representation +func (s DeleteProfileKeyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileKeyOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *DeleteProfileKeyOutput) SetMessage(v string) *DeleteProfileKeyOutput { + s.Message = &v + return s +} + +type DeleteProfileObjectInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` + + // The unique identifier of the profile object generated by the service. + // + // ProfileObjectUniqueKey is a required field + ProfileObjectUniqueKey *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProfileObjectInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileObjectInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProfileObjectInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteProfileObjectInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.ObjectTypeName == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectTypeName")) + } + if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1)) + } + if s.ProfileId == nil { + invalidParams.Add(request.NewErrParamRequired("ProfileId")) + } + if s.ProfileObjectUniqueKey == nil { + invalidParams.Add(request.NewErrParamRequired("ProfileObjectUniqueKey")) + } + if s.ProfileObjectUniqueKey != nil && len(*s.ProfileObjectUniqueKey) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProfileObjectUniqueKey", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *DeleteProfileObjectInput) SetDomainName(v string) *DeleteProfileObjectInput { + s.DomainName = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *DeleteProfileObjectInput) SetObjectTypeName(v string) *DeleteProfileObjectInput { + s.ObjectTypeName = &v + return s +} + +// SetProfileId sets the ProfileId field's value. +func (s *DeleteProfileObjectInput) SetProfileId(v string) *DeleteProfileObjectInput { + s.ProfileId = &v + return s +} + +// SetProfileObjectUniqueKey sets the ProfileObjectUniqueKey field's value. +func (s *DeleteProfileObjectInput) SetProfileObjectUniqueKey(v string) *DeleteProfileObjectInput { + s.ProfileObjectUniqueKey = &v + return s +} + +type DeleteProfileObjectOutput struct { + _ struct{} `type:"structure"` + + // A message that indicates the delete request is done. + Message *string `type:"string"` +} + +// String returns the string representation +func (s DeleteProfileObjectOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileObjectOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *DeleteProfileObjectOutput) SetMessage(v string) *DeleteProfileObjectOutput { + s.Message = &v + return s +} + +type DeleteProfileObjectTypeInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `location:"uri" locationName:"ObjectTypeName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProfileObjectTypeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileObjectTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProfileObjectTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteProfileObjectTypeInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.ObjectTypeName == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectTypeName")) + } + if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *DeleteProfileObjectTypeInput) SetDomainName(v string) *DeleteProfileObjectTypeInput { + s.DomainName = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *DeleteProfileObjectTypeInput) SetObjectTypeName(v string) *DeleteProfileObjectTypeInput { + s.ObjectTypeName = &v + return s +} + +type DeleteProfileObjectTypeOutput struct { + _ struct{} `type:"structure"` + + // A message that indicates the delete request is done. + // + // Message is a required field + Message *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProfileObjectTypeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileObjectTypeOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *DeleteProfileObjectTypeOutput) SetMessage(v string) *DeleteProfileObjectTypeOutput { + s.Message = &v + return s +} + +type DeleteProfileOutput struct { + _ struct{} `type:"structure"` + + // A message that indicates the delete request is done. + Message *string `type:"string"` +} + +// String returns the string representation +func (s DeleteProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProfileOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *DeleteProfileOutput) SetMessage(v string) *DeleteProfileOutput { + s.Message = &v + return s +} + +// Usage-specific statistics about the domain. +type DomainStats struct { + _ struct{} `type:"structure"` + + // The number of profiles that you are currently paying for in the domain. If + // you have more than 100 objects associated with a single profile, that profile + // counts as two profiles. If you have more than 200 objects, that profile counts + // as three, and so on. + MeteringProfileCount *int64 `type:"long"` + + // The total number of objects in domain. + ObjectCount *int64 `type:"long"` + + // The total number of profiles currently in the domain. + ProfileCount *int64 `type:"long"` + + // The total size, in bytes, of all objects in the domain. + TotalSize *int64 `type:"long"` +} + +// String returns the string representation +func (s DomainStats) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DomainStats) GoString() string { + return s.String() +} + +// SetMeteringProfileCount sets the MeteringProfileCount field's value. +func (s *DomainStats) SetMeteringProfileCount(v int64) *DomainStats { + s.MeteringProfileCount = &v + return s +} + +// SetObjectCount sets the ObjectCount field's value. +func (s *DomainStats) SetObjectCount(v int64) *DomainStats { + s.ObjectCount = &v + return s +} + +// SetProfileCount sets the ProfileCount field's value. +func (s *DomainStats) SetProfileCount(v int64) *DomainStats { + s.ProfileCount = &v + return s +} + +// SetTotalSize sets the TotalSize field's value. +func (s *DomainStats) SetTotalSize(v int64) *DomainStats { + s.TotalSize = &v + return s +} + +type GetDomainInput struct { + _ struct{} `type:"structure"` + + // A unique name for the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetDomainInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDomainInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDomainInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDomainInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *GetDomainInput) SetDomainName(v string) *GetDomainInput { + s.DomainName = &v + return s +} + +type GetDomainOutput struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // The URL of the SQS dead letter queue, which is used for reporting errors + // associated with ingesting data from third party applications. + DeadLetterQueueUrl *string `type:"string"` + + // The default encryption key, which is an AWS managed key, is used when no + // specific type of encryption key is specified. It is used to encrypt all data + // before it is placed in permanent or semi-permanent storage. + DefaultEncryptionKey *string `type:"string"` + + // The default number of days until the data within the domain expires. + DefaultExpirationDays *int64 `min:"1" type:"integer"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + // + // LastUpdatedAt is a required field + LastUpdatedAt *time.Time `type:"timestamp" required:"true"` + + // Usage-specific statistics about the domain. + Stats *DomainStats `type:"structure"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation +func (s GetDomainOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDomainOutput) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetDomainOutput) SetCreatedAt(v time.Time) *GetDomainOutput { + s.CreatedAt = &v + return s +} + +// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value. +func (s *GetDomainOutput) SetDeadLetterQueueUrl(v string) *GetDomainOutput { + s.DeadLetterQueueUrl = &v + return s +} + +// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value. +func (s *GetDomainOutput) SetDefaultEncryptionKey(v string) *GetDomainOutput { + s.DefaultEncryptionKey = &v + return s +} + +// SetDefaultExpirationDays sets the DefaultExpirationDays field's value. +func (s *GetDomainOutput) SetDefaultExpirationDays(v int64) *GetDomainOutput { + s.DefaultExpirationDays = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *GetDomainOutput) SetDomainName(v string) *GetDomainOutput { + s.DomainName = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *GetDomainOutput) SetLastUpdatedAt(v time.Time) *GetDomainOutput { + s.LastUpdatedAt = &v + return s +} + +// SetStats sets the Stats field's value. +func (s *GetDomainOutput) SetStats(v *DomainStats) *GetDomainOutput { + s.Stats = v + return s +} + +// SetTags sets the Tags field's value. +func (s *GetDomainOutput) SetTags(v map[string]*string) *GetDomainOutput { + s.Tags = v + return s +} + +type GetIntegrationInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The URI of the S3 bucket or any other type of data source. + Uri *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetIntegrationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetIntegrationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetIntegrationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetIntegrationInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.Uri != nil && len(*s.Uri) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Uri", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *GetIntegrationInput) SetDomainName(v string) *GetIntegrationInput { + s.DomainName = &v + return s +} + +// SetUri sets the Uri field's value. +func (s *GetIntegrationInput) SetUri(v string) *GetIntegrationInput { + s.Uri = &v + return s +} + +type GetIntegrationOutput struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + // + // LastUpdatedAt is a required field + LastUpdatedAt *time.Time `type:"timestamp" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` + + // The URI of the S3 bucket or any other type of data source. + // + // Uri is a required field + Uri *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetIntegrationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetIntegrationOutput) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetIntegrationOutput) SetCreatedAt(v time.Time) *GetIntegrationOutput { + s.CreatedAt = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *GetIntegrationOutput) SetDomainName(v string) *GetIntegrationOutput { + s.DomainName = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *GetIntegrationOutput) SetLastUpdatedAt(v time.Time) *GetIntegrationOutput { + s.LastUpdatedAt = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *GetIntegrationOutput) SetObjectTypeName(v string) *GetIntegrationOutput { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *GetIntegrationOutput) SetTags(v map[string]*string) *GetIntegrationOutput { + s.Tags = v + return s +} + +// SetUri sets the Uri field's value. +func (s *GetIntegrationOutput) SetUri(v string) *GetIntegrationOutput { + s.Uri = &v + return s +} + +type GetProfileObjectTypeInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `location:"uri" locationName:"ObjectTypeName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetProfileObjectTypeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetProfileObjectTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetProfileObjectTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetProfileObjectTypeInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.ObjectTypeName == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectTypeName")) + } + if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *GetProfileObjectTypeInput) SetDomainName(v string) *GetProfileObjectTypeInput { + s.DomainName = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *GetProfileObjectTypeInput) SetObjectTypeName(v string) *GetProfileObjectTypeInput { + s.ObjectTypeName = &v + return s +} + +type GetProfileObjectTypeOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether a profile should be created when data is received if one + // doesn’t exist for an object of this type. The default is FALSE. If the + // AllowProfileCreation flag is set to FALSE, then the service tries to fetch + // a standard profile and associate this object with the profile. If it is set + // to TRUE, and if no match is found, then the service creates a new standard + // profile. + AllowProfileCreation *bool `type:"boolean"` + + // The timestamp of when the domain was created. + CreatedAt *time.Time `type:"timestamp"` + + // The description of the profile object type. + // + // Description is a required field + Description *string `min:"1" type:"string" required:"true"` + + // The customer-provided key to encrypt the profile object that will be created + // in this profile object type. + EncryptionKey *string `type:"string"` + + // The number of days until the data in the object expires. + ExpirationDays *int64 `min:"1" type:"integer"` + + // A map of the name and ObjectType field. + Fields map[string]*ObjectTypeField `type:"map"` + + // A list of unique keys that can be used to map data to the profile. + Keys map[string][]*ObjectTypeKey `type:"map"` + + // The timestamp of when the domain was most recently edited. + LastUpdatedAt *time.Time `type:"timestamp"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` + + // A unique identifier for the object template. + TemplateId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetProfileObjectTypeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetProfileObjectTypeOutput) GoString() string { + return s.String() +} + +// SetAllowProfileCreation sets the AllowProfileCreation field's value. +func (s *GetProfileObjectTypeOutput) SetAllowProfileCreation(v bool) *GetProfileObjectTypeOutput { + s.AllowProfileCreation = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetProfileObjectTypeOutput) SetCreatedAt(v time.Time) *GetProfileObjectTypeOutput { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *GetProfileObjectTypeOutput) SetDescription(v string) *GetProfileObjectTypeOutput { + s.Description = &v + return s +} + +// SetEncryptionKey sets the EncryptionKey field's value. +func (s *GetProfileObjectTypeOutput) SetEncryptionKey(v string) *GetProfileObjectTypeOutput { + s.EncryptionKey = &v + return s +} + +// SetExpirationDays sets the ExpirationDays field's value. +func (s *GetProfileObjectTypeOutput) SetExpirationDays(v int64) *GetProfileObjectTypeOutput { + s.ExpirationDays = &v + return s +} + +// SetFields sets the Fields field's value. +func (s *GetProfileObjectTypeOutput) SetFields(v map[string]*ObjectTypeField) *GetProfileObjectTypeOutput { + s.Fields = v + return s +} + +// SetKeys sets the Keys field's value. +func (s *GetProfileObjectTypeOutput) SetKeys(v map[string][]*ObjectTypeKey) *GetProfileObjectTypeOutput { + s.Keys = v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *GetProfileObjectTypeOutput) SetLastUpdatedAt(v time.Time) *GetProfileObjectTypeOutput { + s.LastUpdatedAt = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *GetProfileObjectTypeOutput) SetObjectTypeName(v string) *GetProfileObjectTypeOutput { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *GetProfileObjectTypeOutput) SetTags(v map[string]*string) *GetProfileObjectTypeOutput { + s.Tags = v + return s +} + +// SetTemplateId sets the TemplateId field's value. +func (s *GetProfileObjectTypeOutput) SetTemplateId(v string) *GetProfileObjectTypeOutput { + s.TemplateId = &v + return s +} + +type GetProfileObjectTypeTemplateInput struct { + _ struct{} `type:"structure"` + + // A unique identifier for the object template. + // + // TemplateId is a required field + TemplateId *string `location:"uri" locationName:"TemplateId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetProfileObjectTypeTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetProfileObjectTypeTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetProfileObjectTypeTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetProfileObjectTypeTemplateInput"} + if s.TemplateId == nil { + invalidParams.Add(request.NewErrParamRequired("TemplateId")) + } + if s.TemplateId != nil && len(*s.TemplateId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TemplateId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTemplateId sets the TemplateId field's value. +func (s *GetProfileObjectTypeTemplateInput) SetTemplateId(v string) *GetProfileObjectTypeTemplateInput { + s.TemplateId = &v + return s +} + +type GetProfileObjectTypeTemplateOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether a profile should be created when data is received if one + // doesn’t exist for an object of this type. The default is FALSE. If the + // AllowProfileCreation flag is set to FALSE, then the service tries to fetch + // a standard profile and associate this object with the profile. If it is set + // to TRUE, and if no match is found, then the service creates a new standard + // profile. + AllowProfileCreation *bool `type:"boolean"` + + // A map of the name and ObjectType field. + Fields map[string]*ObjectTypeField `type:"map"` + + // A list of unique keys that can be used to map data to the profile. + Keys map[string][]*ObjectTypeKey `type:"map"` + + // The name of the source of the object template. + SourceName *string `min:"1" type:"string"` + + // The source of the object template. + SourceObject *string `min:"1" type:"string"` + + // A unique identifier for the object template. + TemplateId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetProfileObjectTypeTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetProfileObjectTypeTemplateOutput) GoString() string { + return s.String() +} + +// SetAllowProfileCreation sets the AllowProfileCreation field's value. +func (s *GetProfileObjectTypeTemplateOutput) SetAllowProfileCreation(v bool) *GetProfileObjectTypeTemplateOutput { + s.AllowProfileCreation = &v + return s +} + +// SetFields sets the Fields field's value. +func (s *GetProfileObjectTypeTemplateOutput) SetFields(v map[string]*ObjectTypeField) *GetProfileObjectTypeTemplateOutput { + s.Fields = v + return s +} + +// SetKeys sets the Keys field's value. +func (s *GetProfileObjectTypeTemplateOutput) SetKeys(v map[string][]*ObjectTypeKey) *GetProfileObjectTypeTemplateOutput { + s.Keys = v + return s +} + +// SetSourceName sets the SourceName field's value. +func (s *GetProfileObjectTypeTemplateOutput) SetSourceName(v string) *GetProfileObjectTypeTemplateOutput { + s.SourceName = &v + return s +} + +// SetSourceObject sets the SourceObject field's value. +func (s *GetProfileObjectTypeTemplateOutput) SetSourceObject(v string) *GetProfileObjectTypeTemplateOutput { + s.SourceObject = &v + return s +} + +// SetTemplateId sets the TemplateId field's value. +func (s *GetProfileObjectTypeTemplateOutput) SetTemplateId(v string) *GetProfileObjectTypeTemplateOutput { + s.TemplateId = &v + return s +} + +// An internal service error occurred. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListAccountIntegrationsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects returned per page. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // The pagination token from the previous ListAccountIntegrations API call. + NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"` + + // The URI of the S3 bucket or any other type of data source. + // + // Uri is a required field + Uri *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListAccountIntegrationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAccountIntegrationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAccountIntegrationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAccountIntegrationsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Uri == nil { + invalidParams.Add(request.NewErrParamRequired("Uri")) + } + if s.Uri != nil && len(*s.Uri) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Uri", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAccountIntegrationsInput) SetMaxResults(v int64) *ListAccountIntegrationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAccountIntegrationsInput) SetNextToken(v string) *ListAccountIntegrationsInput { + s.NextToken = &v + return s +} + +// SetUri sets the Uri field's value. +func (s *ListAccountIntegrationsInput) SetUri(v string) *ListAccountIntegrationsInput { + s.Uri = &v + return s +} + +type ListAccountIntegrationsOutput struct { + _ struct{} `type:"structure"` + + // The list of ListAccountIntegration instances. + Items []*ListIntegrationItem `type:"list"` + + // The pagination token from the previous ListAccountIntegrations API call. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAccountIntegrationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAccountIntegrationsOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListAccountIntegrationsOutput) SetItems(v []*ListIntegrationItem) *ListAccountIntegrationsOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAccountIntegrationsOutput) SetNextToken(v string) *ListAccountIntegrationsOutput { + s.NextToken = &v + return s +} + +// An object in a list that represents a domain. +type ListDomainItem struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + // + // LastUpdatedAt is a required field + LastUpdatedAt *time.Time `type:"timestamp" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation +func (s ListDomainItem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListDomainItem) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *ListDomainItem) SetCreatedAt(v time.Time) *ListDomainItem { + s.CreatedAt = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *ListDomainItem) SetDomainName(v string) *ListDomainItem { + s.DomainName = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *ListDomainItem) SetLastUpdatedAt(v time.Time) *ListDomainItem { + s.LastUpdatedAt = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ListDomainItem) SetTags(v map[string]*string) *ListDomainItem { + s.Tags = v + return s +} + +type ListDomainsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects returned per page. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // The pagination token from the previous ListDomain API call. + NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDomainsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListDomainsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDomainsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDomainsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListDomainsInput) SetMaxResults(v int64) *ListDomainsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDomainsInput) SetNextToken(v string) *ListDomainsInput { + s.NextToken = &v + return s +} + +type ListDomainsOutput struct { + _ struct{} `type:"structure"` + + // The list of ListDomains instances. + Items []*ListDomainItem `type:"list"` + + // The pagination token from the previous ListDomains API call. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListDomainsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListDomainsOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListDomainsOutput) SetItems(v []*ListDomainItem) *ListDomainsOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDomainsOutput) SetNextToken(v string) *ListDomainsOutput { + s.NextToken = &v + return s +} + +// An integration in list of integrations. +type ListIntegrationItem struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + // + // LastUpdatedAt is a required field + LastUpdatedAt *time.Time `type:"timestamp" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` + + // The URI of the S3 bucket or any other type of data source. + // + // Uri is a required field + Uri *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListIntegrationItem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListIntegrationItem) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *ListIntegrationItem) SetCreatedAt(v time.Time) *ListIntegrationItem { + s.CreatedAt = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *ListIntegrationItem) SetDomainName(v string) *ListIntegrationItem { + s.DomainName = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *ListIntegrationItem) SetLastUpdatedAt(v time.Time) *ListIntegrationItem { + s.LastUpdatedAt = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *ListIntegrationItem) SetObjectTypeName(v string) *ListIntegrationItem { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ListIntegrationItem) SetTags(v map[string]*string) *ListIntegrationItem { + s.Tags = v + return s +} + +// SetUri sets the Uri field's value. +func (s *ListIntegrationItem) SetUri(v string) *ListIntegrationItem { + s.Uri = &v + return s +} + +type ListIntegrationsInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The maximum number of objects returned per page. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // The pagination token from the previous ListIntegrations API call. + NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListIntegrationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListIntegrationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListIntegrationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListIntegrationsInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *ListIntegrationsInput) SetDomainName(v string) *ListIntegrationsInput { + s.DomainName = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListIntegrationsInput) SetMaxResults(v int64) *ListIntegrationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIntegrationsInput) SetNextToken(v string) *ListIntegrationsInput { + s.NextToken = &v + return s +} + +type ListIntegrationsOutput struct { + _ struct{} `type:"structure"` + + // The list of ListIntegrations instances. + Items []*ListIntegrationItem `type:"list"` + + // The pagination token from the previous ListIntegrations API call. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListIntegrationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListIntegrationsOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListIntegrationsOutput) SetItems(v []*ListIntegrationItem) *ListIntegrationsOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIntegrationsOutput) SetNextToken(v string) *ListIntegrationsOutput { + s.NextToken = &v + return s +} + +// A ProfileObjectType instance. +type ListProfileObjectTypeItem struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + CreatedAt *time.Time `type:"timestamp"` + + // Description of the profile object type. + // + // Description is a required field + Description *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + LastUpdatedAt *time.Time `type:"timestamp"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation +func (s ListProfileObjectTypeItem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectTypeItem) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *ListProfileObjectTypeItem) SetCreatedAt(v time.Time) *ListProfileObjectTypeItem { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ListProfileObjectTypeItem) SetDescription(v string) *ListProfileObjectTypeItem { + s.Description = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *ListProfileObjectTypeItem) SetLastUpdatedAt(v time.Time) *ListProfileObjectTypeItem { + s.LastUpdatedAt = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *ListProfileObjectTypeItem) SetObjectTypeName(v string) *ListProfileObjectTypeItem { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ListProfileObjectTypeItem) SetTags(v map[string]*string) *ListProfileObjectTypeItem { + s.Tags = v + return s +} + +// A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates. +type ListProfileObjectTypeTemplateItem struct { + _ struct{} `type:"structure"` + + // The name of the source of the object template. + SourceName *string `min:"1" type:"string"` + + // The source of the object template. + SourceObject *string `min:"1" type:"string"` + + // A unique identifier for the object template. + TemplateId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfileObjectTypeTemplateItem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectTypeTemplateItem) GoString() string { + return s.String() +} + +// SetSourceName sets the SourceName field's value. +func (s *ListProfileObjectTypeTemplateItem) SetSourceName(v string) *ListProfileObjectTypeTemplateItem { + s.SourceName = &v + return s +} + +// SetSourceObject sets the SourceObject field's value. +func (s *ListProfileObjectTypeTemplateItem) SetSourceObject(v string) *ListProfileObjectTypeTemplateItem { + s.SourceObject = &v + return s +} + +// SetTemplateId sets the TemplateId field's value. +func (s *ListProfileObjectTypeTemplateItem) SetTemplateId(v string) *ListProfileObjectTypeTemplateItem { + s.TemplateId = &v + return s +} + +type ListProfileObjectTypeTemplatesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects returned per page. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // The pagination token from the previous ListObjectTypeTemplates API call. + NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfileObjectTypeTemplatesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectTypeTemplatesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProfileObjectTypeTemplatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListProfileObjectTypeTemplatesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListProfileObjectTypeTemplatesInput) SetMaxResults(v int64) *ListProfileObjectTypeTemplatesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListProfileObjectTypeTemplatesInput) SetNextToken(v string) *ListProfileObjectTypeTemplatesInput { + s.NextToken = &v + return s +} + +type ListProfileObjectTypeTemplatesOutput struct { + _ struct{} `type:"structure"` + + // The list of ListProfileObjectType template instances. + Items []*ListProfileObjectTypeTemplateItem `type:"list"` + + // The pagination token from the previous ListObjectTypeTemplates API call. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfileObjectTypeTemplatesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectTypeTemplatesOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListProfileObjectTypeTemplatesOutput) SetItems(v []*ListProfileObjectTypeTemplateItem) *ListProfileObjectTypeTemplatesOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListProfileObjectTypeTemplatesOutput) SetNextToken(v string) *ListProfileObjectTypeTemplatesOutput { + s.NextToken = &v + return s +} + +type ListProfileObjectTypesInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The maximum number of objects returned per page. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // Identifies the next page of results to return. + NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfileObjectTypesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectTypesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProfileObjectTypesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListProfileObjectTypesInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *ListProfileObjectTypesInput) SetDomainName(v string) *ListProfileObjectTypesInput { + s.DomainName = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListProfileObjectTypesInput) SetMaxResults(v int64) *ListProfileObjectTypesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListProfileObjectTypesInput) SetNextToken(v string) *ListProfileObjectTypesInput { + s.NextToken = &v + return s +} + +type ListProfileObjectTypesOutput struct { + _ struct{} `type:"structure"` + + // The list of ListProfileObjectTypes instances. + Items []*ListProfileObjectTypeItem `type:"list"` + + // Identifies the next page of results to return. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfileObjectTypesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectTypesOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListProfileObjectTypesOutput) SetItems(v []*ListProfileObjectTypeItem) *ListProfileObjectTypesOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListProfileObjectTypesOutput) SetNextToken(v string) *ListProfileObjectTypesOutput { + s.NextToken = &v + return s +} + +type ListProfileObjectsInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The maximum number of objects returned per page. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // The pagination token from the previous call to ListProfileObjects. + NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ListProfileObjectsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProfileObjectsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListProfileObjectsInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.ObjectTypeName == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectTypeName")) + } + if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1)) + } + if s.ProfileId == nil { + invalidParams.Add(request.NewErrParamRequired("ProfileId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *ListProfileObjectsInput) SetDomainName(v string) *ListProfileObjectsInput { + s.DomainName = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListProfileObjectsInput) SetMaxResults(v int64) *ListProfileObjectsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListProfileObjectsInput) SetNextToken(v string) *ListProfileObjectsInput { + s.NextToken = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *ListProfileObjectsInput) SetObjectTypeName(v string) *ListProfileObjectsInput { + s.ObjectTypeName = &v + return s +} + +// SetProfileId sets the ProfileId field's value. +func (s *ListProfileObjectsInput) SetProfileId(v string) *ListProfileObjectsInput { + s.ProfileId = &v + return s +} + +// A ProfileObject in a list of ProfileObjects. +type ListProfileObjectsItem struct { + _ struct{} `type:"structure"` + + // A JSON representation of a ProfileObject that belongs to a profile. + Object *string `min:"1" type:"string"` + + // Specifies the kind of object being added to a profile, such as "Salesforce-Account." + ObjectTypeName *string `min:"1" type:"string"` + + // The unique identifier of the ProfileObject generated by the service. + ProfileObjectUniqueKey *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfileObjectsItem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectsItem) GoString() string { + return s.String() +} + +// SetObject sets the Object field's value. +func (s *ListProfileObjectsItem) SetObject(v string) *ListProfileObjectsItem { + s.Object = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *ListProfileObjectsItem) SetObjectTypeName(v string) *ListProfileObjectsItem { + s.ObjectTypeName = &v + return s +} + +// SetProfileObjectUniqueKey sets the ProfileObjectUniqueKey field's value. +func (s *ListProfileObjectsItem) SetProfileObjectUniqueKey(v string) *ListProfileObjectsItem { + s.ProfileObjectUniqueKey = &v + return s +} + +type ListProfileObjectsOutput struct { + _ struct{} `type:"structure"` + + // The list of ListProfileObject instances. + Items []*ListProfileObjectsItem `type:"list"` + + // The pagination token from the previous call to ListProfileObjects. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProfileObjectsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProfileObjectsOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListProfileObjectsOutput) SetItems(v []*ListProfileObjectsItem) *ListProfileObjectsOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListProfileObjectsOutput) SetNextToken(v string) *ListProfileObjectsOutput { + s.NextToken = &v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource for which you want to view tags. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// Represents a field in a ProfileObjectType. +type ObjectTypeField struct { + _ struct{} `type:"structure"` + + // The content type of the field. Used for determining equality when searching. + ContentType *string `type:"string" enum:"FieldContentType"` + + // A field of a ProfileObject. For example: _source.FirstName, where “_source” + // is a ProfileObjectType of a Zendesk user and “FirstName” is a field in + // that ObjectType. + Source *string `min:"1" type:"string"` + + // The location of the data in the standard ProfileObject model. For example: + // _profile.Address.PostalCode. + Target *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ObjectTypeField) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ObjectTypeField) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ObjectTypeField) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ObjectTypeField"} + if s.Source != nil && len(*s.Source) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Source", 1)) + } + if s.Target != nil && len(*s.Target) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Target", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContentType sets the ContentType field's value. +func (s *ObjectTypeField) SetContentType(v string) *ObjectTypeField { + s.ContentType = &v + return s +} + +// SetSource sets the Source field's value. +func (s *ObjectTypeField) SetSource(v string) *ObjectTypeField { + s.Source = &v + return s +} + +// SetTarget sets the Target field's value. +func (s *ObjectTypeField) SetTarget(v string) *ObjectTypeField { + s.Target = &v + return s +} + +// An object that defines the Key element of a ProfileObject. A Key is a special +// element that can be used to search for a customer profile. +type ObjectTypeKey struct { + _ struct{} `type:"structure"` + + // The reference for the key name of the fields map. + FieldNames []*string `type:"list"` + + // The types of keys that a ProfileObject can have. Each ProfileObject can have + // only 1 UNIQUE key but multiple PROFILE keys. PROFILE means that this key + // can be used to tie an object to a PROFILE. UNIQUE means that it can be used + // to uniquely identify an object. If a key a is marked as SECONDARY, it will + // be used to search for profiles after all other PROFILE keys have been searched. + // A LOOKUP_ONLY key is only used to match a profile but is not persisted to + // be used for searching of the profile. A NEW_ONLY key is only used if the + // profile does not already exist before the object is ingested, otherwise it + // is only used for matching objects to profiles. + StandardIdentifiers []*string `type:"list"` +} + +// String returns the string representation +func (s ObjectTypeKey) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ObjectTypeKey) GoString() string { + return s.String() +} + +// SetFieldNames sets the FieldNames field's value. +func (s *ObjectTypeKey) SetFieldNames(v []*string) *ObjectTypeKey { + s.FieldNames = v + return s +} + +// SetStandardIdentifiers sets the StandardIdentifiers field's value. +func (s *ObjectTypeKey) SetStandardIdentifiers(v []*string) *ObjectTypeKey { + s.StandardIdentifiers = v + return s +} + +// The standard profile of a customer. +type Profile struct { + _ struct{} `type:"structure"` + + // A unique account number that you have given to the customer. + AccountNumber *string `min:"1" type:"string"` + + // Any additional information relevant to the customer's profile. + AdditionalInformation *string `min:"1" type:"string"` + + // A generic address associated with the customer that is not mailing, shipping, + // or billing. + Address *Address `type:"structure"` + + // A key value pair of attributes of a customer profile. + Attributes map[string]*string `type:"map"` + + // The customer’s billing address. + BillingAddress *Address `type:"structure"` + + // The customer’s birth date. + BirthDate *string `min:"1" type:"string"` + + // The customer’s business email address. + BusinessEmailAddress *string `min:"1" type:"string"` + + // The name of the customer’s business. + BusinessName *string `min:"1" type:"string"` + + // The customer’s home phone number. + BusinessPhoneNumber *string `min:"1" type:"string"` + + // The customer's email address, which has not been specified as a personal + // or business address. + EmailAddress *string `min:"1" type:"string"` + + // The customer’s first name. + FirstName *string `min:"1" type:"string"` + + // The gender with which the customer identifies. + Gender *string `type:"string" enum:"Gender"` + + // The customer’s home phone number. + HomePhoneNumber *string `min:"1" type:"string"` + + // The customer’s last name. + LastName *string `min:"1" type:"string"` + + // The customer’s mailing address. + MailingAddress *Address `type:"structure"` + + // The customer’s middle name. + MiddleName *string `min:"1" type:"string"` + + // The customer’s mobile phone number. + MobilePhoneNumber *string `min:"1" type:"string"` + + // The type of profile used to describe the customer. + PartyType *string `type:"string" enum:"PartyType"` + + // The customer’s personal email address. + PersonalEmailAddress *string `min:"1" type:"string"` + + // The customer's phone number, which has not been specified as a mobile, home, + // or business number. + PhoneNumber *string `min:"1" type:"string"` + + // The unique identifier of a customer profile. + ProfileId *string `type:"string"` + + // The customer’s shipping address. + ShippingAddress *Address `type:"structure"` +} + +// String returns the string representation +func (s Profile) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Profile) GoString() string { + return s.String() +} + +// SetAccountNumber sets the AccountNumber field's value. +func (s *Profile) SetAccountNumber(v string) *Profile { + s.AccountNumber = &v + return s +} + +// SetAdditionalInformation sets the AdditionalInformation field's value. +func (s *Profile) SetAdditionalInformation(v string) *Profile { + s.AdditionalInformation = &v + return s +} + +// SetAddress sets the Address field's value. +func (s *Profile) SetAddress(v *Address) *Profile { + s.Address = v + return s +} + +// SetAttributes sets the Attributes field's value. +func (s *Profile) SetAttributes(v map[string]*string) *Profile { + s.Attributes = v + return s +} + +// SetBillingAddress sets the BillingAddress field's value. +func (s *Profile) SetBillingAddress(v *Address) *Profile { + s.BillingAddress = v + return s +} + +// SetBirthDate sets the BirthDate field's value. +func (s *Profile) SetBirthDate(v string) *Profile { + s.BirthDate = &v + return s +} + +// SetBusinessEmailAddress sets the BusinessEmailAddress field's value. +func (s *Profile) SetBusinessEmailAddress(v string) *Profile { + s.BusinessEmailAddress = &v + return s +} + +// SetBusinessName sets the BusinessName field's value. +func (s *Profile) SetBusinessName(v string) *Profile { + s.BusinessName = &v + return s +} + +// SetBusinessPhoneNumber sets the BusinessPhoneNumber field's value. +func (s *Profile) SetBusinessPhoneNumber(v string) *Profile { + s.BusinessPhoneNumber = &v + return s +} + +// SetEmailAddress sets the EmailAddress field's value. +func (s *Profile) SetEmailAddress(v string) *Profile { + s.EmailAddress = &v + return s +} + +// SetFirstName sets the FirstName field's value. +func (s *Profile) SetFirstName(v string) *Profile { + s.FirstName = &v + return s +} + +// SetGender sets the Gender field's value. +func (s *Profile) SetGender(v string) *Profile { + s.Gender = &v + return s +} + +// SetHomePhoneNumber sets the HomePhoneNumber field's value. +func (s *Profile) SetHomePhoneNumber(v string) *Profile { + s.HomePhoneNumber = &v + return s +} + +// SetLastName sets the LastName field's value. +func (s *Profile) SetLastName(v string) *Profile { + s.LastName = &v + return s +} + +// SetMailingAddress sets the MailingAddress field's value. +func (s *Profile) SetMailingAddress(v *Address) *Profile { + s.MailingAddress = v + return s +} + +// SetMiddleName sets the MiddleName field's value. +func (s *Profile) SetMiddleName(v string) *Profile { + s.MiddleName = &v + return s +} + +// SetMobilePhoneNumber sets the MobilePhoneNumber field's value. +func (s *Profile) SetMobilePhoneNumber(v string) *Profile { + s.MobilePhoneNumber = &v + return s +} + +// SetPartyType sets the PartyType field's value. +func (s *Profile) SetPartyType(v string) *Profile { + s.PartyType = &v + return s +} + +// SetPersonalEmailAddress sets the PersonalEmailAddress field's value. +func (s *Profile) SetPersonalEmailAddress(v string) *Profile { + s.PersonalEmailAddress = &v + return s +} + +// SetPhoneNumber sets the PhoneNumber field's value. +func (s *Profile) SetPhoneNumber(v string) *Profile { + s.PhoneNumber = &v + return s +} + +// SetProfileId sets the ProfileId field's value. +func (s *Profile) SetProfileId(v string) *Profile { + s.ProfileId = &v + return s +} + +// SetShippingAddress sets the ShippingAddress field's value. +func (s *Profile) SetShippingAddress(v *Address) *Profile { + s.ShippingAddress = v + return s +} + +type PutIntegrationInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` + + // The URI of the S3 bucket or any other type of data source. + // + // Uri is a required field + Uri *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutIntegrationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutIntegrationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutIntegrationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutIntegrationInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.ObjectTypeName == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectTypeName")) + } + if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + if s.Uri == nil { + invalidParams.Add(request.NewErrParamRequired("Uri")) + } + if s.Uri != nil && len(*s.Uri) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Uri", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *PutIntegrationInput) SetDomainName(v string) *PutIntegrationInput { + s.DomainName = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *PutIntegrationInput) SetObjectTypeName(v string) *PutIntegrationInput { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *PutIntegrationInput) SetTags(v map[string]*string) *PutIntegrationInput { + s.Tags = v + return s +} + +// SetUri sets the Uri field's value. +func (s *PutIntegrationInput) SetUri(v string) *PutIntegrationInput { + s.Uri = &v + return s +} + +type PutIntegrationOutput struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + // + // LastUpdatedAt is a required field + LastUpdatedAt *time.Time `type:"timestamp" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` + + // The URI of the S3 bucket or any other type of data source. + // + // Uri is a required field + Uri *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutIntegrationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutIntegrationOutput) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *PutIntegrationOutput) SetCreatedAt(v time.Time) *PutIntegrationOutput { + s.CreatedAt = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *PutIntegrationOutput) SetDomainName(v string) *PutIntegrationOutput { + s.DomainName = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *PutIntegrationOutput) SetLastUpdatedAt(v time.Time) *PutIntegrationOutput { + s.LastUpdatedAt = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *PutIntegrationOutput) SetObjectTypeName(v string) *PutIntegrationOutput { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *PutIntegrationOutput) SetTags(v map[string]*string) *PutIntegrationOutput { + s.Tags = v + return s +} + +// SetUri sets the Uri field's value. +func (s *PutIntegrationOutput) SetUri(v string) *PutIntegrationOutput { + s.Uri = &v + return s +} + +type PutProfileObjectInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // A string that is serialized from a JSON object. + // + // Object is a required field + Object *string `min:"1" type:"string" required:"true"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s PutProfileObjectInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutProfileObjectInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutProfileObjectInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutProfileObjectInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.Object == nil { + invalidParams.Add(request.NewErrParamRequired("Object")) + } + if s.Object != nil && len(*s.Object) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Object", 1)) + } + if s.ObjectTypeName == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectTypeName")) + } + if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *PutProfileObjectInput) SetDomainName(v string) *PutProfileObjectInput { + s.DomainName = &v + return s +} + +// SetObject sets the Object field's value. +func (s *PutProfileObjectInput) SetObject(v string) *PutProfileObjectInput { + s.Object = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *PutProfileObjectInput) SetObjectTypeName(v string) *PutProfileObjectInput { + s.ObjectTypeName = &v + return s +} + +type PutProfileObjectOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the profile object generated by the service. + ProfileObjectUniqueKey *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s PutProfileObjectOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutProfileObjectOutput) GoString() string { + return s.String() +} + +// SetProfileObjectUniqueKey sets the ProfileObjectUniqueKey field's value. +func (s *PutProfileObjectOutput) SetProfileObjectUniqueKey(v string) *PutProfileObjectOutput { + s.ProfileObjectUniqueKey = &v + return s +} + +type PutProfileObjectTypeInput struct { + _ struct{} `type:"structure"` + + // Indicates whether a profile should be created when data is received if one + // doesn’t exist for an object of this type. The default is FALSE. If the + // AllowProfileCreation flag is set to FALSE, then the service tries to fetch + // a standard profile and associate this object with the profile. If it is set + // to TRUE, and if no match is found, then the service creates a new standard + // profile. + AllowProfileCreation *bool `type:"boolean"` + + // Description of the profile object type. + // + // Description is a required field + Description *string `min:"1" type:"string" required:"true"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The customer-provided key to encrypt the profile object that will be created + // in this profile object type. + EncryptionKey *string `type:"string"` + + // The number of days until the data in the object expires. + ExpirationDays *int64 `min:"1" type:"integer"` + + // A map of the name and ObjectType field. + Fields map[string]*ObjectTypeField `type:"map"` + + // A list of unique keys that can be used to map data to the profile. + Keys map[string][]*ObjectTypeKey `type:"map"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `location:"uri" locationName:"ObjectTypeName" min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` + + // A unique identifier for the object template. + TemplateId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s PutProfileObjectTypeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutProfileObjectTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutProfileObjectTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutProfileObjectTypeInput"} + if s.Description == nil { + invalidParams.Add(request.NewErrParamRequired("Description")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.ExpirationDays != nil && *s.ExpirationDays < 1 { + invalidParams.Add(request.NewErrParamMinValue("ExpirationDays", 1)) + } + if s.ObjectTypeName == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectTypeName")) + } + if s.ObjectTypeName != nil && len(*s.ObjectTypeName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectTypeName", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + if s.TemplateId != nil && len(*s.TemplateId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TemplateId", 1)) + } + if s.Fields != nil { + for i, v := range s.Fields { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Fields", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAllowProfileCreation sets the AllowProfileCreation field's value. +func (s *PutProfileObjectTypeInput) SetAllowProfileCreation(v bool) *PutProfileObjectTypeInput { + s.AllowProfileCreation = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *PutProfileObjectTypeInput) SetDescription(v string) *PutProfileObjectTypeInput { + s.Description = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *PutProfileObjectTypeInput) SetDomainName(v string) *PutProfileObjectTypeInput { + s.DomainName = &v + return s +} + +// SetEncryptionKey sets the EncryptionKey field's value. +func (s *PutProfileObjectTypeInput) SetEncryptionKey(v string) *PutProfileObjectTypeInput { + s.EncryptionKey = &v + return s +} + +// SetExpirationDays sets the ExpirationDays field's value. +func (s *PutProfileObjectTypeInput) SetExpirationDays(v int64) *PutProfileObjectTypeInput { + s.ExpirationDays = &v + return s +} + +// SetFields sets the Fields field's value. +func (s *PutProfileObjectTypeInput) SetFields(v map[string]*ObjectTypeField) *PutProfileObjectTypeInput { + s.Fields = v + return s +} + +// SetKeys sets the Keys field's value. +func (s *PutProfileObjectTypeInput) SetKeys(v map[string][]*ObjectTypeKey) *PutProfileObjectTypeInput { + s.Keys = v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *PutProfileObjectTypeInput) SetObjectTypeName(v string) *PutProfileObjectTypeInput { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *PutProfileObjectTypeInput) SetTags(v map[string]*string) *PutProfileObjectTypeInput { + s.Tags = v + return s +} + +// SetTemplateId sets the TemplateId field's value. +func (s *PutProfileObjectTypeInput) SetTemplateId(v string) *PutProfileObjectTypeInput { + s.TemplateId = &v + return s +} + +type PutProfileObjectTypeOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether a profile should be created when data is received if one + // doesn’t exist for an object of this type. The default is FALSE. If the + // AllowProfileCreation flag is set to FALSE, then the service tries to fetch + // a standard profile and associate this object with the profile. If it is set + // to TRUE, and if no match is found, then the service creates a new standard + // profile. + AllowProfileCreation *bool `type:"boolean"` + + // The timestamp of when the domain was created. + CreatedAt *time.Time `type:"timestamp"` + + // Description of the profile object type. + // + // Description is a required field + Description *string `min:"1" type:"string" required:"true"` + + // The customer-provided key to encrypt the profile object that will be created + // in this profile object type. + EncryptionKey *string `type:"string"` + + // The number of days until the data in the object expires. + ExpirationDays *int64 `min:"1" type:"integer"` + + // A map of the name and ObjectType field. + Fields map[string]*ObjectTypeField `type:"map"` + + // A list of unique keys that can be used to map data to the profile. + Keys map[string][]*ObjectTypeKey `type:"map"` + + // The timestamp of when the domain was most recently edited. + LastUpdatedAt *time.Time `type:"timestamp"` + + // The name of the profile object type. + // + // ObjectTypeName is a required field + ObjectTypeName *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` + + // A unique identifier for the object template. + TemplateId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s PutProfileObjectTypeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutProfileObjectTypeOutput) GoString() string { + return s.String() +} + +// SetAllowProfileCreation sets the AllowProfileCreation field's value. +func (s *PutProfileObjectTypeOutput) SetAllowProfileCreation(v bool) *PutProfileObjectTypeOutput { + s.AllowProfileCreation = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *PutProfileObjectTypeOutput) SetCreatedAt(v time.Time) *PutProfileObjectTypeOutput { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *PutProfileObjectTypeOutput) SetDescription(v string) *PutProfileObjectTypeOutput { + s.Description = &v + return s +} + +// SetEncryptionKey sets the EncryptionKey field's value. +func (s *PutProfileObjectTypeOutput) SetEncryptionKey(v string) *PutProfileObjectTypeOutput { + s.EncryptionKey = &v + return s +} + +// SetExpirationDays sets the ExpirationDays field's value. +func (s *PutProfileObjectTypeOutput) SetExpirationDays(v int64) *PutProfileObjectTypeOutput { + s.ExpirationDays = &v + return s +} + +// SetFields sets the Fields field's value. +func (s *PutProfileObjectTypeOutput) SetFields(v map[string]*ObjectTypeField) *PutProfileObjectTypeOutput { + s.Fields = v + return s +} + +// SetKeys sets the Keys field's value. +func (s *PutProfileObjectTypeOutput) SetKeys(v map[string][]*ObjectTypeKey) *PutProfileObjectTypeOutput { + s.Keys = v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *PutProfileObjectTypeOutput) SetLastUpdatedAt(v time.Time) *PutProfileObjectTypeOutput { + s.LastUpdatedAt = &v + return s +} + +// SetObjectTypeName sets the ObjectTypeName field's value. +func (s *PutProfileObjectTypeOutput) SetObjectTypeName(v string) *PutProfileObjectTypeOutput { + s.ObjectTypeName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *PutProfileObjectTypeOutput) SetTags(v map[string]*string) *PutProfileObjectTypeOutput { + s.Tags = v + return s +} + +// SetTemplateId sets the TemplateId field's value. +func (s *PutProfileObjectTypeOutput) SetTemplateId(v string) *PutProfileObjectTypeOutput { + s.TemplateId = &v + return s +} + +// The requested resource does not exist, or access was denied. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +type SearchProfilesInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // A searchable identifier of a customer profile. The predefined keys you can + // use to search include: _account, _profileId, _fullName, _phone, _email, _ctrContactId, + // _marketoLeadId, _salesforceAccountId, _salesforceContactId, _zendeskUserId, + // _zendeskExternalId, _serviceNowSystemId. + // + // KeyName is a required field + KeyName *string `min:"1" type:"string" required:"true"` + + // The maximum number of objects returned per page. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // The pagination token from the previous SearchProfiles API call. + NextToken *string `location:"querystring" locationName:"next-token" min:"1" type:"string"` + + // A list of key values. + // + // Values is a required field + Values []*string `type:"list" required:"true"` +} + +// String returns the string representation +func (s SearchProfilesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SearchProfilesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SearchProfilesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SearchProfilesInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.KeyName == nil { + invalidParams.Add(request.NewErrParamRequired("KeyName")) + } + if s.KeyName != nil && len(*s.KeyName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KeyName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Values == nil { + invalidParams.Add(request.NewErrParamRequired("Values")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *SearchProfilesInput) SetDomainName(v string) *SearchProfilesInput { + s.DomainName = &v + return s +} + +// SetKeyName sets the KeyName field's value. +func (s *SearchProfilesInput) SetKeyName(v string) *SearchProfilesInput { + s.KeyName = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *SearchProfilesInput) SetMaxResults(v int64) *SearchProfilesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *SearchProfilesInput) SetNextToken(v string) *SearchProfilesInput { + s.NextToken = &v + return s +} + +// SetValues sets the Values field's value. +func (s *SearchProfilesInput) SetValues(v []*string) *SearchProfilesInput { + s.Values = v + return s +} + +type SearchProfilesOutput struct { + _ struct{} `type:"structure"` + + // The list of SearchProfiles instances. + Items []*Profile `type:"list"` + + // The pagination token from the previous SearchProfiles API call. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s SearchProfilesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SearchProfilesOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *SearchProfilesOutput) SetItems(v []*Profile) *SearchProfilesOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *SearchProfilesOutput) SetNextToken(v string) *SearchProfilesOutput { + s.NextToken = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource that you're adding tags to. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// You exceeded the maximum number of requests. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource from which you are removing tags. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The list of tag keys to remove from the resource. + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + if s.TagKeys != nil && len(s.TagKeys) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +// Updates associated with the address properties of a customer profile. +type UpdateAddress struct { + _ struct{} `type:"structure"` + + // The first line of a customer address. + Address1 *string `type:"string"` + + // The second line of a customer address. + Address2 *string `type:"string"` + + // The third line of a customer address. + Address3 *string `type:"string"` + + // The fourth line of a customer address. + Address4 *string `type:"string"` + + // The city in which a customer lives. + City *string `type:"string"` + + // The country in which a customer lives. + Country *string `type:"string"` + + // The county in which a customer lives. + County *string `type:"string"` + + // The postal code of a customer address. + PostalCode *string `type:"string"` + + // The province in which a customer lives. + Province *string `type:"string"` + + // The state in which a customer lives. + State *string `type:"string"` +} + +// String returns the string representation +func (s UpdateAddress) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateAddress) GoString() string { + return s.String() +} + +// SetAddress1 sets the Address1 field's value. +func (s *UpdateAddress) SetAddress1(v string) *UpdateAddress { + s.Address1 = &v + return s +} + +// SetAddress2 sets the Address2 field's value. +func (s *UpdateAddress) SetAddress2(v string) *UpdateAddress { + s.Address2 = &v + return s +} + +// SetAddress3 sets the Address3 field's value. +func (s *UpdateAddress) SetAddress3(v string) *UpdateAddress { + s.Address3 = &v + return s +} + +// SetAddress4 sets the Address4 field's value. +func (s *UpdateAddress) SetAddress4(v string) *UpdateAddress { + s.Address4 = &v + return s +} + +// SetCity sets the City field's value. +func (s *UpdateAddress) SetCity(v string) *UpdateAddress { + s.City = &v + return s +} + +// SetCountry sets the Country field's value. +func (s *UpdateAddress) SetCountry(v string) *UpdateAddress { + s.Country = &v + return s +} + +// SetCounty sets the County field's value. +func (s *UpdateAddress) SetCounty(v string) *UpdateAddress { + s.County = &v + return s +} + +// SetPostalCode sets the PostalCode field's value. +func (s *UpdateAddress) SetPostalCode(v string) *UpdateAddress { + s.PostalCode = &v + return s +} + +// SetProvince sets the Province field's value. +func (s *UpdateAddress) SetProvince(v string) *UpdateAddress { + s.Province = &v + return s +} + +// SetState sets the State field's value. +func (s *UpdateAddress) SetState(v string) *UpdateAddress { + s.State = &v + return s +} + +type UpdateDomainInput struct { + _ struct{} `type:"structure"` + + // The URL of the SQS dead letter queue, which is used for reporting errors + // associated with ingesting data from third party applications. If specified + // as an empty string, it will clear any existing value. You must set up a policy + // on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect + // Customer Profiles to send messages to the DeadLetterQueue. + DeadLetterQueueUrl *string `type:"string"` + + // The default encryption key, which is an AWS managed key, is used when no + // specific type of encryption key is specified. It is used to encrypt all data + // before it is placed in permanent or semi-permanent storage. If specified + // as an empty string, it will clear any existing value. + DefaultEncryptionKey *string `type:"string"` + + // The default number of days until the data within the domain expires. + DefaultExpirationDays *int64 `min:"1" type:"integer"` + + // The unique name for the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation +func (s UpdateDomainInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateDomainInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDomainInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateDomainInput"} + if s.DefaultExpirationDays != nil && *s.DefaultExpirationDays < 1 { + invalidParams.Add(request.NewErrParamMinValue("DefaultExpirationDays", 1)) + } + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value. +func (s *UpdateDomainInput) SetDeadLetterQueueUrl(v string) *UpdateDomainInput { + s.DeadLetterQueueUrl = &v + return s +} + +// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value. +func (s *UpdateDomainInput) SetDefaultEncryptionKey(v string) *UpdateDomainInput { + s.DefaultEncryptionKey = &v + return s +} + +// SetDefaultExpirationDays sets the DefaultExpirationDays field's value. +func (s *UpdateDomainInput) SetDefaultExpirationDays(v int64) *UpdateDomainInput { + s.DefaultExpirationDays = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *UpdateDomainInput) SetDomainName(v string) *UpdateDomainInput { + s.DomainName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *UpdateDomainInput) SetTags(v map[string]*string) *UpdateDomainInput { + s.Tags = v + return s +} + +type UpdateDomainOutput struct { + _ struct{} `type:"structure"` + + // The timestamp of when the domain was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` + + // The URL of the SQS dead letter queue, which is used for reporting errors + // associated with ingesting data from third party applications. + DeadLetterQueueUrl *string `type:"string"` + + // The default encryption key, which is an AWS managed key, is used when no + // specific type of encryption key is specified. It is used to encrypt all data + // before it is placed in permanent or semi-permanent storage. + DefaultEncryptionKey *string `type:"string"` + + // The default number of days until the data within the domain expires. + DefaultExpirationDays *int64 `min:"1" type:"integer"` + + // The unique name for the domain. + // + // DomainName is a required field + DomainName *string `min:"1" type:"string" required:"true"` + + // The timestamp of when the domain was most recently edited. + // + // LastUpdatedAt is a required field + LastUpdatedAt *time.Time `type:"timestamp" required:"true"` + + // The tags used to organize, track, or control access for this resource. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation +func (s UpdateDomainOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateDomainOutput) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *UpdateDomainOutput) SetCreatedAt(v time.Time) *UpdateDomainOutput { + s.CreatedAt = &v + return s +} + +// SetDeadLetterQueueUrl sets the DeadLetterQueueUrl field's value. +func (s *UpdateDomainOutput) SetDeadLetterQueueUrl(v string) *UpdateDomainOutput { + s.DeadLetterQueueUrl = &v + return s +} + +// SetDefaultEncryptionKey sets the DefaultEncryptionKey field's value. +func (s *UpdateDomainOutput) SetDefaultEncryptionKey(v string) *UpdateDomainOutput { + s.DefaultEncryptionKey = &v + return s +} + +// SetDefaultExpirationDays sets the DefaultExpirationDays field's value. +func (s *UpdateDomainOutput) SetDefaultExpirationDays(v int64) *UpdateDomainOutput { + s.DefaultExpirationDays = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *UpdateDomainOutput) SetDomainName(v string) *UpdateDomainOutput { + s.DomainName = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *UpdateDomainOutput) SetLastUpdatedAt(v time.Time) *UpdateDomainOutput { + s.LastUpdatedAt = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *UpdateDomainOutput) SetTags(v map[string]*string) *UpdateDomainOutput { + s.Tags = v + return s +} + +type UpdateProfileInput struct { + _ struct{} `type:"structure"` + + // A unique account number that you have given to the customer. + AccountNumber *string `type:"string"` + + // Any additional information relevant to the customer's profile. + AdditionalInformation *string `type:"string"` + + // A generic address associated with the customer that is not mailing, shipping, + // or billing. + Address *UpdateAddress `type:"structure"` + + // A key value pair of attributes of a customer profile. + Attributes map[string]*string `type:"map"` + + // The customer’s billing address. + BillingAddress *UpdateAddress `type:"structure"` + + // The customer’s birth date. + BirthDate *string `type:"string"` + + // The customer’s business email address. + BusinessEmailAddress *string `type:"string"` + + // The name of the customer’s business. + BusinessName *string `type:"string"` + + // The customer’s business phone number. + BusinessPhoneNumber *string `type:"string"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // The customer's email address, which has not been specified as a personal + // or business address. + EmailAddress *string `type:"string"` + + // The customer’s first name. + FirstName *string `type:"string"` + + // The gender with which the customer identifies. + Gender *string `type:"string" enum:"Gender"` + + // The customer’s home phone number. + HomePhoneNumber *string `type:"string"` + + // The customer’s last name. + LastName *string `type:"string"` + + // The customer’s mailing address. + MailingAddress *UpdateAddress `type:"structure"` + + // The customer’s middle name. + MiddleName *string `type:"string"` + + // The customer’s mobile phone number. + MobilePhoneNumber *string `type:"string"` + + // The type of profile used to describe the customer. + PartyType *string `type:"string" enum:"PartyType"` + + // The customer’s personal email address. + PersonalEmailAddress *string `type:"string"` + + // The customer's phone number, which has not been specified as a mobile, home, + // or business number. + PhoneNumber *string `type:"string"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` + + // The customer’s shipping address. + ShippingAddress *UpdateAddress `type:"structure"` +} + +// String returns the string representation +func (s UpdateProfileInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateProfileInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateProfileInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateProfileInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.ProfileId == nil { + invalidParams.Add(request.NewErrParamRequired("ProfileId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountNumber sets the AccountNumber field's value. +func (s *UpdateProfileInput) SetAccountNumber(v string) *UpdateProfileInput { + s.AccountNumber = &v + return s +} + +// SetAdditionalInformation sets the AdditionalInformation field's value. +func (s *UpdateProfileInput) SetAdditionalInformation(v string) *UpdateProfileInput { + s.AdditionalInformation = &v + return s +} + +// SetAddress sets the Address field's value. +func (s *UpdateProfileInput) SetAddress(v *UpdateAddress) *UpdateProfileInput { + s.Address = v + return s +} + +// SetAttributes sets the Attributes field's value. +func (s *UpdateProfileInput) SetAttributes(v map[string]*string) *UpdateProfileInput { + s.Attributes = v + return s +} + +// SetBillingAddress sets the BillingAddress field's value. +func (s *UpdateProfileInput) SetBillingAddress(v *UpdateAddress) *UpdateProfileInput { + s.BillingAddress = v + return s +} + +// SetBirthDate sets the BirthDate field's value. +func (s *UpdateProfileInput) SetBirthDate(v string) *UpdateProfileInput { + s.BirthDate = &v + return s +} + +// SetBusinessEmailAddress sets the BusinessEmailAddress field's value. +func (s *UpdateProfileInput) SetBusinessEmailAddress(v string) *UpdateProfileInput { + s.BusinessEmailAddress = &v + return s +} + +// SetBusinessName sets the BusinessName field's value. +func (s *UpdateProfileInput) SetBusinessName(v string) *UpdateProfileInput { + s.BusinessName = &v + return s +} + +// SetBusinessPhoneNumber sets the BusinessPhoneNumber field's value. +func (s *UpdateProfileInput) SetBusinessPhoneNumber(v string) *UpdateProfileInput { + s.BusinessPhoneNumber = &v + return s +} + +// SetDomainName sets the DomainName field's value. +func (s *UpdateProfileInput) SetDomainName(v string) *UpdateProfileInput { + s.DomainName = &v + return s +} + +// SetEmailAddress sets the EmailAddress field's value. +func (s *UpdateProfileInput) SetEmailAddress(v string) *UpdateProfileInput { + s.EmailAddress = &v + return s +} + +// SetFirstName sets the FirstName field's value. +func (s *UpdateProfileInput) SetFirstName(v string) *UpdateProfileInput { + s.FirstName = &v + return s +} + +// SetGender sets the Gender field's value. +func (s *UpdateProfileInput) SetGender(v string) *UpdateProfileInput { + s.Gender = &v + return s +} + +// SetHomePhoneNumber sets the HomePhoneNumber field's value. +func (s *UpdateProfileInput) SetHomePhoneNumber(v string) *UpdateProfileInput { + s.HomePhoneNumber = &v + return s +} + +// SetLastName sets the LastName field's value. +func (s *UpdateProfileInput) SetLastName(v string) *UpdateProfileInput { + s.LastName = &v + return s +} + +// SetMailingAddress sets the MailingAddress field's value. +func (s *UpdateProfileInput) SetMailingAddress(v *UpdateAddress) *UpdateProfileInput { + s.MailingAddress = v + return s +} + +// SetMiddleName sets the MiddleName field's value. +func (s *UpdateProfileInput) SetMiddleName(v string) *UpdateProfileInput { + s.MiddleName = &v + return s +} + +// SetMobilePhoneNumber sets the MobilePhoneNumber field's value. +func (s *UpdateProfileInput) SetMobilePhoneNumber(v string) *UpdateProfileInput { + s.MobilePhoneNumber = &v + return s +} + +// SetPartyType sets the PartyType field's value. +func (s *UpdateProfileInput) SetPartyType(v string) *UpdateProfileInput { + s.PartyType = &v + return s +} + +// SetPersonalEmailAddress sets the PersonalEmailAddress field's value. +func (s *UpdateProfileInput) SetPersonalEmailAddress(v string) *UpdateProfileInput { + s.PersonalEmailAddress = &v + return s +} + +// SetPhoneNumber sets the PhoneNumber field's value. +func (s *UpdateProfileInput) SetPhoneNumber(v string) *UpdateProfileInput { + s.PhoneNumber = &v + return s +} + +// SetProfileId sets the ProfileId field's value. +func (s *UpdateProfileInput) SetProfileId(v string) *UpdateProfileInput { + s.ProfileId = &v + return s +} + +// SetShippingAddress sets the ShippingAddress field's value. +func (s *UpdateProfileInput) SetShippingAddress(v *UpdateAddress) *UpdateProfileInput { + s.ShippingAddress = v + return s +} + +type UpdateProfileOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of a customer profile. + // + // ProfileId is a required field + ProfileId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateProfileOutput) GoString() string { + return s.String() +} + +// SetProfileId sets the ProfileId field's value. +func (s *UpdateProfileOutput) SetProfileId(v string) *UpdateProfileOutput { + s.ProfileId = &v + return s +} + +const ( + // FieldContentTypeString is a FieldContentType enum value + FieldContentTypeString = "STRING" + + // FieldContentTypeNumber is a FieldContentType enum value + FieldContentTypeNumber = "NUMBER" + + // FieldContentTypePhoneNumber is a FieldContentType enum value + FieldContentTypePhoneNumber = "PHONE_NUMBER" + + // FieldContentTypeEmailAddress is a FieldContentType enum value + FieldContentTypeEmailAddress = "EMAIL_ADDRESS" + + // FieldContentTypeName is a FieldContentType enum value + FieldContentTypeName = "NAME" +) + +// FieldContentType_Values returns all elements of the FieldContentType enum +func FieldContentType_Values() []string { + return []string{ + FieldContentTypeString, + FieldContentTypeNumber, + FieldContentTypePhoneNumber, + FieldContentTypeEmailAddress, + FieldContentTypeName, + } +} + +const ( + // GenderMale is a Gender enum value + GenderMale = "MALE" + + // GenderFemale is a Gender enum value + GenderFemale = "FEMALE" + + // GenderUnspecified is a Gender enum value + GenderUnspecified = "UNSPECIFIED" +) + +// Gender_Values returns all elements of the Gender enum +func Gender_Values() []string { + return []string{ + GenderMale, + GenderFemale, + GenderUnspecified, + } +} + +const ( + // PartyTypeIndividual is a PartyType enum value + PartyTypeIndividual = "INDIVIDUAL" + + // PartyTypeBusiness is a PartyType enum value + PartyTypeBusiness = "BUSINESS" + + // PartyTypeOther is a PartyType enum value + PartyTypeOther = "OTHER" +) + +// PartyType_Values returns all elements of the PartyType enum +func PartyType_Values() []string { + return []string{ + PartyTypeIndividual, + PartyTypeBusiness, + PartyTypeOther, + } +} + +const ( + // StandardIdentifierProfile is a StandardIdentifier enum value + StandardIdentifierProfile = "PROFILE" + + // StandardIdentifierUnique is a StandardIdentifier enum value + StandardIdentifierUnique = "UNIQUE" + + // StandardIdentifierSecondary is a StandardIdentifier enum value + StandardIdentifierSecondary = "SECONDARY" + + // StandardIdentifierLookupOnly is a StandardIdentifier enum value + StandardIdentifierLookupOnly = "LOOKUP_ONLY" + + // StandardIdentifierNewOnly is a StandardIdentifier enum value + StandardIdentifierNewOnly = "NEW_ONLY" +) + +// StandardIdentifier_Values returns all elements of the StandardIdentifier enum +func StandardIdentifier_Values() []string { + return []string{ + StandardIdentifierProfile, + StandardIdentifierUnique, + StandardIdentifierSecondary, + StandardIdentifierLookupOnly, + StandardIdentifierNewOnly, + } +} diff --git a/service/customerprofiles/customerprofilesiface/interface.go b/service/customerprofiles/customerprofilesiface/interface.go new file mode 100644 index 00000000000..c508e228936 --- /dev/null +++ b/service/customerprofiles/customerprofilesiface/interface.go @@ -0,0 +1,176 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package customerprofilesiface provides an interface to enable mocking the Amazon Connect Customer Profiles service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package customerprofilesiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/customerprofiles" +) + +// CustomerProfilesAPI provides an interface to enable mocking the +// customerprofiles.CustomerProfiles service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Connect Customer Profiles. +// func myFunc(svc customerprofilesiface.CustomerProfilesAPI) bool { +// // Make svc.AddProfileKey request +// } +// +// func main() { +// sess := session.New() +// svc := customerprofiles.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockCustomerProfilesClient struct { +// customerprofilesiface.CustomerProfilesAPI +// } +// func (m *mockCustomerProfilesClient) AddProfileKey(input *customerprofiles.AddProfileKeyInput) (*customerprofiles.AddProfileKeyOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockCustomerProfilesClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type CustomerProfilesAPI interface { + AddProfileKey(*customerprofiles.AddProfileKeyInput) (*customerprofiles.AddProfileKeyOutput, error) + AddProfileKeyWithContext(aws.Context, *customerprofiles.AddProfileKeyInput, ...request.Option) (*customerprofiles.AddProfileKeyOutput, error) + AddProfileKeyRequest(*customerprofiles.AddProfileKeyInput) (*request.Request, *customerprofiles.AddProfileKeyOutput) + + CreateDomain(*customerprofiles.CreateDomainInput) (*customerprofiles.CreateDomainOutput, error) + CreateDomainWithContext(aws.Context, *customerprofiles.CreateDomainInput, ...request.Option) (*customerprofiles.CreateDomainOutput, error) + CreateDomainRequest(*customerprofiles.CreateDomainInput) (*request.Request, *customerprofiles.CreateDomainOutput) + + CreateProfile(*customerprofiles.CreateProfileInput) (*customerprofiles.CreateProfileOutput, error) + CreateProfileWithContext(aws.Context, *customerprofiles.CreateProfileInput, ...request.Option) (*customerprofiles.CreateProfileOutput, error) + CreateProfileRequest(*customerprofiles.CreateProfileInput) (*request.Request, *customerprofiles.CreateProfileOutput) + + DeleteDomain(*customerprofiles.DeleteDomainInput) (*customerprofiles.DeleteDomainOutput, error) + DeleteDomainWithContext(aws.Context, *customerprofiles.DeleteDomainInput, ...request.Option) (*customerprofiles.DeleteDomainOutput, error) + DeleteDomainRequest(*customerprofiles.DeleteDomainInput) (*request.Request, *customerprofiles.DeleteDomainOutput) + + DeleteIntegration(*customerprofiles.DeleteIntegrationInput) (*customerprofiles.DeleteIntegrationOutput, error) + DeleteIntegrationWithContext(aws.Context, *customerprofiles.DeleteIntegrationInput, ...request.Option) (*customerprofiles.DeleteIntegrationOutput, error) + DeleteIntegrationRequest(*customerprofiles.DeleteIntegrationInput) (*request.Request, *customerprofiles.DeleteIntegrationOutput) + + DeleteProfile(*customerprofiles.DeleteProfileInput) (*customerprofiles.DeleteProfileOutput, error) + DeleteProfileWithContext(aws.Context, *customerprofiles.DeleteProfileInput, ...request.Option) (*customerprofiles.DeleteProfileOutput, error) + DeleteProfileRequest(*customerprofiles.DeleteProfileInput) (*request.Request, *customerprofiles.DeleteProfileOutput) + + DeleteProfileKey(*customerprofiles.DeleteProfileKeyInput) (*customerprofiles.DeleteProfileKeyOutput, error) + DeleteProfileKeyWithContext(aws.Context, *customerprofiles.DeleteProfileKeyInput, ...request.Option) (*customerprofiles.DeleteProfileKeyOutput, error) + DeleteProfileKeyRequest(*customerprofiles.DeleteProfileKeyInput) (*request.Request, *customerprofiles.DeleteProfileKeyOutput) + + DeleteProfileObject(*customerprofiles.DeleteProfileObjectInput) (*customerprofiles.DeleteProfileObjectOutput, error) + DeleteProfileObjectWithContext(aws.Context, *customerprofiles.DeleteProfileObjectInput, ...request.Option) (*customerprofiles.DeleteProfileObjectOutput, error) + DeleteProfileObjectRequest(*customerprofiles.DeleteProfileObjectInput) (*request.Request, *customerprofiles.DeleteProfileObjectOutput) + + DeleteProfileObjectType(*customerprofiles.DeleteProfileObjectTypeInput) (*customerprofiles.DeleteProfileObjectTypeOutput, error) + DeleteProfileObjectTypeWithContext(aws.Context, *customerprofiles.DeleteProfileObjectTypeInput, ...request.Option) (*customerprofiles.DeleteProfileObjectTypeOutput, error) + DeleteProfileObjectTypeRequest(*customerprofiles.DeleteProfileObjectTypeInput) (*request.Request, *customerprofiles.DeleteProfileObjectTypeOutput) + + GetDomain(*customerprofiles.GetDomainInput) (*customerprofiles.GetDomainOutput, error) + GetDomainWithContext(aws.Context, *customerprofiles.GetDomainInput, ...request.Option) (*customerprofiles.GetDomainOutput, error) + GetDomainRequest(*customerprofiles.GetDomainInput) (*request.Request, *customerprofiles.GetDomainOutput) + + GetIntegration(*customerprofiles.GetIntegrationInput) (*customerprofiles.GetIntegrationOutput, error) + GetIntegrationWithContext(aws.Context, *customerprofiles.GetIntegrationInput, ...request.Option) (*customerprofiles.GetIntegrationOutput, error) + GetIntegrationRequest(*customerprofiles.GetIntegrationInput) (*request.Request, *customerprofiles.GetIntegrationOutput) + + GetProfileObjectType(*customerprofiles.GetProfileObjectTypeInput) (*customerprofiles.GetProfileObjectTypeOutput, error) + GetProfileObjectTypeWithContext(aws.Context, *customerprofiles.GetProfileObjectTypeInput, ...request.Option) (*customerprofiles.GetProfileObjectTypeOutput, error) + GetProfileObjectTypeRequest(*customerprofiles.GetProfileObjectTypeInput) (*request.Request, *customerprofiles.GetProfileObjectTypeOutput) + + GetProfileObjectTypeTemplate(*customerprofiles.GetProfileObjectTypeTemplateInput) (*customerprofiles.GetProfileObjectTypeTemplateOutput, error) + GetProfileObjectTypeTemplateWithContext(aws.Context, *customerprofiles.GetProfileObjectTypeTemplateInput, ...request.Option) (*customerprofiles.GetProfileObjectTypeTemplateOutput, error) + GetProfileObjectTypeTemplateRequest(*customerprofiles.GetProfileObjectTypeTemplateInput) (*request.Request, *customerprofiles.GetProfileObjectTypeTemplateOutput) + + ListAccountIntegrations(*customerprofiles.ListAccountIntegrationsInput) (*customerprofiles.ListAccountIntegrationsOutput, error) + ListAccountIntegrationsWithContext(aws.Context, *customerprofiles.ListAccountIntegrationsInput, ...request.Option) (*customerprofiles.ListAccountIntegrationsOutput, error) + ListAccountIntegrationsRequest(*customerprofiles.ListAccountIntegrationsInput) (*request.Request, *customerprofiles.ListAccountIntegrationsOutput) + + ListDomains(*customerprofiles.ListDomainsInput) (*customerprofiles.ListDomainsOutput, error) + ListDomainsWithContext(aws.Context, *customerprofiles.ListDomainsInput, ...request.Option) (*customerprofiles.ListDomainsOutput, error) + ListDomainsRequest(*customerprofiles.ListDomainsInput) (*request.Request, *customerprofiles.ListDomainsOutput) + + ListIntegrations(*customerprofiles.ListIntegrationsInput) (*customerprofiles.ListIntegrationsOutput, error) + ListIntegrationsWithContext(aws.Context, *customerprofiles.ListIntegrationsInput, ...request.Option) (*customerprofiles.ListIntegrationsOutput, error) + ListIntegrationsRequest(*customerprofiles.ListIntegrationsInput) (*request.Request, *customerprofiles.ListIntegrationsOutput) + + ListProfileObjectTypeTemplates(*customerprofiles.ListProfileObjectTypeTemplatesInput) (*customerprofiles.ListProfileObjectTypeTemplatesOutput, error) + ListProfileObjectTypeTemplatesWithContext(aws.Context, *customerprofiles.ListProfileObjectTypeTemplatesInput, ...request.Option) (*customerprofiles.ListProfileObjectTypeTemplatesOutput, error) + ListProfileObjectTypeTemplatesRequest(*customerprofiles.ListProfileObjectTypeTemplatesInput) (*request.Request, *customerprofiles.ListProfileObjectTypeTemplatesOutput) + + ListProfileObjectTypes(*customerprofiles.ListProfileObjectTypesInput) (*customerprofiles.ListProfileObjectTypesOutput, error) + ListProfileObjectTypesWithContext(aws.Context, *customerprofiles.ListProfileObjectTypesInput, ...request.Option) (*customerprofiles.ListProfileObjectTypesOutput, error) + ListProfileObjectTypesRequest(*customerprofiles.ListProfileObjectTypesInput) (*request.Request, *customerprofiles.ListProfileObjectTypesOutput) + + ListProfileObjects(*customerprofiles.ListProfileObjectsInput) (*customerprofiles.ListProfileObjectsOutput, error) + ListProfileObjectsWithContext(aws.Context, *customerprofiles.ListProfileObjectsInput, ...request.Option) (*customerprofiles.ListProfileObjectsOutput, error) + ListProfileObjectsRequest(*customerprofiles.ListProfileObjectsInput) (*request.Request, *customerprofiles.ListProfileObjectsOutput) + + ListTagsForResource(*customerprofiles.ListTagsForResourceInput) (*customerprofiles.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *customerprofiles.ListTagsForResourceInput, ...request.Option) (*customerprofiles.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*customerprofiles.ListTagsForResourceInput) (*request.Request, *customerprofiles.ListTagsForResourceOutput) + + PutIntegration(*customerprofiles.PutIntegrationInput) (*customerprofiles.PutIntegrationOutput, error) + PutIntegrationWithContext(aws.Context, *customerprofiles.PutIntegrationInput, ...request.Option) (*customerprofiles.PutIntegrationOutput, error) + PutIntegrationRequest(*customerprofiles.PutIntegrationInput) (*request.Request, *customerprofiles.PutIntegrationOutput) + + PutProfileObject(*customerprofiles.PutProfileObjectInput) (*customerprofiles.PutProfileObjectOutput, error) + PutProfileObjectWithContext(aws.Context, *customerprofiles.PutProfileObjectInput, ...request.Option) (*customerprofiles.PutProfileObjectOutput, error) + PutProfileObjectRequest(*customerprofiles.PutProfileObjectInput) (*request.Request, *customerprofiles.PutProfileObjectOutput) + + PutProfileObjectType(*customerprofiles.PutProfileObjectTypeInput) (*customerprofiles.PutProfileObjectTypeOutput, error) + PutProfileObjectTypeWithContext(aws.Context, *customerprofiles.PutProfileObjectTypeInput, ...request.Option) (*customerprofiles.PutProfileObjectTypeOutput, error) + PutProfileObjectTypeRequest(*customerprofiles.PutProfileObjectTypeInput) (*request.Request, *customerprofiles.PutProfileObjectTypeOutput) + + SearchProfiles(*customerprofiles.SearchProfilesInput) (*customerprofiles.SearchProfilesOutput, error) + SearchProfilesWithContext(aws.Context, *customerprofiles.SearchProfilesInput, ...request.Option) (*customerprofiles.SearchProfilesOutput, error) + SearchProfilesRequest(*customerprofiles.SearchProfilesInput) (*request.Request, *customerprofiles.SearchProfilesOutput) + + TagResource(*customerprofiles.TagResourceInput) (*customerprofiles.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *customerprofiles.TagResourceInput, ...request.Option) (*customerprofiles.TagResourceOutput, error) + TagResourceRequest(*customerprofiles.TagResourceInput) (*request.Request, *customerprofiles.TagResourceOutput) + + UntagResource(*customerprofiles.UntagResourceInput) (*customerprofiles.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *customerprofiles.UntagResourceInput, ...request.Option) (*customerprofiles.UntagResourceOutput, error) + UntagResourceRequest(*customerprofiles.UntagResourceInput) (*request.Request, *customerprofiles.UntagResourceOutput) + + UpdateDomain(*customerprofiles.UpdateDomainInput) (*customerprofiles.UpdateDomainOutput, error) + UpdateDomainWithContext(aws.Context, *customerprofiles.UpdateDomainInput, ...request.Option) (*customerprofiles.UpdateDomainOutput, error) + UpdateDomainRequest(*customerprofiles.UpdateDomainInput) (*request.Request, *customerprofiles.UpdateDomainOutput) + + UpdateProfile(*customerprofiles.UpdateProfileInput) (*customerprofiles.UpdateProfileOutput, error) + UpdateProfileWithContext(aws.Context, *customerprofiles.UpdateProfileInput, ...request.Option) (*customerprofiles.UpdateProfileOutput, error) + UpdateProfileRequest(*customerprofiles.UpdateProfileInput) (*request.Request, *customerprofiles.UpdateProfileOutput) +} + +var _ CustomerProfilesAPI = (*customerprofiles.CustomerProfiles)(nil) diff --git a/service/customerprofiles/doc.go b/service/customerprofiles/doc.go new file mode 100644 index 00000000000..c1d48f9be80 --- /dev/null +++ b/service/customerprofiles/doc.go @@ -0,0 +1,39 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package customerprofiles provides the client and types for making API +// requests to Amazon Connect Customer Profiles. +// +// Welcome to the Amazon Connect Customer Profiles API Reference. This guide +// provides information about the Amazon Connect Customer Profiles API, including +// supported operations, data types, parameters, and schemas. +// +// Amazon Connect Customer Profiles is a unified customer profile for your contact +// center that has pre-built connectors powered by AppFlow that make it easy +// to combine customer information from third party applications, such as Salesforce +// (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with +// contact history from your Amazon Connect contact center. +// +// If you're new to Amazon Connect, you might find it helpful to also review +// the Amazon Connect Administrator Guide (https://docs.aws.amazon.com/connect/latest/adminguide/what-is-amazon-connect.html). +// +// See https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15 for more information on this service. +// +// See customerprofiles package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/customerprofiles/ +// +// Using the Client +// +// To contact Amazon Connect Customer Profiles with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Connect Customer Profiles client CustomerProfiles for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/customerprofiles/#New +package customerprofiles diff --git a/service/customerprofiles/errors.go b/service/customerprofiles/errors.go new file mode 100644 index 00000000000..02070ff4cfc --- /dev/null +++ b/service/customerprofiles/errors.go @@ -0,0 +1,48 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package customerprofiles + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeBadRequestException for service response error code + // "BadRequestException". + // + // The input you provided is invalid. + ErrCodeBadRequestException = "BadRequestException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An internal service error occurred. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The requested resource does not exist, or access was denied. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // You exceeded the maximum number of requests. + ErrCodeThrottlingException = "ThrottlingException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "BadRequestException": newErrorBadRequestException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ThrottlingException": newErrorThrottlingException, +} diff --git a/service/customerprofiles/service.go b/service/customerprofiles/service.go new file mode 100644 index 00000000000..05cde1d2bfe --- /dev/null +++ b/service/customerprofiles/service.go @@ -0,0 +1,104 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package customerprofiles + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// CustomerProfiles provides the API operation methods for making requests to +// Amazon Connect Customer Profiles. See this package's package overview docs +// for details on the service. +// +// CustomerProfiles methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type CustomerProfiles struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "Customer Profiles" // Name of service. + EndpointsID = "profile" // ID to lookup a service endpoint with. + ServiceID = "Customer Profiles" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the CustomerProfiles client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// mySession := session.Must(session.NewSession()) +// +// // Create a CustomerProfiles client from just a session. +// svc := customerprofiles.New(mySession) +// +// // Create a CustomerProfiles client with additional configuration +// svc := customerprofiles.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *CustomerProfiles { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "profile" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *CustomerProfiles { + svc := &CustomerProfiles{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2020-08-15", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a CustomerProfiles operation and runs any +// custom request initialization. +func (c *CustomerProfiles) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +}