Files
directus/packages/spec/specs/openapi.yaml
2020-10-12 14:05:27 -04:00

298 lines
8.9 KiB
YAML

openapi: 3.0.1
info:
title: Directus API
description: Template for generating any kind of SDK.
contact:
email: contact@directus.io
license:
name: GPL-3.0
url: "https://www.gnu.org/licenses/gpl-3.0.html"
version: 9.0.0
externalDocs:
description: Directus Docs
url: "https://docs.directus.io"
tags:
- name: Activity
description: All events that happen within Directus are tracked and stored in the activities collection. This gives you full accountability over everything that happens.
x-collection: directus_activity
- name: Assets
description: Image typed files can be dynamically resized and transformed to fit any need.
- name: Authentication
description: All events that happen within Directus are tracked and stored in the activities collection. This gives you full accountability over everything that happens.
- name: Presets
description: Presets hold the preferences of individual users of the platform. This allows Directus to show and maintain custom item listings for users of the app.
x-collection: directus_presets
- name: Collections
description: Collections are the individual collections of items, similar to tables in a database. Changes to collections will alter the schema of the database.
x-collection: directus_collections
- name: Extensions
description: Directus can easily be extended through the addition of several types of extensions, including layouts, interfaces, and modules.
- name: Fields
description: Fields are individual pieces of content within an item. They are mapped to columns in the database.
x-collection: directus_fields
- name: Files
description: Files can be saved in any given location. Directus has a powerful assets endpoint that can be used to generate thumbnails for images on the fly.
x-collection: directus_files
- name: Folders
description: Group files by virtual folders.
x-collection: directus_folders
- name: Items
description: Items are individual pieces of data in your database. They can be anything, from articles, to IoT status checks.
- name: Permissions
description: Permissions control who has access to what and when.
x-collection: directus_permissions
- name: Relations
description: What data is linked to what other data. Allows you to assign authors to articles, products to sales, and whatever other structures you can think of.
x-collection: directus_relations
- name: Revisions
description: Revisions are individual changes to items made. Directus keeps track of changes made, so you're able to revert to a previous state at will.
x-collection: directus_revisions
- name: Roles
description: Roles are groups of users that share permissions.
x-collection: directus_roles
- name: Server
description: Access to where Directus runs. Allows you to make sure your server has everything needed to run the platform, and check what kind of latency we're dealing with.
- name: Settings
description: Settings control the way the platform works and acts.
x-collection: directus_settings
- name: Users
description: Users are what gives you access to the data.
x-collection: directus_users
- name: Utilities
description: Directus comes with various utility endpoints you can use to simplify your development flow.
- name: Webhooks
description: Webhooks.
x-collection: directus_webhooks
paths:
# Activity
/activity:
$ref: "./paths/activity/activities.yaml"
/activity/comment:
$ref: "./paths/activity/activity-comments.yaml"
/activity/{id}:
$ref: "./paths/activity/activity.yaml"
/activity/comment/{id}:
$ref: "./paths/activity/activity-comment.yaml"
# Assets
/assets/{id}:
$ref: "./paths/assets/assets.yaml"
# Authentication
/auth/login:
$ref: "./paths/auth/login.yaml"
/auth/refresh:
$ref: "./paths/auth/refresh.yaml"
/auth/logout:
$ref: "./paths/auth/logout.yaml"
/auth/password/request:
$ref: "./paths/auth/password-request.yaml"
/auth/password/reset:
$ref: "./paths/auth/password-reset.yaml"
/auth/sso:
$ref: "./paths/auth/sso.yaml"
/auth/sso/{provider}:
$ref: "./paths/auth/sso-provider.yaml"
# Items
/items/{collection}:
$ref: "./paths/items/items.yaml"
/items/{collection}/{id}:
$ref: "./paths/items/item.yaml"
# Presets
/presets:
$ref: "./paths/presets/presets.yaml"
/presets/{id}:
$ref: "./paths/presets/preset.yaml"
# Collections
/collections:
$ref: "./paths/collections/collections.yaml"
/collections/{id}:
$ref: "./paths/collections/collection.yaml"
# Extensions
/extensions/interfaces:
$ref: "./paths/extensions/interfaces.yaml"
/extensions/layouts:
$ref: "./paths/extensions/layouts.yaml"
/extensions/displays:
$ref: "./paths/extensions/displays.yaml"
/extensions/modules:
$ref: "./paths/extensions/modules.yaml"
# Fields
/fields:
$ref: "./paths/fields/fields.yaml"
/fields/{collection}:
$ref: "./paths/fields/collection-fields.yaml"
/fields/{collection}/{id}:
$ref: "./paths/fields/collection-field.yaml"
# Files
/files:
$ref: "./paths/files/files.yaml"
/files/{id}:
$ref: "./paths/files/file.yaml"
/files/{id}/revisions:
$ref: "./paths/files/revisions.yaml"
/files/{id}/revisions/{offset}:
$ref: "./paths/files/revision.yaml"
# Folders
/folders:
$ref: "./paths/folders/folders.yaml"
/folders/{id}:
$ref: "./paths/folders/folder.yaml"
# Permissions
/permissions:
$ref: "./paths/permissions/permissions.yaml"
/permissions/me:
$ref: "./paths/permissions/permissions-me.yaml"
/permissions/{id}:
$ref: "./paths/permissions/permission.yaml"
# Relations
/relations:
$ref: "./paths/relations/relations.yaml"
/relations/{id}:
$ref: "./paths/relations/relation.yaml"
# Revisions
/revisions:
$ref: "./paths/revisions/revisions.yaml"
/revisions/{id}:
$ref: "./paths/revisions/revision.yaml"
# Roles
/roles:
$ref: "./paths/roles/roles.yaml"
/roles/{id}:
$ref: "./paths/roles/role.yaml"
# Server
/server/info:
$ref: "./paths/server/info.yaml"
/server/ping:
$ref: "./paths/server/ping.yaml"
# Settings
/settings:
$ref: "./paths/settings/settings.yaml"
# Users
/users:
$ref: "./paths/users/users.yaml"
/users/{id}:
$ref: "./paths/users/user.yaml"
/users/{id}/track/page:
$ref: "./paths/users/user-tracking.yaml"
/users/invite:
$ref: "./paths/users/user-invite.yaml"
/users/invite/accept:
$ref: "./paths/users/user-invite-accept.yaml"
/users/me:
$ref: "./paths/users/me.yaml"
/users/me/track/page:
$ref: "./paths/users/me-tracking.yaml"
/users/me/tfa/enable:
$ref: "./paths/users/me-tfa-enable.yaml"
/users/me/tfa/disable:
$ref: "./paths/users/me-tfa-disable.yaml"
# Utilities
/utils/hash:
$ref: "./paths/utils/hash.yaml"
/utils/hash/verify:
$ref: "./paths/utils/hash-match.yaml"
/utils/random/string:
$ref: "./paths/utils/random.yaml"
/utils/sort/{collection}:
$ref: "./paths/utils/sort.yaml"
# Webhooks
/webhooks:
$ref: "./paths/webhooks/webhooks.yaml"
/webhooks/{id}:
$ref: "./paths/webhooks/webhook.yaml"
components:
schemas:
Activity:
$ref: "./components/activity.yaml"
Presets:
$ref: "./components/preset.yaml"
Collections:
$ref: "./components/collection.yaml"
Fields:
$ref: "./components/field.yaml"
Files:
$ref: "./components/file.yaml"
Folders:
$ref: "./components/folder.yaml"
Items:
$ref: "./components/item.yaml"
Permissions:
$ref: "./components/permissions.yaml"
Relations:
$ref: "./components/relation.yaml"
Revisions:
$ref: "./components/revision.yaml"
Roles:
$ref: "./components/role.yaml"
Settings:
$ref: "./components/setting.yaml"
Users:
$ref: "./components/user.yaml"
Webhooks:
$ref: "./components/webhook.yaml"
parameters:
# All path parameters
Id:
$ref: "./parameters/id.yaml"
UUId:
$ref: "./parameters/uuid.yaml"
Collection:
$ref: "./parameters/collection.yaml"
# All query parameters
Search:
$ref: "./parameters/search.yaml"
Page:
$ref: "./parameters/page.yaml"
Offset:
$ref: "./parameters/offset.yaml"
Single:
$ref: "./parameters/single.yaml"
Sort:
$ref: "./parameters/sort.yaml"
Meta:
$ref: "./parameters/meta.yaml"
Limit:
$ref: "./parameters/limit.yaml"
Filter:
$ref: "./parameters/filter.yaml"
Fields:
$ref: "./parameters/fields.yaml"
Mode:
$ref: "./parameters/mode.yaml"
responses:
NotFoundError:
$ref: "./responses/notFoundError.yaml"
UnauthorizedError:
$ref: "./responses/unauthorizedError.yaml"
securitySchemes:
KeyAuth:
type: apiKey
in: query
name: access_token
Auth:
type: apiKey
in: header
name: "Authorization"
security:
- Auth: []
- KeyAuth: []