title: A JSON Schema for the Google API Discovery Format. id: http://openapis.org/v3/schema.json# $schema: http://json-schema.org/draft-04/schema# type: object description: This is the root document object of the Discovery Format. required: - kind - discoveryVersion additionalProperties: false properties: kind: type: string discoveryVersion: type: string id: type: string name: type: string version: type: string revision: type: string title: type: string description: type: string icons: $ref: '#/definitions/icons' documentationLink: type: string labels: type: array items: type: string protocol: type: string baseUrl: type: string basePath: type: string rootUrl: type: string servicePath: type: string batchPath: type: string parameters: $ref: '#/definitions/parameters' auth: $ref: '#/definitions/auth' features: type: array items: type: string schemas: $ref: '#/definitions/schemas' methods: $ref: '#/definitions/methods' resources: $ref: '#/definitions/resources' etag: type: string ownerDomain: type: string ownerName: type: string version_module: type: boolean canonicalName: type: string fullyEncodeReservedExpansion: type: boolean packagePath: type: string definitions: icons: type: object description: Icons that represent the API. required: - x16 - x32 additionalProperties: false properties: x16: type: string x32: type: string parameters: type: object additionalProperties: $ref: '#/definitions/parameter' parameter: type: object properties: id: type: string type: type: string $ref: type: string description: type: string default: type: string required: type: boolean format: type: string pattern: type: string minimum: type: string maximum: type: string enum: type: array items: type: string enumDescriptions: type: array items: type: string repeated: type: boolean location: type: string properties: $ref: '#/definitions/schemas' additionalProperties: $ref: '#/definitions/schema' items: $ref: '#/definitions/schema' annotations: $ref: '#/definitions/annotations' auth: type: object properties: oauth2: type: object properties: scopes: $ref: '#/definitions/scopes' schemas: type: object additionalProperties: $ref: '#/definitions/schema' schema: type: object properties: id: type: string type: type: string description: type: string default: type: string required: type: boolean format: type: string pattern: type: string minimum: type: string maximum: type: string enum: type: array items: type: string enumDescriptions: type: array items: type: string repeated: type: boolean location: type: string properties: $ref: '#/definitions/schemas' additionalProperties: $ref: '#/definitions/schema' items: $ref: '#/definitions/schema' $ref: type: string annotations: $ref: '#/definitions/annotations' readOnly: type: boolean methods: type: object additionalProperties: $ref: '#/definitions/method' method: type: object properties: id: type: string path: type: string httpMethod: type: string description: type: string parameters: $ref: '#/definitions/parameters' parameterOrder: type: array items: type: string request: type: object properties: $ref: type: string parameterName: type: string response: type: object properties: $ref: type: string scopes: type: array items: type: string supportsMediaDownload: type: boolean supportsMediaUpload: type: boolean useMediaDownloadService: type: boolean mediaUpload: $ref: '#/definitions/mediaUpload' supportsSubscription: type: boolean flatPath: type: string etagRequired: type: boolean resources: type: object additionalProperties: $ref: '#/definitions/resource' resource: type: object properties: methods: $ref: '#/definitions/methods' resources: $ref: '#/definitions/resources' annotations: type: object properties: required: type: array items: type: string scopes: type: object additionalProperties: $ref: '#/definitions/scope' scope: type: object properties: description: type: string mediaUpload: type: object properties: accept: type: array items: type: string maxSize: type: string protocols: type: object properties: simple: type: object properties: multipart: type: boolean path: type: string resumable: type: object properties: multipart: type: boolean path: type: string supportsSubscription: type: boolean