All files / schemas oada.schema.cts

100% Statements 91/91
100% Branches 0/0
100% Functions 0/0
100% Lines 91/91

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 921x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * @license
 * Copyright 2022 Open Ag Data Alliance
 *
 * Use of this source code is governed by an MIT-style
 * license that can be found in the LICENSE file or at
 * https://opensource.org/licenses/MIT.
 */
 
import type { JSONSchema8 as Schema } from 'jsonschema8';
 
const schema: Schema = {
  $id: 'https://formats.openag.io/oada.schema.json',
  $schema: 'http://json-schema.org/draft-07/schema#',
  definitions: {
    link: {
      $anchor: 'link',
      definitions: {
        versioned: {
          $anchor: 'versioned',
          type: 'object',
          required: ['_rev'],
          properties: {
            _rev: {
              $ref: '#/definitions/_rev',
            },
            _id: {
              $ref: '#/definitions/_id',
            },
            _type: {
              $ref: '#/definitions/_type',
            },
          },
          additionalProperties: false,
        },
        unversioned: {
          $anchor: 'unversioned',
          type: 'object',
          required: ['_id'],
          properties: {
            _id: {
              $ref: '#/definitions/_id',
            },
            _type: {
              $ref: '#/definitions/_type',
            },
          },
          additionalProperties: false,
        },
      },
      anyOf: [
        {
          $ref: '#/definitions/link/definitions/versioned',
        },
        {
          $ref: '#/definitions/link/definitions/unversioned',
        },
      ],
    },
    _meta: {
      $comment: '_meta is a versioned link',
      description: '_meta is a link to the meta document for a resources.',
      $ref: '#/definitions/link/definitions/versioned',
    },
    _id: {
      description: '_id identifies a resource in the OADA API.',
      type: 'string',
      pattern: '^resources/.*$',
    },
    _type: {
      description:
        '_type identifies the content-type of a resource in the OADA API and             is required for all OADA-defined formats.  It usually looks like            application/vnd.oada.something.1+json.',
      type: 'string',
    },
    _rev: {
      description: '_rev is the revision for a resource in the OADA API.',
      type: 'integer',
    },
    method: {
      description: 'The request methods (a la HTTP) supported by OADA',
      enum: ['head', 'get', 'put', 'post', 'delete'],
    },
    path: {
      description: 'The representation of a path within an OADA server',
      type: 'string',
      format: 'uri-reference',
    },
  },
};
 
export = schema;