--- $schema: "http://json-schema.org/schema#" $id: "https://opendev.org/openstack/releases/src/branch/master/README.rst" contact_schema: &contact_schema type: "array" items: type: "object" required: - name - email additionalProperties: false properties: name: type: "string" irc: type: "string" email: type: "string" format: "email" minItems: 1 uniqueItems: true additionalProperties: # Do not allow any properties not defined here. This lets us catch # typos. additionalProperties: false oneOf: - required: - ptl - deliverables - url - mission - required: - leadership_type - liaisons - deliverables - url - mission properties: ptl: type: "object" required: - name - email additionalProperties: false properties: name: type: "string" irc: type: "string" email: type: "string" format: "email" leadership_type: type: "string" enum: - distributed appointed: type: "array" items: type: "string" irc-channel: type: "string" service: type: "string" url: type: "string" liaisons: type: "object" properties: tc_members: type: "array" items: type: "string" uniqueItems: true # TODO(gmann): Make release, tact-sig, # and, security liaison as required for # distributed leadership type. release: *contact_schema tact-sig: *contact_schema security: *contact_schema tc-liaison: *contact_schema events: *contact_schema project_update_onboarding: *contact_schema meeting_facilitator: *contact_schema bug_deputy: *contact_schema rfp_coordinator: *contact_schema additionalProperties: false mission: type: "string" deliverables: type: "object" additionalProperties: type: "object" required: - repos additionalProperties: false properties: repos: type: "array" items: type: "string" pattern: "^[^/]+/[^/]+$" minItems: 1 uniqueItems: true release-management: type: "string" enum: - none - deprecated - external deprecated: type: "string" extra-acs: type: "array" items: type: "object" required: - name - email - expires-in additionalProperties: false properties: name: type: "string" email: type: "string" format: "email" expires-in: type: "string" pattern: >- ^(January |February |March |April |May |June |July |August |September |October |November |December )2[0-9]{3}$ comment: type: "string"