Scalar rules API
The rules API from Scalar — 6 operation(s) for rules.
The rules API from Scalar — 6 operation(s) for rules.
openapi: 3.1.1
info:
title: Core access-groups rules 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: rules
paths:
/rulesets/{namespace}/{slug}:
get:
tags:
- rules
description: Get a the rule document
operationId: getrulesetsNamespaceSlug
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
patch:
tags:
- rules
description: Update rule metadata
operationId: patchrulesetsNamespaceSlug
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
isPrivate:
type: boolean
blockPublishOn:
type: string
enum:
- error
- warning
- info
- hint
- none
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:
- rules
description: Delete a specific rule
operationId: deleterulesetsNamespaceSlug
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
/rulesets/get-by-id/{uid}:
get:
tags:
- rules
description: Get a the rule document
operationId: getrulesetsGetByIdUid
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: uid
required: true
/rulesets/{namespace}:
get:
tags:
- rules
description: Get a list of all rulesets for the namespace
operationId: getrulesetsNamespace
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
required:
- uid
- title
- description
- slug
- namespace
- isPrivate
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:
- rules
description: Create a new rule for the namespace
operationId: postrulesetsNamespace
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
slug:
type: string
isPrivate:
type: boolean
blockPublishOn:
type: string
enum:
- error
- warning
- info
- hint
- none
document:
type: string
required:
- title
- slug
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: namespace
required: true
/rulesets/upload:
post:
tags:
- rules
description: Update rule content
operationId: postrulesetsUpload
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:
uid:
type: string
data:
type: string
required:
- uid
- data
additionalProperties: false
required: true
/rules/access-group:
post:
tags:
- rules
description: Adds an access group to a rule
operationId: postrulesAccessGroup
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:
- rules
description: Removes an access group from a rule
operationId: deleterulesAccessGroup
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
/rulesets/check-slug:
post:
tags:
- rules
description: Checks if a ruleset slug is available for the provided namespace
operationId: postrulesetsCheckSlug
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
components:
schemas:
namespace:
type: string
minLength: 3
maxLength: 50
pattern: ^[a-zA-Z0-9-_]+$
nanoid:
type: string
minLength: 5
'404':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'401':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
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
'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
'422':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT