Validation rules for asset metadata including dates, IDs, quality checks, resource states, and source validation
Captured By
CapturedByMustNotBeDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that capturedBy does not include dummy characters | Link |
| Dummy Characters List |
|---|
No name, No Name, no name, no Name, NO NAME, Unknown, unknown, UNKNOWN, No value, No Value |
CapturedByMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that capturedBy is not an empty string |
CapturedByHasUnsupportedCharacter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that capturedBy does not include an unsupported character | Link |
Date Added
DateAddedMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that dateAdded is present | Link |
DateAddedMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that dateAdded formatting is valid |
DateAddedMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that dateAdded is not an empty string |
MustNotBeFutureDate
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that dateAdded is not a future date |
Image ID
AspectRatioMustBeWithinRangeForCoverPhotoIntent
| Preconditions |
|---|
intent is COVER_PHOTO |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that longest dimension is between >= 1.5380 and =< 1.5402 the length of the shortest dimension | Link |
Example Validation Report
{
"validationReports": [
{
"code": "VALIDATION__AspectRatioMustBeWithinRangeForCoverPhotoIntent",
"severity": "VIOLATION",
"message": "Aspect ratio of photo, referenced via imageId, must be within permitted range",
"details": {
"createdDate": "2026-09-02T11:36:02.000Z",
"submitted": [
{
"field": "$.assetDetails.imageId",
"value": "b023f0b2-d10b-11f0-8de9-0242ac120002"
}
]
}
}
]
}
ImageIdMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that imageId is not an empty string |
ImageIdMustBeResolvable
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that imageId is resolvable to an Apple-generated Image ID within the organization's data context |
OrientationMustBeLandscapeForCoverPhotoIntent
| Preconditions |
|---|
intent is COVER_PHOTO |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that a photo, referenced via imageId, has a pixelWidth value that is greater than the pixelHeight value | Link |
ReferencedImagesProcessingNotCompleted
| Preconditions |
|---|
imageId value is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the referenced image's metadata is available (a post-condition of processing) so that the image can be further validated in the context of its association with a location asset |
ReferencedPhotoMustHaveRequiredSizeForCoverPhotoIntent
| Preconditions |
|---|
imageId is present |
intent is COVER_PHOTO |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the dimensions of a photo, referenced via imageId, are within permitted range |
ReferencedPhotoMustHaveRequiredSizeForGalleryIntent
| Preconditions |
|---|
imageId is present |
intent is GALLERY |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the dimensions of a photo, referenced via imageId, are within permitted range |
Partners Asset Id
PartnerAssetIdHasSuspectedPresenceOfDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that partnersAssetId does not include dummy characters |
PartnersAssetIdMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that partnersAssetId is present | Link |
PartnersAssetIdMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that partnersAssetId is not an empty string |
PartnersAssetIdHasUnsupportedCharacter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that partnersAssetId does not include an unsupported character | Link |
Photos/Image
MustHavePhotosOrImageID
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that either photos or imageId is present |
MustNotHaveBothPhotosAndImageId
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that photos and imageId are not simultaneously present |
Quality
PhotoRejected
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that an image/photo resource successfully passes data quality review |
Example Validation Report
{
"validationReports": [
{
"code": "VALIDATION__PhotoRejected",
"severity": "VIOLATION",
"message": "Photo with Apple-generated '{{id}}' rejected for reason: '{{reason}}'",
"context": {
"id": "9467895078742654976",
"value": "http://goodpartner.com/images/malibuicecream/xl/3887884.jpg",
"reason": "pii_document, modified"
}
}
]
}
Reasons
{{reason}} | Visual artifacts include but are not limited to |
|---|---|
added_text | |
added_graphics | |
added_border | |
alcoholic_product | |
artwork | |
collage | |
damaging_to_poi | |
disturbing | |
excessive_blurring | |
faces | |
grayscale_image | |
historical_image | |
incorrect_blurring | |
illustration | |
license_plate | |
logo | |
modified | watermarks, collages, special effects, corporate artwork |
nudity | |
offensive | |
pii_document | |
posing | |
privacy_concern | |
qr_code | |
quality | |
satellite_image | |
tobacco_product | |
unspecified | |
violence |
Resource State
LocationAssetMustPossessRequiredState
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that resource state is not SUBMITTED |
LocationAssetStateDoesNotAllowUndelete
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that resource state is not FAILED or REJECTED |
Source
SourceMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that source value is valid | Link |
Example Validation Report
{
"code": "VALIDATION__SourceMustBeValid",
"message": "The value '{{value}}' for field '{{field}}' is invalid. Valid values are {{validValue}}",
"severity": "VIOLATION",
"context": {
"field": "source",
"value": "customer",
"validValue": "BUSINESS,USER,VENDOR"
}
}
SourceMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that source is not an empty string |
Example Validation Report
{
"code": "VALIDATION__SourceMustNotBeEmpty",
"severity": "VIOLATION",
"message": "Field '{{field}}' is empty",
"context": {
"field": "source"
}
}
SourceNotPresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that source (recommended feature) is present | Link |
Example Validation Report
{
"code": "VALIDATION__SourceNotPresent",
"severity": "WARNING",
"message": "Field '{{field}}' not present",
"context": {
"field": "source"
}
}