Last active
January 15, 2019 16:12
-
-
Save pjsier/a91ab6fdaf32f7035e6818ea1746f755 to your computer and use it in GitHub Desktop.
Draft City Scrapers Meeting Schema
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$id": "https://cityscrapers.org/meeting.schema.json", | |
"$schema": "http://json-schema.org/draft-07/schema#", | |
"title": "Meeting", | |
"type": "object", | |
"definitions": { | |
"locations": { | |
"type": "object", | |
"description": "A map of location IDs (only unique to the meeting) and location information", | |
"patternProperties": { | |
".*": { | |
"type": "object", | |
"properties": { | |
"name": { | |
"type": "string" | |
}, | |
"description": { | |
"type": "string" | |
}, | |
"coordinates": { | |
"type": "string" | |
}, | |
"cityscrapers.org/address": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
}, | |
"links": { | |
"type": "object", | |
"description": "A map of link IDs (only unique to the meeting) and links", | |
"properties": { | |
"cityscrapers.org/source": { | |
"type": "object", | |
"properties": { | |
"href": { | |
"type": "string", | |
"format": "uri" | |
}, | |
"title": { | |
"type": "string" | |
} | |
}, | |
"required": ["href"] | |
} | |
}, | |
"patternProperties": { | |
".*": { | |
"type": "object", | |
"properties": { | |
"href": { | |
"type": "string", | |
"format": "uri" | |
}, | |
"title": { | |
"type": "string" | |
} | |
}, | |
"required": ["href"] | |
} | |
}, | |
"required": ["cityscrapers.org/source"] | |
} | |
}, | |
"properties": { | |
"@type": { | |
"type": "string", | |
"description": "Type property as required by JSCalendar", | |
"enum": ["jsevent"] | |
}, | |
"uid": { | |
"type": "string", | |
"description": "Unique identifier, typically UUID" | |
}, | |
"title": { | |
"type": "string", | |
"description": "The title of the meeting" | |
}, | |
"updated": { | |
"type": "string", | |
"description": "When this information was last updated/scraped, required in JSCalendar", | |
"format": "date-time" | |
}, | |
"description": { | |
"type": "string", | |
"description": "A description of the specific meeting" | |
}, | |
"isAllDay": { | |
"type": "boolean", | |
"description": "Whether the meeting occurs for the entire day" | |
}, | |
"status": { | |
"type": "string", | |
"description": "The status of the meeting at the time it is scraped", | |
"enum": ["cancelled", "confirmed", "tentative", "passed"] | |
}, | |
"start": { | |
"type": "string", | |
"description": "The datetime the meeting begins in local time", | |
"format": "date-time" | |
}, | |
"timeZone": { | |
"type": "string", | |
"description": "The timezone identifier for the meeting" | |
}, | |
"duration": { | |
"type": "string", | |
"description": "The datetime the meeting ends in local time" | |
}, | |
"locations": { | |
"$ref": "#/definitions/locations" | |
}, | |
"links": { | |
"$ref": "#/definitions/links" | |
}, | |
"cityscrapers.org/id": { | |
"type": "string", | |
"description": "An ID based on the scraper slug, date and time of the meeting" | |
}, | |
"cityscrapers.org/timeNotes": { | |
"type": "string", | |
"description": "Any additional notes about the start or end times" | |
}, | |
"cityscrapers.org/agencyName": { | |
"type": "string", | |
"description": "The full name of the agency holding the meeting (i.e. Chicago Housing Authority" | |
}, | |
"cityscrapers.org/classification": { | |
"type": "string", | |
"description": "The type of meeting from the list of options", | |
"enum": [ | |
"Advisory Committee", | |
"Board", | |
"City Council", | |
"Commission", | |
"Committee", | |
"Forum", | |
"Police Beat", | |
"Not classified" | |
] | |
} | |
}, | |
"required": [ | |
"@type", | |
"uid", | |
"title", | |
"start", | |
"duration", | |
"links", | |
"cityscrapers.org/id", | |
"cityscrapers.org/agencyName" | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment