Scalar schemas API
The schemas API from Scalar — 7 operation(s) for schemas.
The schemas API from Scalar — 7 operation(s) for schemas.
openapi: 3.1.1
info:
title: Core access-groups schemas API
description: Core services for Scalar
version: 1.0.1
contact:
name: Marc from Scalar
url: https://scalar.com
email: support@scalar.com
security:
- BearerAuth: []
tags:
- name: schemas
paths:
/schemas/check-slug:
post:
tags:
- schemas
description: Checks if a schema slug is available
operationId: postschemasCheckSlug
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
available:
type: boolean
required:
- available
additionalProperties: false
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
namespace:
$ref: '#/components/schemas/namespace'
slug:
$ref: '#/components/schemas/slug'
required:
- namespace
- slug
additionalProperties: false
required: true
/schemas/access-group:
post:
tags:
- schemas
description: Adds an access group to a managed schema
operationId: postschemasAccessGroup
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
namespace:
type: string
slug:
type: string
groupUid:
$ref: '#/components/schemas/nanoid'
required:
- namespace
- slug
- groupUid
additionalProperties: false
required: true
delete:
tags:
- schemas
description: Removes an access group from a managed schema
operationId: deleteschemasAccessGroup
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
namespace:
type: string
slug:
type: string
groupUid:
$ref: '#/components/schemas/nanoid'
required:
- namespace
- slug
- groupUid
additionalProperties: false
required: true
/schemas/{namespace}:
get:
tags:
- schemas
description: Get a list of all schemas for the namespace
operationId: getschemasNamespace
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
uid:
default: nanoid()
$ref: '#/components/schemas/nanoid'
title:
default: ''
type: string
maxLength: 100
description:
default: ''
type: string
slug:
default: randomManagedDocSlug()
$ref: '#/components/schemas/slug'
namespace:
$ref: '#/components/schemas/namespace'
isPrivate:
default: false
type: boolean
versions:
type: array
items:
$ref: '#/components/schemas/managed-schema-version'
required:
- uid
- title
- description
- slug
- namespace
- isPrivate
- versions
additionalProperties: false
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
parameters:
- schema:
type: string
in: path
name: namespace
required: true
post:
tags:
- schemas
description: Creates a managed schema
operationId: postschemasNamespace
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
uid:
type: string
required:
- uid
additionalProperties: false
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
title:
type: string
description:
type: string
version:
$ref: '#/components/schemas/version'
slug:
type: string
isPrivate:
type: boolean
document:
type: string
required:
- title
- version
- slug
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: namespace
required: true
/schemas/{namespace}/{slug}:
patch:
tags:
- schemas
description: Update schema metadata
operationId: patchschemasNamespaceSlug
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
namespace:
type: string
slug:
type: string
title:
type: string
description:
type: string
version:
$ref: '#/components/schemas/version'
isPrivate:
type: boolean
format:
$ref: '#/components/schemas/managed-schema-format'
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: namespace
required: true
- schema:
type: string
in: path
name: slug
required: true
delete:
tags:
- schemas
description: Delete a specific schema and all of the related versions
operationId: deleteschemasNamespaceSlug
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
parameters:
- schema:
type: string
in: path
name: namespace
required: true
- schema:
type: string
in: path
name: slug
required: true
/schemas/{namespace}/{slug}/version/{semver}:
get:
tags:
- schemas
description: Get a specific schema document
operationId: getschemasNamespaceSlugVersionSemver
responses:
'200':
description: Default Response
content:
application/json:
schema: {}
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
parameters:
- schema:
type: string
in: path
name: namespace
required: true
- schema:
type: string
in: path
name: slug
required: true
- schema:
type: string
in: path
name: semver
required: true
post:
tags:
- schemas
description: Update managed schema content in GCS
operationId: postschemasNamespaceSlugVersionSemver
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
required:
- content
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: namespace
required: true
- schema:
type: string
in: path
name: slug
required: true
- schema:
type: string
in: path
name: semver
required: true
delete:
tags:
- schemas
description: Delete a specific schema version
operationId: deleteschemasNamespaceSlugVersionSemver
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
parameters:
- schema:
type: string
in: path
name: namespace
required: true
- schema:
type: string
in: path
name: slug
required: true
- schema:
type: string
in: path
name: semver
required: true
/schemas/{namespace}/{slug}/version:
post:
tags:
- schemas
description: Create a new schema version
operationId: postschemasNamespaceSlugVersion
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
uid:
type: string
required:
- uid
additionalProperties: false
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
version:
$ref: '#/components/schemas/version'
document:
type: string
required:
- version
- document
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: namespace
required: true
- schema:
type: string
in: path
name: slug
required: true
/schemas/{namespace}/{slug}/version/{version}/duplicate:
post:
tags:
- schemas
description: Duplicate schema version
operationId: postschemasNamespaceSlugVersionVersionDuplicate
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
uid:
type: string
required:
- uid
additionalProperties: false
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
version:
$ref: '#/components/schemas/version'
required:
- version
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: namespace
required: true
- schema:
type: string
in: path
name: slug
required: true
- schema:
$ref: '#/components/schemas/version'
in: path
name: version
required: true
components:
schemas:
namespace:
type: string
minLength: 3
maxLength: 50
pattern: ^[a-zA-Z0-9-_]+$
nanoid:
type: string
minLength: 5
managed-schema-version:
type: object
properties:
uid:
default: nanoid()
$ref: '#/components/schemas/nanoid'
createdAt:
default: unixTimestamp()
$ref: '#/components/schemas/timestamp'
updatedAt:
default: unixTimestamp()
$ref: '#/components/schemas/timestamp'
version:
default: 0.0.1
$ref: '#/components/schemas/version'
required:
- uid
- createdAt
- updatedAt
- version
additionalProperties: false
'401':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
version:
type: string
minLength: 1
slug:
type: string
minLength: 3
maxLength: 60
pattern: ^[a-z](?:[a-z0-9-]*[a-z0-9])?$
'500':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'404':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'400':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'403':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
timestamp:
type: integer
minimum: 0
maximum: 9007199254740991
managed-schema-format:
type: string
enum:
- json
- yaml
'422':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT