Skip to main content

Location attributes validation rules for name-value pairs, categories compatibility, and feature constraints

Change Detection

CountOfLocationAttributesTypesIncreased

DefinitionSeverityAPISampleMode
Validate that the count of type values in latest submittal is less than or matches the count in the stored record
INFO
PUT
A

SuspiciousRemovalOfLocationAttributes

DefinitionSeverityAPISampleMode
Validate that locationAttributes is present when previously submitted
WARNING
PUT
S

Location Attributes

LocationAttributesListMustNotIncludeNulls

DefinitionSeverityAPISampleMode
Validate that a list does not include null
VIOLATION
POST_AND_PUT
S

LocationAttributesMustNotBeEmptyArray

DefinitionSeverityAPISampleMode
Validate that locationAttributes is not an empty array
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__LocationAttributesMustNotBeEmptyArray",
"message": "'{{field}}' must be omitted or contain at least one element; empty arrays are not allowed.",
"severity": "VIOLATION",
"context": {
"field": "locationAttributes"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.locationAttributes",
"value": "[]"
}
],
"createdDate": "2026-03-03T13:58:43.946Z"
}
}

LocationAttributesProvidedMustNotBePresent

Preconditions
locationAttributes are present
DefinitionSeverityAPISampleMode
Validate that provided is not present
VIOLATION
POST_AND_PUT
S

LocationAttributesTypeMustNotBePresent

Preconditions
locationAttributes are present
DefinitionSeverityAPISampleMode
Validate that type is not present
VIOLATION
POST_AND_PUT
S

Name

IncompatibleNameCombination

DefinitionSeverityAPISampleMode
Validate that a name is compatible with another listed name
VIOLATION
POST_AND_PUT
S

Incompatibles

NameNot Compatible With
accolades.michelin.keyaccolades.michelin.bib_gourmand, accolades.michelin.green_star
accolades.michelin.staraccolades.michelin.bib_gourmand, accolades.michelin.key
accolades.golf_digest.100_greatest_courses_in_admin_area_typeaccolades.golf_digest.2nd_100_greatest_courses_in_admin_area_type
Example Validation Report
{
"code": "VALIDATION__IncompatibleNameCombination",
"severity": "VIOLATION",
"message": "'{{name}}' is incompatible with another listed name",
"context": {
"name": "accolades.michelin.bib_gourmand"
},
"details": {
"createdDate": "2026-10-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.locationAttributes[0].name",
"value": "accolades.michelin.bib_gourmand"
},
{
"field": "$.locationDetails.locationAttributes[1].name",
"value": "accolades.michelin.star"
}
],
"compared": [],
"expected": []
}
}

LocationAttributesNameMustBeDistinct

DefinitionSeverityAPISampleMode
Validate that each name is distinct
VIOLATION
POST_AND_PUT
Link
S

LocationAttributesNameMustNotBeEmpty

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

LocationAttributesNameMustBePresent

Preconditions
locationAttributes are present
DefinitionSeverityAPISampleMode
Validate that name is present
VIOLATION
POST_AND_PUT
Link
S

LocationAttributesNameMustBeValid

DefinitionSeverityAPISampleMode
Validate that name is valid
VIOLATION
POST_AND_PUT
Link
S

LocationAttributesNameNotExpectedFromYourOrg

DefinitionSeverityAPISampleMode
Validate that a name is submitted by an expected organization
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__LocationAttributesNameNotExpectedFromYourOrg",
"severity": "VIOLATION",
"message": "Location attribute 'name' '{{value}}' is not expected from your organization",
"context": {
"value": "accolades.michelin.bib_gourmand"
},
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.locationAttributes[0].name",
"value": "accolades.michelin.bib_gourmand"
}
],
"compared": [],
"expected": []
}
}

Value

LocationAttributesValueMustBePresent

Preconditions
locationAttributes are present
DefinitionSeverityAPISampleMode
Validate that value is present
VIOLATION
POST_AND_PUT
S

LocationAttributesValueMustNotBeEmpty

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

LocationAttributesValueMustMatchAllowableItem

Preconditions
Name's allowable values are itemized
DefinitionSeverityAPISampleMode
Validate that value matches an allowed item
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__LocationAttributesValueMustMatchAllowableItem",
"severity": "VIOLATION",
"message": "'{{value}}' value does not match an item allowed for 'name'",
"context": {
"value": "NEIGHBORHOOD"
},
"details": {
"createdDate": "2026-10-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.locationAttributes[0].name",
"value": "accolades.golf_digest.best_in_admin_area_type"
},
{
"field": "$.locationDetails.locationAttributes[0].value",
"value": "NEIGHBORHOOD"
}
],
"compared": [],
"expected": []
}
}

LocationAttributesValueMustNotBeDummyCharacters

DefinitionSeverityAPISampleMode
Validate that value does not consist of dummy characters
VIOLATION
POST_AND_PUT
Link
S

LocationAttributesValueHasUnsupportedCharacter

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