Skip to main content

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

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": []
}
}