Review type validation rules for review classification and category requirements
Type
AggregateRatingDoesNotExist
| Preconditions |
|---|
Review type is USER |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that an aggregate rating is associated with the same location |
OnlyOneOfThisReviewTypeCanExist
| Preconditions |
|---|
type is CRITIC_SUMMARY |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that a CRITIC_SUMMARY review type does not already exist in any resource state except DELETED | Link |
Example Validation Report
{
"code": "VALIDATION__OnlyOneOfThisReviewTypeCanExist",
"severity": "VIOLATION",
"message": "Only one '{{value}}' review of this type can exist",
"context": {
"value": "CRITIC_SUMMARY"
},
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.reviewDetails.type",
"value": "CRITIC_SUMMARY"
}
],
"compared": [],
"expected": []
}
}
ReviewTypeMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that type matches the previous submittal |
Example Validation Report
{
"code": "VALIDATION__ReviewTypeMustNotBeUpdated",
"severity": "VIOLATION",
"message": "'{{field}}' value must not be updated",
"context": {
"field": "type"
},
"details": {
"createdDate": "2026-12-01T21:00:59.865Z",
"compared": [],
"submitted": [
{
"field": "$.reviewDetails.type",
"value": "USER"
}
],
"expected": [
{
"field": "$.reviewDetails.type",
"value": "CRITIC_SUMMARY"
}
]
}
}
ReviewTypeNotExpectedFromYourOrg
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the type of review submitted is a type that is expected from the organization |
Example Validation Report
{
"code": "VALIDATION__ReviewTypeNotExpectedFromYourOrg",
"severity": "VIOLATION",
"message": "'{{value}}' review type is not expected from your organization",
"context": {
"value": "CRITIC_SUMMARY"
},
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.reviewDetails.type",
"value": "CRITIC_SUMMARY"
}
],
"expected": [
{
"field": "$.reviewDetails.type",
"value": [
"USER"
]
}
],
"compared": []
}
}
TypeMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that type is present |
TypeMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that type value is USER or CRITIC_SUMMARY |
Example Validation Report
{
"code": "VALIDATION__TypeMustBeValid",
"severity": "VIOLATION",
"message": "'type' value '{{value}}' is not valid",
"context": {
"value": "EXPERT"
},
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.reviewDetails.type",
"value": "EXPERT"
}
],
"compared": [],
"expected": []
}
}
TypeMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that type is not an empty string |
Example Validation Report
{
"code": "VALIDATION__TypeMustNotBeEmpty",
"severity": "VIOLATION",
"message": "'type' must not be empty string"
}