Skip to main content

Validation rules for asset metadata including dates, IDs, quality checks, resource states, and source validation

Captured By

CapturedByMustNotBeDummyCharacters

DefinitionSeverityAPISampleMode
Validate that capturedBy does not include dummy characters
VIOLATION
POST_AND_PUT
Link
S
Dummy Characters List
No name, No Name, no name, no Name, NO NAME, Unknown, unknown, UNKNOWN, No value, No Value

CapturedByMustNotBeEmpty

DefinitionSeverityAPISampleMode
Validate that capturedBy is not an empty string
VIOLATION
POST_AND_PUT
S

CapturedByHasUnsupportedCharacter

DefinitionSeverityAPISampleMode
Validate that capturedBy does not include an unsupported character
VIOLATION
POST_AND_PUT
Link
S

Date Added

DateAddedMustBePresent

DefinitionSeverityAPISampleMode
Validate that dateAdded is present
VIOLATION
POST_AND_PUT
Link
S

DateAddedMustHaveValidFormat

DefinitionSeverityAPISampleMode
Validate that dateAdded formatting is valid
VIOLATION
POST_AND_PUT
S

DateAddedMustNotBeEmpty

DefinitionSeverityAPISampleMode
Validate that dateAdded is not an empty string
VIOLATION
POST_AND_PUT
S

MustNotBeFutureDate

DefinitionSeverityAPISampleMode
Validate that dateAdded is not a future date
VIOLATION
POST_AND_PUT
S

Image ID

AspectRatioMustBeWithinRangeForCoverPhotoIntent

Preconditions
intent is COVER_PHOTO
DefinitionSeverityAPISampleMode
Validate that longest dimension is between >= 1.5380 and =< 1.5402 the length of the shortest dimension
VIOLATION
POST_AND_PUT
Link
A
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

DefinitionSeverityAPISampleMode
Validate that imageId is not an empty string
VIOLATION
POST_AND_PUT
S

ImageIdMustBeResolvable

DefinitionSeverityAPISampleMode
Validate that imageId is resolvable to an Apple-generated Image ID within the organization's data context
VIOLATION
POST_AND_PUT
S

OrientationMustBeLandscapeForCoverPhotoIntent

Preconditions
intent is COVER_PHOTO
DefinitionSeverityAPISampleMode
Validate that a photo, referenced via imageId, has a pixelWidth value that is greater than the pixelHeight value
VIOLATION
POST_AND_PUT
Link
A

ReferencedImagesProcessingNotCompleted

Preconditions
imageId value is present
DefinitionSeverityAPISampleMode
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
VIOLATION
POST_AND_PUT
A

ReferencedPhotoMustHaveRequiredSizeForCoverPhotoIntent

Preconditions
imageId is present
intent is COVER_PHOTO
DefinitionSeverityAPISampleMode
Validate that the dimensions of a photo, referenced via imageId, are within permitted range
VIOLATION
POST_AND_PUT
A

ReferencedPhotoMustHaveRequiredSizeForGalleryIntent

Preconditions
imageId is present
intent is GALLERY
DefinitionSeverityAPISampleMode
Validate that the dimensions of a photo, referenced via imageId, are within permitted range
VIOLATION
POST_AND_PUT
A

Partners Asset Id

PartnerAssetIdHasSuspectedPresenceOfDummyCharacters

DefinitionSeverityAPISampleMode
Validate that partnersAssetId does not include dummy characters
WARNING
POST_AND_PUT
S

PartnersAssetIdMustBePresent

DefinitionSeverityAPISampleMode
Validate that partnersAssetId is present
VIOLATION
POST_AND_PUT
Link
S

PartnersAssetIdMustNotBeEmpty

DefinitionSeverityAPISampleMode
Validate that partnersAssetId is not an empty string
VIOLATION
POST_AND_PUT
S

PartnersAssetIdHasUnsupportedCharacter

DefinitionSeverityAPISampleMode
Validate that partnersAssetId does not include an unsupported character
VIOLATION
POST_AND_PUT
Link
S

Photos/Image

MustHavePhotosOrImageID

DefinitionSeverityAPISampleMode
Validate that either photos or imageId is present
VIOLATION
POST_AND_PUT
S

MustNotHaveBothPhotosAndImageId

DefinitionSeverityAPISampleMode
Validate that photos and imageId are not simultaneously present
VIOLATION
POST_AND_PUT
S

Quality

PhotoRejected

DefinitionSeverityAPISampleMode
Validate that an image/photo resource successfully passes data quality review
VIOLATION
POST_AND_PUT
A
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
modifiedwatermarks, collages, special effects, corporate artwork
nudity
offensive
pii_document
posing
privacy_concern
qr_code
quality
satellite_image
tobacco_product
unspecified
violence

Resource State

LocationAssetMustPossessRequiredState

DefinitionSeverityAPISampleMode
Validate that resource state is not SUBMITTED
VIOLATION
PUT
PUT

UNDELETE
S

LocationAssetStateDoesNotAllowUndelete

DefinitionSeverityAPISampleMode
Validate that resource state is not FAILED or REJECTED
VIOLATION
UNDELETE
A

Source

SourceMustBeValid

DefinitionSeverityAPISampleMode
Validate that source value is valid
VIOLATION
POST_AND_PUT
Link
S
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

DefinitionSeverityAPISampleMode
Validate that source is not an empty string
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__SourceMustNotBeEmpty",
"severity": "VIOLATION",
"message": "Field '{{field}}' is empty",
"context": {
"field": "source"
}
}

SourceNotPresent

DefinitionSeverityAPISampleMode
Validate that source (recommended feature) is present
WARNING
POST_AND_PUT
Link
S
Example Validation Report
{
"code": "VALIDATION__SourceNotPresent",
"severity": "WARNING",
"message": "Field '{{field}}' not present",
"context": {
"field": "source"
}
}