changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": false,
+ "anyOf": [
+ {
+ "required": [
+ "subject",
+ "depth",
+ "dates",
+ "staleAfterHours",
+ "freshness",
+ "days",
+ "alert",
+ "source",
+ "checkedAt"
+ ]
+ },
+ {
+ "required": [
+ "found"
+ ]
+ },
+ {
+ "required": [
+ "past"
+ ]
+ }
+ ],
+ "description": "PermitSnag's recorded checks of one permit or campground on the asked dates, each with its age. Not a live look at the booking site. Or found: false, or past: true.",
+ "properties": {
+ "alert": {
+ "additionalProperties": false,
+ "properties": {
+ "available": {
+ "description": "True only when PermitSnag can send an alert for this place right now.",
+ "type": "boolean"
+ },
+ "pageUrl": {
+ "description": "The PermitSnag page where an alert is set up, or where to read what to do instead.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "Why an alert is or is not on offer.",
+ "enum": [
+ "eligible",
+ "lottery_period",
+ "out_of_season",
+ "closed",
+ "no_quota_now",
+ "lottery_draw_only",
+ "not_sold_online",
+ "not_tracked"
+ ]
+ }
+ },
+ "required": [
+ "available",
+ "reason",
+ "pageUrl"
+ ],
+ "type": "object"
+ },
+ "checkedAt": {
+ "type": "string"
+ },
+ "dates": {
+ "additionalProperties": false,
+ "properties": {
+ "calendar": {
+ "const": "local_day"
+ },
+ "end": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "start",
+ "end",
+ "calendar"
+ ],
+ "type": "object"
+ },
+ "days": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "ageMinutes": {
+ "description": "Minutes since that check.",
+ "type": "integer"
+ },
+ "date": {
+ "description": "YYYY-MM-DD, the place's own local calendar day.",
+ "type": "string"
+ },
+ "lastSeenState": {
+ "description": "For a stale date: what that old check saw.",
+ "enum": [
+ "observed_opening",
+ "observed_no_match"
+ ]
+ },
+ "observedAt": {
+ "description": "When the check behind an observed or stale state was made, ISO 8601.",
+ "type": "string"
+ },
+ "openSites": {
+ "description": "Campgrounds at site level only: sites seen open.",
+ "type": "integer"
+ },
+ "releaseKind": {
+ "enum": [
+ "lottery",
+ "reservations",
+ null
+ ]
+ },
+ "releasesOn": {
+ "description": "For an unreleased date: the sourced day it goes on sale, when known.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "description": "What PermitSnag recorded for this date. unknown is never sold out.",
+ "enum": [
+ "observed_opening",
+ "observed_no_match",
+ "stale",
+ "unknown",
+ "unreleased",
+ "off_season",
+ "closed",
+ "unsupported"
+ ]
+ }
+ },
+ "required": [
+ "date",
+ "state"
+ ],
+ "type": "object"
+ },
+ "maxItems": 62,
+ "type": "array"
+ },
+ "depth": {
+ "enum": [
+ "permit_level",
+ "site_level",
+ "campground_level"
+ ]
+ },
+ "found": {
+ "const": false,
+ "description": "Present, and false, only when nothing matched."
+ },
+ "freshness": {
+ "additionalProperties": false,
+ "properties": {
+ "band": {
+ "enum": [
+ "none",
+ "recent",
+ "stale"
+ ]
+ },
+ "newestObservedAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "oldestObservedAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "band",
+ "newestObservedAt",
+ "oldestObservedAt"
+ ],
+ "type": "object"
+ },
+ "partialScope": {
+ "description": "Permits only: true when our checks may cover only some zones or entry points, so no date is called \"no opening\".",
+ "type": "boolean"
+ },
+ "past": {
+ "const": true,
+ "description": "Present only when every asked date has passed."
+ },
+ "publicDelayMinutes": {
+ "description": "Permits only: dates are described as they stood this many minutes ago.",
+ "type": "number"
+ },
+ "scanRoute": {
+ "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none.",
+ "enum": [
+ "direct",
+ "via_zone",
+ "via_children",
+ "none",
+ null
+ ]
+ },
+ "source": {
+ "const": "permitsnag_recorded_checks"
+ },
+ "staleAfterHours": {
+ "description": "A check older than this is reported as stale.",
+ "type": "number"
+ },
+ "subject": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "permit",
+ "campground"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "pageUrl": {
+ "type": "string"
+ },
+ "slug": {
+ "description": "Permits only.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "id",
+ "name",
+ "pageUrl"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+}