PutProfileObjectType
Defines a ProfileObjectType.
To add or remove tags on an existing ObjectType, see TagResource/UntagResource.
Request Syntax
PUT /domains/DomainName
/object-types/ObjectTypeName
HTTP/1.1
Content-type: application/json
{
"AllowProfileCreation": boolean
,
"Description": "string
",
"EncryptionKey": "string
",
"ExpirationDays": number
,
"Fields": {
"string
" : {
"ContentType": "string
",
"Source": "string
",
"Target": "string
"
}
},
"Keys": {
"string
" : [
{
"FieldNames": [ "string
" ],
"StandardIdentifiers": [ "string
" ]
}
]
},
"MaxProfileObjectCount": number
,
"SourceLastUpdatedTimestampFormat": "string
",
"Tags": {
"string
" : "string
"
},
"TemplateId": "string
"
}
URI Request Parameters
The request uses the following URI parameters.
- DomainName
-
The unique name of the domain.
Length Constraints: Minimum length of 1. Maximum length of 64.
Pattern:
^[a-zA-Z0-9_-]+$
Required: Yes
- ObjectTypeName
-
The name of the profile object type.
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern:
^[a-zA-Z_][a-zA-Z_0-9-]*$
Required: Yes
Request Body
The request accepts the following data in JSON format.
- 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 toFALSE
, then the service tries to fetch a standard profile and associate this object with the profile. If it is set toTRUE
, and if no match is found, then the service creates a new standard profile.Type: Boolean
Required: No
- Description
-
Description of the profile object type.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 1000.
Required: Yes
- EncryptionKey
-
The customer-provided key to encrypt the profile object that will be created in this profile object type.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 255.
Required: No
- ExpirationDays
-
The number of days until the data in the object expires.
Type: Integer
Valid Range: Minimum value of 1. Maximum value of 1098.
Required: No
- Fields
-
A map of the name and ObjectType field.
Type: String to ObjectTypeField object map
Key Length Constraints: Minimum length of 1. Maximum length of 64.
Key Pattern:
^[a-zA-Z0-9_-]+$
Required: No
- Keys
-
A list of unique keys that can be used to map data to the profile.
Type: String to array of ObjectTypeKey objects map
Key Length Constraints: Minimum length of 1. Maximum length of 64.
Key Pattern:
^[a-zA-Z0-9_-]+$
Required: No
- MaxProfileObjectCount
-
The amount of profile object max count assigned to the object type
Type: Integer
Valid Range: Minimum value of 1.
Required: No
- SourceLastUpdatedTimestampFormat
-
The format of your
sourceLastUpdatedTimestamp
that was previously set up.Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Required: No
- Tags
-
The tags used to organize, track, or control access for this resource.
Type: String to string map
Map Entries: Maximum number of 50 items.
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern:
^(?!aws:)[a-zA-Z+-=._:/]+$
Value Length Constraints: Maximum length of 256.
Required: No
- TemplateId
-
A unique identifier for the object template. For some attributes in the request, the service will use the default value from the object template when TemplateId is present. If these attributes are present in the request, the service may return a
BadRequestException
. These attributes include: AllowProfileCreation, SourceLastUpdatedTimestampFormat, Fields, and Keys. For example, if AllowProfileCreation is set to true when TemplateId is set, the service may return aBadRequestException
.Type: String
Length Constraints: Minimum length of 1. Maximum length of 64.
Pattern:
^[a-zA-Z0-9_-]+$
Required: No
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"AllowProfileCreation": boolean,
"CreatedAt": number,
"Description": "string",
"EncryptionKey": "string",
"ExpirationDays": number,
"Fields": {
"string" : {
"ContentType": "string",
"Source": "string",
"Target": "string"
}
},
"Keys": {
"string" : [
{
"FieldNames": [ "string" ],
"StandardIdentifiers": [ "string" ]
}
]
},
"LastUpdatedAt": number,
"MaxAvailableProfileObjectCount": number,
"MaxProfileObjectCount": number,
"ObjectTypeName": "string",
"SourceLastUpdatedTimestampFormat": "string",
"Tags": {
"string" : "string"
},
"TemplateId": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- 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 toFALSE
, then the service tries to fetch a standard profile and associate this object with the profile. If it is set toTRUE
, and if no match is found, then the service creates a new standard profile.Type: Boolean
- CreatedAt
-
The timestamp of when the domain was created.
Type: Timestamp
- Description
-
Description of the profile object type.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 1000.
- EncryptionKey
-
The customer-provided key to encrypt the profile object that will be created in this profile object type.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 255.
- ExpirationDays
-
The number of days until the data in the object expires.
Type: Integer
Valid Range: Minimum value of 1. Maximum value of 1098.
- Fields
-
A map of the name and ObjectType field.
Type: String to ObjectTypeField object map
Key Length Constraints: Minimum length of 1. Maximum length of 64.
Key Pattern:
^[a-zA-Z0-9_-]+$
- Keys
-
A list of unique keys that can be used to map data to the profile.
Type: String to array of ObjectTypeKey objects map
Key Length Constraints: Minimum length of 1. Maximum length of 64.
Key Pattern:
^[a-zA-Z0-9_-]+$
- LastUpdatedAt
-
The timestamp of when the domain was most recently edited.
Type: Timestamp
- MaxAvailableProfileObjectCount
-
The amount of provisioned profile object max count available.
Type: Integer
Valid Range: Minimum value of 0.
- MaxProfileObjectCount
-
The amount of profile object max count assigned to the object type.
Type: Integer
Valid Range: Minimum value of 1.
- ObjectTypeName
-
The name of the profile object type.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern:
^[a-zA-Z_][a-zA-Z_0-9-]*$
- SourceLastUpdatedTimestampFormat
-
The format of your
sourceLastUpdatedTimestamp
that was previously set up in fields that were parsed using SimpleDateFormat. If you have sourceLastUpdatedTimestamp
in your field, you must set upsourceLastUpdatedTimestampFormat
.Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
- Tags
-
The tags used to organize, track, or control access for this resource.
Type: String to string map
Map Entries: Maximum number of 50 items.
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern:
^(?!aws:)[a-zA-Z+-=._:/]+$
Value Length Constraints: Maximum length of 256.
- TemplateId
-
A unique identifier for the object template.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 64.
Pattern:
^[a-zA-Z0-9_-]+$
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
You do not have sufficient access to perform this action.
HTTP Status Code: 403
- BadRequestException
-
The input you provided is invalid.
HTTP Status Code: 400
- InternalServerException
-
An internal service error occurred.
HTTP Status Code: 500
- ResourceNotFoundException
-
The requested resource does not exist, or access was denied.
HTTP Status Code: 404
- ThrottlingException
-
You exceeded the maximum number of requests.
HTTP Status Code: 429
Examples
Example 1
In the request, replace the Fields
and Keys
request
parameters with your own. If specifying a TemplateId
, replace it with
your own TemplateId
value. You must either specify both
Fields
and Keys
, or you can specify
TemplateId
. You can't include all three.
Sample Request
PUT /domains/ExampleDomainName/object-types/CustomProfileObjectTypeName HTTP/1.1
{
"Description": "Internal ERP System",
"EncryptionKey": "arn:aws:kms:us-east-1:123456789012:key/1988472d-6b77-4bb6-ae39-efce5EXAMPLE",
"AllowProfileCreation": false,
"ExpirationDays": 1000,
"Fields": {
"email" : {
"ContentType": "EMAIL_ADDRESS",
"Source": "_source.email",
"Target": "_profile.BusinessEmail"
},
"phone" : {
"ContentType": "PHONE_NUMBER",
"Source": "_source.phone",
"Target": "_profile.BusinessPhoneNumber"
},
"loyaltyPoints" : {
"ContentType": "NUMBER",
"Source": "_source.loyaltypoints",
"Target": "_profile.Attributes.loyaltypoints"
}
},
"Keys": {
"_email" : [
{
"FieldNames": [ "email" ],
"StandardIdentifiers": [ "PROFILE", "UNIQUE" ]
}
],
"loyaltypoints" : [
{
"FieldNames": [ "loyaltyPoints" ],
"StandardIdentifiers": [ "PROFILE"]
}
]
},
"TemplateId": "MyTemplateId"
}
Sample Response
Content-type: application/json
{
"CreatedAt": 1479249799770,
"Description": "Internal ERP System",
"EncryptionKey": "arn:aws:kms:us-east-1:123456789012:key/1988472d-6b77-4bb6-ae39-efce5EXAMPLE",
"AllowProfileCreation": "FALSE",
"ExpirationDays": 100,
"Fields": {
"email" : {
"ContentType": "EMAIL_ADDRESS",
"Source": "_source.email",
"Target": "_profile.BusinessEmailAddress"
},
"phone" : {
"ContentType": "PHONE_NUMBER",
"Source": "_source.phone",
"Target": "_profile.BusinessPhoneNumber"
},
"loyaltyPoints" : {
"ContentType": "NUMBER",
"Source": "_source.loyaltypoints",
"Target": "_profile.Attributes.loyaltypoints"
}
},
"Keys": {
"email" : [
{
"FieldNames": [ "email" ],
"StandardIdentifiers": [ "PROFILE", "UNIQUE" ]
}
],
"loyaltypoints" : [
{
"FieldNames": [ "loyaltyPoints" ],
"StandardIdentifiers": [ "PROFILE"]
}
]
},
"LastUpdatedAt": 1479249799770,
"ObjectTypeName": "CustomProfileObjectTypeName",
"TemplateId": "MyTemplateId"
}
Example 2
This example illustrates one usage of PutProfileObjectType.
Sample Request
PUT /domains/ExampleDomainName/object-types/CTR HTTP/1.1
Content-type: application/json
{
"Description": "CTR",
"TemplateId": "CTR-NoInferred"
}
Example 2.5
This command associates Contact Records with already existing profiles with the
same phone number. In the example below, replace ExampleDomainName
with
your domain name, and replace the description with your desired description.
Sample Request
aws profile put-object-type --domain-name ExampleDomainName --object-type-name CTR --description "CTR" --template-id "CTR-NoInferred"
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: