databag/api.oa3
2021-12-31 12:23:30 -08:00

3596 lines
91 KiB
Plaintext

openapi: 3.0.0
info:
description: |
DataBag provides storage for decentralized identity based self-hosting apps.
It is intended to support sharing of personal data and hosting group
conversations.
version: "0.0.1"
title: DataBag
contact:
email: roland.osborne@gmail.com
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
tags:
- name: revision
description: websocket endpoint for receiving module revision events
- name: admin
description: account creation for portal backend.
- name: account
description: account configuration for portal backend. supports app attachment
- name: authenticate
description: authenticate holder of identity for external service
- name: profile
description: getting and setting of the public profile
- name: share
description: access control for personal subjects, associates content and cards
- name: contact
description: connection to other identities, hook receiver
- name: content
description: posting and listing of personal subjects, group and tag managment
- name: converstaion
description: group sharing of subjects
paths:
# Concetps:
## access tokens for bearer auth:prefix for bearer tokens types
### app: app_
### contact: cnt_
### pass code: pas_
### account reset: res_
### account create: act_
## subject based content provides external definition of datatypes
/revision:
get:
tags:
- revision
description: Websocket placeholder endpoint for receiving revision updates
operationId: websocket
responses:
'200':
description: Awaiting announce
/admin/claimable:
get:
tags:
- admin
description: Check if portal params have been set
operationId: node-configurable
responses:
'200':
description: success
'405':
description: admin already configured
'500':
description: internal server error
/admin/config:
post:
tags:
- admin
description: Set admin password and node domain
operationId: add-node-config
security:
- basicAuth: []
parameters:
- name: domain
in: query
description: domain of node
required: true
schema:
type: string
responses:
'200':
description: success
'405':
description: admin already configured
'500':
description: internal server error
/admin/config/domain:
put:
tags:
- admin
description: Set portal domain
operationId: set-node-config-domain
security:
- basicAuth: []
responses:
'200':
description: success
'401':
description: authentication error
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: string
/admin/token:
put:
tags:
- admin
description: Create password reset token url
operationId: set-node-account
security:
- basicAuth: []
parameters:
- name: guid
in: query
description: id of profile to access
required: true
schema:
type: string
responses:
'201':
description: generated
content:
application/json:
schema:
type: string
'401':
description: invalid password
'404':
description: unknown portal
'500':
description: internal server error
post:
tags:
- admin
description: Create new account token url
operationId: add-node-account
security:
- basicAuth: []
responses:
'201':
description: generated
content:
application/json:
schema:
type: string
'401':
description: invalid password
'500':
description: internal server error
/admin/accounts:
get:
tags:
- admin
description: Get list of portals
operationId: get-node-accounts
security:
- basicAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Profile'
'401':
description: invalid password
'404':
description: handle not found
'500':
description: internal server error
/admin/accounts/{guid}:
delete:
tags:
- admin
description: Remove account from node
operationId: remove-node-account
security:
- basicAuth: []
parameters:
- name: guid
in: path
description: id of account to delete
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid authentication
'404':
description: account not found
'500':
description: internal server error
/admin/accounts/{guid}/image:
get:
tags:
- admin
description: Get profile of specified account
operationId: get-node-account-image
security:
- basicAuth: []
parameters:
- name: guid
in: path
description: id of specified account
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/octet-stream:
schema:
type: string
format: binary
'401':
description: invalid password
'404':
description: account not found
'500':
description: internal server error
/account/claimable:
get:
tags:
- account
description: Check if username is available
operationId: check-username
security:
- bearerAuth: []
parameters:
- name: username
in: query
description: username to check
required: true
schema:
type: string
responses:
'200':
description: success
'401':
description: authentication error
'405':
description: username already taken
'500':
description: internal server error
/account/token:
get:
tags:
- account
description: Check if bearer token is valid
operationId: check-token
security:
- bearerAuth: []
responses:
'200':
description: success
'401':
description: invalid token
'500':
description: internal server error
/account/profile:
get:
tags:
- account
description: Get public profile object
operationId: get-account-profile
security:
- basicAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
'401':
description: authentication error
'500':
description: internal server error
post:
tags:
- account
description: Add a new account
operationId: add-account
security:
- bearerAuth: []
- basicAuth: []
responses:
'201':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
'400':
description: invalid handle or password
'401':
description: invalid bearer token
'500':
description: internal server error
/account/authentication:
post:
tags:
- account
description: Generate token to reset authentication
operationId: add-account-authentication
security:
- basicAuth: []
responses:
'201':
description: generated
content:
application/json:
schema:
type: string
'401':
description: invalid password
'500':
description: internal server error
put:
tags:
- account
description: Apply account reset token to set handle and password
operationId: set-account-authentication
security:
- bearerAuth: []
- basicAuth: []
responses:
'201':
description: successful operation
'401':
description: invalid token
'406':
description: invalid handle or password
'500':
description: internal server error
/account/attachment:
post:
tags:
- account
description: Generate token to attach an app to the account
operationId: add-account-app
security:
- basicAuth: []
responses:
'201':
description: generated
content:
application/json:
schema:
type: string
'401':
description: invalid password
'500':
description: internal server error
put:
tags:
- account
description: Apply the app token and attach an app to the account
operationId: set-account-app
security:
- bearerAuth: []
responses:
'201':
description: generated
content:
application/json:
schema:
type: string
'401':
description: invalid token
'406':
description: app limit reached
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AppData'
/account/apps:
get:
tags:
- account
description: Get list of attached apps
operationId: get-account-apps
security:
- basicAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/App'
'401':
description: invalid password
'500':
description: internal server error
/account/apps/{appId}:
delete:
tags:
- account
description: Get list of attached apps
operationId: remove-account-app
security:
- basicAuth: []
parameters:
- name: appId
in: path
description: specified app id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid password
'404':
description: app not found
'500':
description: internal server error
/authenticate:
put:
tags:
- authenticate
description: Sign payload containing external token for authentication
operationId: authenticate
security:
- bearerAuth: []
parameters:
- name: token
in: query
description: token to sign in message response
required: true
schema:
type: string
responses:
'201':
description: generated
content:
application/json:
schema:
$ref: '#/components/schemas/DataMessage'
'401':
description: invalid token
'500':
description: internal server error
/profile:
get:
tags:
- profile
description: Get profile view object
operationId: get-profile
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
'401':
description: invalid token
'500':
description: internal server error
put:
tags:
- profile
description: Set profile data
operationId: set-profile
security:
- bearerAuth: []
responses:
'200':
description: successful operation
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileData'
/profile/image:
get:
tags:
- profile
description: Get profile image
operationId: get-profile-image
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/octet-stream:
schema:
type: string
format: binary
'401':
description: invalid token
'500':
description: internal server error
/profile/message:
get:
tags:
- profile
description: Get profile message
operationId: get-profile-message
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DataMessage'
'401':
description: invalid token
'500':
description: internal server error
/share/groups:
get:
tags:
- share
description: Get groups for sharing
operationId: get-share-groups
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Group'
'401':
description: invalid token
'500':
description: internal server error
post:
tags:
- share
description: Add a group for sharing
operationId: add-share-group
security:
- bearerAuth: []
responses:
'201':
description: entry created
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: string
/share/groups/{groupId}:
put:
tags:
- share
description: Update group for sharing
operationId: update-share-group
security:
- bearerAuth: []
parameters:
- name: groupId
in: path
description: specified group id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: string
delete:
tags:
- share
description: Get groups for sharing
operationId: remove-share-group
security:
- bearerAuth: []
parameters:
- name: groupId
in: path
description: specified group id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid token
'500':
description: internal server error
/contact/cards:
post:
tags:
- contact
description: Add card entry
operationId: add-contact-card
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/card'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
/contact/cards/view:
get:
tags:
- contact
description: Get list of cards
operationId: get-contact-cards
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/cardView'
'401':
description: invalid password
'500':
description: internal server error
/contact/cards/{cardId}:
get:
tags:
- contact
description: Get card entry
operationId: get-contact-card
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/card'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
delete:
tags:
- contact
description: Remove card entry
operationId: remove-contact-card
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
/contact/cards/{cardId}/status:
put:
tags:
- contact
description: Update card status
operationId: set-contact-card-status
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
- name: token
in: query
description: token for accessing card
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardData'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: string
enum: [ pending, confirmed, connecting, connected ]
/contact/cards/{cardId}/openMessage:
get:
tags:
- contact
description: Get message for opening card connection
operationId: get-contact-open-message
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DataMessage'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
put:
tags:
- contact
description: Set message for opening card connection
operationId: set-contact-open-message
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardStatus'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DataMessage'
/contact/cards/{cardId}/closeMessage:
get:
tags:
- contact
description: Get message for closing card connection
operationId: get-contact-close-message
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DataMessage'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
put:
tags:
- contact
description: Set message for closing card connection
operationId: set-contact-close-message
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardStatus'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DataMessage'
/contact/cards/{cardId}/profile:
get:
tags:
- contact
description: Get profile of card entry
operationId: get-contact-profile
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardProfile'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
put:
tags:
- contact
description: Set profile of card entry
operationId: set-contact-profile
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardProfile'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
/contact/cards/{cardId}/data:
get:
tags:
- contact
description: Get data of card entry
operationId: get-contact-data
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardData'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
/contact/cards/{cardId}/notes:
put:
tags:
- contact
description: Update card notes
operationId: set-contact-card-notes
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardData'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: string
delete:
tags:
- contact
description: Clear card notes
operationId: clear-contact-card-notes
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardData'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
/contact/cards/{cardId}/shares/{shareId}:
put:
tags:
- contact
description: Update card notes
operationId: set-contact-card-share
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
- name: shareId
in: path
description: specified share id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardData'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
delete:
tags:
- contact
description: Clear card share group
operationId: clear-contact-card-share
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
- name: shareId
in: path
description: specified share id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/cardData'
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
/contact/blocked:
get:
tags:
- contact
description: Get list of blocked cards
operationId: get-contact-blocked-cards
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: string
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
/contact/blocked/{cardId}:
post:
tags:
- contact
description: Add card from blocked list
operationId: add-contact-blocked-card
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
delete:
tags:
- contact
description: Remove card from blocked list
operationId: remove-contact-blocked-card
security:
- bearerAuth: []
parameters:
- name: cardId
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid password
'404':
description: not found
'500':
description: internal server error
/contact/profile/revision:
put:
tags:
- contact
description: Hook receiver for card profile revision updates
operationId: revision-profile-hook
security:
- bearerAuth: []
responses:
'200':
description: revision set
'401':
description: not authorized
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: integer
format: int64
/contact/content/revision:
put:
tags:
- contact
description: Hook receiver for card content revision updates
operationId: revision-content-hook
security:
- bearerAuth: []
responses:
'200':
description: revision set
'401':
description: not authorized
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: integer
format: int64
/content/articleBlocks/view:
get:
tags:
- content
description: Get view of content blocks
operationId: get-article-block-view
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: invalid password
'500':
description: internal server error
/content/articleBlocks/{blockId}:
get:
tags:
- content
description: Get articles from specified block
operationId: get-article-block
security:
- bearerAuth: []
parameters:
- name: blockId
in: path
description: specified group id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Article'
'401':
description: invalid password
'500':
description: internal server error
/content/articleBlocks/{blockId}/view:
get:
tags:
- content
description: Get view articles in content block
operationId: get-article-view
security:
- bearerAuth: []
parameters:
- name: blockId
in: path
description: specified group id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: invalid password
'500':
description: internal server error
/content/articles:
post:
tags:
- content
description: Add an content article
operationId: add-article
security:
- bearerAuth: []
responses:
'201':
description: entry created
content:
application/json:
schema:
type: object
properties:
blockId:
type: string
blockRevision:
type: integer
format: int64
article:
$ref: '#/components/schemas/Article'
'401':
description: invalid token
'500':
description: internal server error
/content/articles/{articleId}:
get:
tags:
- content
description: Get specified article
operationId: get-article
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Article'
'401':
description: invalid password
'500':
description: internal server error
delete:
tags:
- content
description: Remove specified article
operationId: remove-article
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid password
'500':
description: internal server error
/content/articles/{articleId}/subject:
put:
tags:
- content
description: Add an content article
operationId: update-content-article
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
responses:
'201':
description: entry created
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: object
required:
- type
- data
properties:
type:
type: string
data:
type: string
/content/articles/{articleId}/groups/{groupId}:
post:
tags:
- content
description: set sharing group for article
operationId: set-article-group
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: groupId
in: path
description: specified share group id
required: true
schema:
type: string
responses:
'200':
description: entry set
'401':
description: invalid token
'500':
description: internal server error
delete:
tags:
- content
description: clear sharing group for article
operationId: clear-article-group
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: groupId
in: path
description: specified share id
required: true
schema:
type: string
responses:
'200':
description: entry removed
'401':
description: invalid token
'500':
description: internal server error
/content/articles/{articleId}/labels/{labelId}:
post:
tags:
- content
description: set orginizational label for article
operationId: set-article-label
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: labelId
in: path
description: specified label id
required: true
schema:
type: string
responses:
'200':
description: entry set
'401':
description: invalid token
'500':
description: internal server error
delete:
tags:
- content
description: clear orginizationl label for article
operationId: clear-article-label
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: labelId
in: path
description: specified label id
required: true
schema:
type: string
responses:
'200':
description: entry cleared
'401':
description: invalid token
'500':
description: internal server error
/content/articles/{articleId}/tagBlocks/view:
get:
tags:
- content
description: Get view tag blocks in article
operationId: get-article-tag-block-view
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: invalid password
'500':
description: internal server error
/content/articles/{articleId}/tagBlocks/{blockId}/view:
get:
tags:
- content
description: Get view tag blocks in article
operationId: get-tag-view
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: blockId
in: path
description: specified block id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: invalid password
'500':
description: internal server error
/content/articles/{articleId}/tagBlocks/{blockId}:
get:
tags:
- content
description: Get tags from specified block
operationId: get-tag-block
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: blockId
in: path
description: specified block id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: invalid password
'500':
description: internal server error
/content/articles/{articleId}/tags:
post:
tags:
- content
description: Add an content article
operationId: add-article-tag
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
responses:
'201':
description: entry created
content:
application/json:
schema:
type: object
properties:
blockId:
type: string
blockRevision:
type: integer
format: int64
tag:
$ref: '#/components/schemas/Tag'
'401':
description: invalid token
'500':
description: internal server error
/content/articles/{articleId}/tags/{tagId}:
get:
tags:
- content
description: Add an content article
operationId: get-article-tag
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: tagId
in: path
description: specified tag id
required: true
schema:
type: string
responses:
'201':
description: entry created
content:
application/json:
schema:
$ref: '#/components/schemas/Tag'
'401':
description: invalid token
'404':
description: tag not found
'500':
description: internal server error
delete:
tags:
- content
description: Add an content article
operationId: remove-article-tag
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: tagId
in: path
description: specified tag id
required: true
schema:
type: string
responses:
'200':
description: entry removed
'401':
description: invalid token
'404':
description: tag not found
'500':
description: internal server error
/content/articles/{articleId}/assets:
get:
tags:
- content
description: Get assets attached to article
operationId: get-article-assets
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
responses:
'201':
description: entry created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Asset'
'401':
description: invalid token
'500':
description: internal server error
post:
tags:
- content
description: Add an content article
operationId: add-article-asset
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: transforms
in: query
description: transforms to apply
required: false
schema:
type: array
items:
type: string
responses:
'201':
description: entry created
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
fileName:
type: string
format: binary
/content/articles/{articleId}/assets/{assetId}:
get:
tags:
- content
description: Get asset attached to article
operationId: get-article-asset
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: assetId
in: path
description: specified asset id
required: true
schema:
type: string
responses:
'200':
description: article attachment
content:
application/octet-stream: #asset specific
schema:
type: string
format: binary
'401':
description: invalid token
'404':
description: asset not found
'500':
description: internal server error
delete:
tags:
- content
description: Remove asset attached to article
operationId: remove-article-asset
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
- name: assetId
in: path
description: specified asset id
required: true
schema:
type: string
responses:
'200':
description: article attachment
content:
application/octet-stream: #asset specific
schema:
type: string
format: binary
'401':
description: invalid token
'404':
description: asset not found
'500':
description: internal server error
/content/articles/{articleId}/confirmed:
put:
tags:
- content
description: set confirmed state of article
operationId: set-article-confirmed
security:
- bearerAuth: []
parameters:
- name: articleId
in: path
description: specified article id
required: true
schema:
type: string
responses:
'200':
description: entry set
'401':
description: invalid token
'404':
description: article not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: boolean
/content/labels:
get:
tags:
- content
description: Get labels for organization
operationId: get-content-labels
security:
- bearerAuth: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Label'
'401':
description: invalid token
'500':
description: internal server error
post:
tags:
- content
description: Add a label for organization
operationId: add-content-label
security:
- bearerAuth: []
responses:
'201':
description: entry created
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: string
/content/labels/{labelId}:
put:
tags:
- content
description: Update label for organization
operationId: update-content-label
security:
- bearerAuth: []
parameters:
- name: labelId
in: path
description: specified group id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: string
delete:
tags:
- content
description: Remove organizational label
operationId: remove-content-label
security:
- bearerAuth: []
parameters:
- name: labelId
in: path
description: specified label id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: invalid token
'500':
description: internal server error
# /conversation/dialogues/{dialogueId}/sync - s
# /conversation/dialogues/{dialogueId}/insights/{guid} - a,d
# /conversation/insights/{dialogueId} a,d
/conversation/dialogues:
get:
tags:
- conversation
description: Retrieve all dialogues.
operationId: get-dialogues
security:
- bearerAuth: []
responses:
'200':
description: success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Dialogue'
'401':
description: invalid token
'500':
description: internal server error
post:
tags:
- conversation
description: Add a new dialogue.
operationId: add-dialogue
security:
- bearerAuth: []
responses:
'200':
description: success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Dialogue'
'401':
description: invalid token
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/subject:
put:
tags:
- conversation
description: Set dialogue subject
operationId: set-dialogue-subject
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
responses:
'201':
description: entry created
'401':
description: invalid token
'404':
description: not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: object
required:
- type
- data
properties:
type:
type: string
data:
type: string
/conversation/dialogues/{dialogueId}/active:
put:
tags:
- conversation
description: Set dialogue active state
operationId: set-dialogue-active
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
responses:
'200':
description: success
'401':
description: invalid token
'404':
description: not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: boolean
/conversation/dialogues/{dialogueId}/insight/{guid}:
post:
tags:
- conversation
description: Assign a card to have insight into the conversation
operationId: add-card-insight
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: guid
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: entry set
'401':
description: invalid token
'404':
description: id not found
'500':
description: internal server error
delete:
tags:
- conversation
description: Remove insight from the specified card
operationId: remove-card-insight
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: guid
in: path
description: specified card id
required: true
schema:
type: string
responses:
'200':
description: entry cleared
'401':
description: invalid token
'404':
description: id not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}:
delete:
tags:
- conversation
description: Remove dialogue
operationId: remove-dialogue
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
responses:
'200':
description: entry removed
'401':
description: invalid token
'404':
description: not found
'500':
description: internal server error
/conversation/insights:
get:
tags:
- conversation
description: Retrieve all insights.
operationId: get-insights
security:
- bearerAuth: []
responses:
'200':
description: success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Insight'
'401':
description: invalid token
'500':
description: internal server error
/conversation/insights/{guid}/dialogues/{dialogueId}:
post:
tags:
- conversation
description: Hook receiver for adding an insight and/or updating the dialog revision
operationId: add-insight-hook
security:
- bearerAuth: []
parameters:
- name: guid
in: path
description: id of card hosting the dialogue
required: true
schema:
type: string
- name: dialogueId
in: path
description: dialogue with insight id to update
required: true
schema:
type: string
responses:
'200':
description: revision set
'401':
description: not authorized
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: integer
format: int64
delete:
tags:
- conversation
description: Hook receiver for removing an insight
operationId: remove-insight-hook
security:
- bearerAuth: []
parameters:
- name: guid
in: path
description: id of card hosting the dialogue
required: true
schema:
type: string
- name: dialogueId
in: path
description: insight id to update
required: true
schema:
type: string
responses:
'200':
description: revision set
'401':
description: not authorized
'500':
description: internal server error
/conversation/insights/{guid}/dialogues/{dialogueId}/active:
post:
tags:
- conversation
description: Change active state of insight
operationId: set-insight-active
security:
- bearerAuth: []
parameters:
- name: guid
in: path
description: id of card hosting the dialogue
required: true
schema:
type: string
- name: dialogueId
in: path
description: dialogue with insight id to update
required: true
schema:
type: string
responses:
'200':
description: success
'401':
description: permission denied
'404':
description: dialogue or guid not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: boolean
/conversation/dialogues/{dialogueId}/topicBlocks/view:
get:
tags:
- conversation
description: Get a view of the topicBlocks within a dialogue. Authorization granted to account holder app token or dialogue member contact token who is also a member of the dialogue
operationId: get-topic-block-view
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
responses:
'200':
description: success
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: permission denied
'404':
description: dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topicBlocks/{blockId}:
get:
tags:
- conversation
description: Get the topics within a topicBlock. Only the account holder and the topic creator will retrieve pending topics. Authorization granted to account holder app token or dialogue member contact token who is also a member of the dialogue
operationId: get-topic-block
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: blockId
in: path
description: specified group id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Topic'
'401':
description: permission denied
'404':
description: block or dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topicBlocks/{blockId}/view:
get:
tags:
- conversation
description: Get a view of the topics within a topicBlock. Authorization granted to account holder app token or dialogue member contact token who is also a member of the dialogue.
operationId: get-topic-view
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: blockId
in: path
description: specified group id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: permission denied
'404':
description: block or dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topics:
post:
tags:
- conversation
description: Add a topic to a dialogue. The response contains the topicBlock ID and topicBlock revision to which the topic is assigned. Authorization granted to account holder app token or dialogue member contact token who is a member of the dialogue.
operationId: add-dialogue-topic
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
responses:
'201':
description: entry created
content:
application/json:
schema:
type: object
properties:
blockId:
type: string
blockRevision:
type: integer
format: int64
topic:
$ref: '#/components/schemas/Topic'
'401':
description: permission denied
'404':
description: dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topics/{topicId}:
get:
tags:
- conversation
description: Retrieve a specified dialogue topic. Authorization granted to account holder app token or dialogue member contact token who is a member of the dialogue.
operationId: get-dialogue-topic
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Topic'
'401':
description: permission denied
'404':
description: topic or dialogue not found
'500':
description: internal server error
delete:
tags:
- conversation
description: Remove a topic from a dialogue. Authorization granted to account holder app token or dialogue member contact token who is either the topic createor or the account holder.
operationId: remove-dialogue-topic
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
responses:
'200':
description: successful operation
'401':
description: permission denied
'404':
description: topic or dilaogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topics/{topicId}/subject:
put:
tags:
- conversation
description: Set the subject for a topic. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
operationId: set-topic-subject
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
responses:
'201':
description: entry created
'401':
description: invalid token
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: object
required:
- type
- data
properties:
type:
type: string
data:
type: string
/conversation/dialogues/{dialogueId}/{topicId}/tagBlocks/view:
get:
tags:
- conversation
description: Get a view of all of the tags within a block. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
operationId: get-topic-tag-block-view
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: permission denied
'404':
description: topic or dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/{topicId}/tagBlocks/{blockId}/view:
get:
tags:
- conversation
description: Get a view of all of the tags within a block. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
operationId: get-topic-tag-view
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
- name: blockId
in: path
description: specified block id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
revision:
type: integer
format: int64
'401':
description: permission denied
'404':
description: block, topic or dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topics/{topicId}/tagBlocks/{blockId}:
get:
tags:
- conversation
description: Get all of the tags within a tag block. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
operationId: get-topic-tag-block
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
- name: blockId
in: path
description: specified block id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tag'
'401':
description: permission denied
'404':
description: block, topic, or dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topics/{topicId}/tags:
post:
tags:
- conversation
description: Add a tag to specified topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic. The body of the post contains the subject of the tag, which can have no associated assets.
operationId: add-conversation-topic-tag
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
responses:
'201':
description: entry created
content:
application/json:
schema:
type: object
properties:
blockId:
type: string
blockRevision:
type: integer
format: int64
tag:
$ref: '#/components/schemas/Tag'
'401':
description: permission denied
'404':
description: topic or dialogue not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: object
required:
- type
- data
properties:
type:
type: string
data:
type: string
/conversation/dialogues/{dialogueId}/topics/{topicId}/tags/{tagId}:
get:
tags:
- conversation
description: Retrieve specified tag on the topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
operationId: get-topic-tag
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
- name: tagId
in: path
description: specified tag id
required: true
schema:
type: string
responses:
'201':
description: success
content:
application/json:
schema:
$ref: '#/components/schemas/Tag'
'401':
description: permission denied
'404':
description: tag, topic, or dialogue not found
'500':
description: internal server error
delete:
tags:
- conversation
description: Remove specified tag from the topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
operationId: remove-topic-tag
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
- name: tagId
in: path
description: specified tag id
required: true
schema:
type: string
responses:
'200':
description: success
'401':
description: permission denied
'404':
description: tag, topic, or dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topics/{topicId}/assets:
get:
tags:
- conversation
description: Get all assets associated with the specified topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
operationId: get-topic-assets
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
responses:
'201':
description: success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Asset'
'401':
description: permission denied
'404':
description: topic or dialogue not found
'500':
description: internal server error
post:
tags:
- conversation
description: Add an asset to a topic. The asset will be processed and transcoded according to the specified transformation. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
operationId: add-topic-asset
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
- name: transforms
in: query
description: transforms to apply
required: false
schema:
type: array
items:
type: string
responses:
'201':
description: success
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
'401':
description: permission denied
'404':
description: topic or dialogue not found
'500':
description: internal server error
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
fileName:
type: string
format: binary
/conversation/dialogues/{dialogueId}/topics/{topicId}/assets/{assetId}:
get:
tags:
- conversation
description: Retrieve an asset associated with a topic. All transformed assets can be retrieved by anyone with access to the topic, but the original asset can only be retrieved by the author of the topic. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
operationId: get-topic-asset
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
- name: assetId
in: path
description: specified asset id
required: true
schema:
type: string
responses:
'200':
description: success
content:
application/octet-stream: #asset specific
schema:
type: string
format: binary
'401':
description: permission denied
'404':
description: asset, topic or dialogue not found
'500':
description: internal server error
delete:
tags:
- conversation
description: Remove and delete an asset associated with a topic. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
operationId: remove-topic-asset
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
- name: assetId
in: path
description: specified asset id
required: true
schema:
type: string
responses:
'200':
description: success
'401':
description: permission denied
'404':
description: asset, topic or dialogue not found
'500':
description: internal server error
/conversation/dialogues/{dialogueId}/topics/{topicId}/confirmed:
put:
tags:
- conversation
description: After the assets have been uploaded and the subject has been set, the topic should be set to confirmed (true) to make the topic available to others. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
security:
- bearerAuth: []
parameters:
- name: dialogueId
in: path
description: specified dialogue id
required: true
schema:
type: string
- name: topicId
in: path
description: specified topic id
required: true
schema:
type: string
responses:
'200':
description: success
'401':
description: permission denied
'404':
description: topic or dialogue not found
'500':
description: internal server error
requestBody:
content:
application/json:
schema:
type: boolean
externalDocs:
description: Find out more about Swagger
url: 'http://swagger.io'
components:
schemas:
Announce:
type: object
required:
- appToken
properties:
appToken:
type: string
Revsion:
type: object
required:
- profile
- content
- labels
- sharing
- card
- blocked
- dialogue
- insight
properties:
profile:
type: integer
format: int64
content:
type: integer
format: int64
labels:
type: integer
format: int64
sharing:
type: integer
format: int64
card:
type: integer
format: int64
dialogue:
type: integer
format: int64
insight:
type: integer
format: int64
Profile:
type: object
required:
- guid
- revision
- node
properties:
guid:
type: string
handle:
type: string
name:
type: string
description:
type: string
location:
type: string
image:
type: string
format: base64 encoded data
revision:
type: integer
format: int64
node:
type: string
ProfileData:
type: object
properties:
handle:
type: string
name:
type: string
description:
type: string
location:
type: string
image:
type: string
App:
type: object
required:
- appId
- appData
- attached
properties:
appId:
type: string
appData:
$ref: '#/components/schemas/AppData'
attached:
type: integer
format: int32
AppData:
type: object
properties:
name:
type: string
description:
type: string
url:
type: string
image:
type: string
format: base64 encoded image
cardView:
type: object
required:
- guid
- profileRevision
- contentRevision
- cardRevision
properties:
guid:
type: string
cardRevision:
type: integer
format: int64
profileRevision:
type: integer
format: int64
contentRevision:
type: integer
format: int64
converstaionRevision:
type: integer
format: int64
cardProfile:
type: object
required:
- node
properties:
handle:
type: string
name:
type: string
description:
type: string
location:
type: string
revision:
type: integer
format: int64
imageSet:
type: boolean
node:
type: string
cardData:
type: object
required:
- status
properties:
revision:
type: integer
format: int64
status:
type: string
enum: [ pending, confirmed, connecting, connected ]
details:
type: string
token:
type: string
groups:
type: array
items:
type: string
cardStatus:
type: object
required:
- status
properties:
status:
type: string
enum: [ pending, confirmed, connecting, connected ]
token:
type: string
card:
type: object
required:
- cardProfile
- cardData
- contentRevision
- conversationRevision
properties:
cardProfile:
$ref: '#/components/schemas/cardProfile'
cardData:
$ref: '#/components/schemas/cardData'
contentRevision:
type: integer
format: int64
converstaionRevision:
type: integer
format: int64
Subject:
type: object
required:
- postId
- revision
- type
- data
- created
- modified
properties:
postId:
type: string
revision:
type: integer
format: int64
type:
type: string
data:
type: string
created:
type: integer
format: int32
Asset:
type: object
required:
- assetId
properties:
assetId:
type: string
transform:
type: string
status:
type: string
enum: [ pending, processing, ready, error ]
Tag:
type: object
required:
- guid
- subject
properties:
guid:
type: string
subject:
$ref: '#/components/schemas/Subject'
Insight:
type: object
required:
- insightId
- revision
- guid
properties:
insightId:
type: string
revision:
type: integer
format: int64
guid:
type: string
active:
type: boolean
Dialogue:
type: object
required:
- dialogueId
- revision
- status
- subject
- insights
properties:
dialogueId:
type: string
revision:
type: integer
format: int64
active:
type: boolean
subject:
$ref: '#/components/schemas/Subject'
insights:
type: array
items:
type: object
properties:
guid:
type: string
status:
type: string
enum: [ synced, unsynced ]
Topic:
type: object
required:
- topicId
- revision
- status
- subject
- tagCount
- tagUpdated
- tagRevision
properties:
articleId:
type: string
revision:
type: integer
format: int64
status:
type: string
enum: [ unconfirmed, confirmed, complete, error ]
subject:
$ref: '#/components/schemas/Subject'
tagCount:
type: integer
format: int32
tagUpdate:
type: integer
format: int32
tagRevision:
type: integer
format: int64
Article:
type: object
required:
- articleId
- revision
- status
- subject
- labels
- groups
- tagCount
- tagUpdated
- tagRevision
properties:
articleId:
type: string
revision:
type: integer
format: int64
status:
type: string
enum: [ unconfirmed, confirmed, complete, error ]
subject:
$ref: '#/components/schemas/Subject'
labels:
type: array
items:
type: string
groups:
type: array
items:
type: string
tagCount:
type: integer
format: int32
tagUpdate:
type: integer
format: int32
tagRevision:
type: integer
format: int64
Note:
type: object
required:
- noteId
- guid
- revision
- status
- subject
- tagCount
- tagUpdated
- tagRevision
properties:
topicId:
type: string
guid:
type: string
revision:
type: integer
format: int64
status:
type: string
enum: [ unconfirmed, confirmed, complete, error ]
subject:
$ref: '#/components/schemas/Subject'
tagCount:
type: integer
format: int32
tagUpdate:
type: integer
format: int32
tagRevision:
type: integer
format: int64
Group:
type: object
required:
- groupId
- name
properties:
groupId:
type: string
name:
type: string
Label:
type: object
required:
- labelId
- name
properties:
labelId:
type: string
name:
type: string
Authenticate:
type: object
required:
- guid
- token
- timestamp
properties:
token:
type: string
timestamp:
type: integer
format: int32
Connect:
type: object
required:
- requestorId
- requestedId
- timestamp
- profile
- token
- contentRevision
properties:
requestorGuid:
type: string
requestedGuid:
type: string
timestamp:
type: integer
format: int32
profile:
$ref: '#/components/schemas/Profile'
token:
type: string
contentRevision:
type: integer
format: int64
Disconnect:
type: object
required:
- requestorId
- requestedId
- timestamp
properties:
requestorId:
type: string
requestedId:
type: string
timestamp:
type: integer
format: int32
DataMessage:
type: object
required:
- message
- messageType
- keyType
- publicKey
- signature
properties:
messageType:
type: string
enum: [Connect, Disconnect, Profile, Authenticate]
message:
type: string
format: base64 encoded object
keyType:
type: string
enum: [RSA4096, RSA2048]
publicKey:
type: string
format: base64 encoding of account key
signature:
type: string
format: base64 encoding of message signature
securitySchemes:
basicAuth:
type: http
scheme: basic
bearerAuth:
type: http
scheme: bearer