mirror of
https://github.com/balzack/databag.git
synced 2025-02-11 19:19:16 +00:00
4724 lines
122 KiB
Plaintext
4724 lines
122 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: 1.0.5
|
|
title: DataBag
|
|
license:
|
|
name: Apache 2.0
|
|
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
|
|
tags:
|
|
- name: status
|
|
description: websocket endpoint for receiving module events
|
|
- name: admin
|
|
description: account creation for portal backend.
|
|
- name: account
|
|
description: account configuration for portal backend. supports app attachment
|
|
- name: authorize
|
|
description: authorize holder of identity for external service
|
|
- name: profile
|
|
description: getting and setting of the public profile
|
|
- name: alias
|
|
description: group management for contenting attributes
|
|
- name: contact
|
|
description: card management for referencing contacts
|
|
- name: attribute
|
|
description: article management associated with profile
|
|
- name: call
|
|
description: coordination of webrtc communication
|
|
paths:
|
|
|
|
/status:
|
|
get:
|
|
tags:
|
|
- status
|
|
description: Websocket endpoint for receiving account status updates
|
|
operationId: status
|
|
responses:
|
|
'200':
|
|
description: Awaiting announce
|
|
|
|
/status/activity:
|
|
get:
|
|
tags:
|
|
- status
|
|
description: Websocket endpoint for receiving account status and calling events
|
|
operationId: activity
|
|
responses:
|
|
'200':
|
|
description: Awaiting announce
|
|
|
|
/admin/status:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Check if portal params have been set
|
|
operationId: get-node-status
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- admin
|
|
description: Set admin password and node domain
|
|
operationId: set-node-status
|
|
security:
|
|
- basicCredentials: []
|
|
parameters:
|
|
- name: domain
|
|
in: query
|
|
description: domain of node
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/config:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Get node configuration. Access granted to admin username and password.
|
|
operationId: get-node-config
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/NodeConfig'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- admin
|
|
description: Set node config. Access granted to admin username and password.
|
|
operationId: set-node-config
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: setOpenAccess
|
|
in: query
|
|
description: if open access should be updated
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denide
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Get list of accounts hosted on node. Access granted to admin username and password.
|
|
operationId: get-node-accounts
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AccountProfile'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: handle not found
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- admin
|
|
description: Gernerate a url for creating a new account. Access granted to admin username and password.
|
|
operationId: add-node-account
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts/{accountId}/image:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Get profile image of node account.
|
|
operationId: get-node-account-image
|
|
parameters:
|
|
- name: accountId
|
|
in: path
|
|
description: id of account to delete
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/octet-stream: # content specific
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: invalid authentication
|
|
'404':
|
|
description: account not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts/{accountId}:
|
|
delete:
|
|
tags:
|
|
- admin
|
|
description: Remove account from node. Access granted to admin token
|
|
operationId: remove-node-account
|
|
parameters:
|
|
- name: accountId
|
|
in: path
|
|
description: id of account to delete
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
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/{accountId}/auth:
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Generate token to reset authentication.
|
|
operationId: add-account-authentication
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: accountId
|
|
in: path
|
|
description: specified account
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts/{accountId}/status:
|
|
put:
|
|
tags:
|
|
- admin
|
|
description: Disable account. Access granted to admin token
|
|
operationId: set-node-account
|
|
parameters:
|
|
- name: accountId
|
|
in: path
|
|
description: id of account to delete
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: token
|
|
in: query
|
|
description: token for admin access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
'401':
|
|
description: invalid authentication
|
|
'404':
|
|
description: account not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts/import:
|
|
post:
|
|
tags:
|
|
- admin
|
|
description: Import an account account from a backup archive. Access granted to the admin username and password.
|
|
operationId: import account
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'406':
|
|
description: account already imported
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileName:
|
|
type: string
|
|
format: binary
|
|
|
|
/account/available:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Check if any public accounts are available
|
|
operationId: get-account-available
|
|
responses:
|
|
'200':
|
|
description: available public accounts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: uint32
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/username:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Check if username is available. Access granted account reset token or account create token.
|
|
operationId: get-account-username
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: name
|
|
in: query
|
|
description: username to check
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/flag/{guid}:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Report record for admin review.
|
|
operationId: add-flag
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: guid of account holder
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: channel
|
|
in: query
|
|
description: channel of or reported record
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: topic
|
|
in: query
|
|
description: topic id of reported record
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/listing:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get profile of searchable accounts. Endpoint is publically accessible.
|
|
operationId: get-account-listing
|
|
parameters:
|
|
- name: filter
|
|
in: query
|
|
description: filter handles by text
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/listing/{guid}/image:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get profile image of searchable accounts. Endpoint is publically accessible.
|
|
operationId: get-account-listing-image
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: filter for specified guid
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/octet-stream: # content specific
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/listing/{guid}/message:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get profile message of searchable account. Endpoint is publically accessible.
|
|
operationId: get-account-listing-message
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: filter for specified guid
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
|
|
/account/token:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Check if account reset token or account create token is valid. Access granted to valid create or reset token.
|
|
operationId: get-account-token
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/status:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get disabled status of account. Authorized to account username and password.
|
|
operationId: get-account-status
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AccountStatus'
|
|
'401':
|
|
description: authentication error
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/notification:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Set whether account should receive push notifications.
|
|
operationId: set-account-notification
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'405':
|
|
description: failed to confirm
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/account/seal:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Set sealing key for account.
|
|
operationId: set-account-seal
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Seal'
|
|
|
|
/account/searchable:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Set whether account is publicly listed.
|
|
operationId: set-account-seachable
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'405':
|
|
description: failed to confirm
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/account/login:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Reset account login credentials
|
|
operationId: set-account-login
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: unknown portal
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/profile:
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Add a new account. Basic auth will be used for the accounts username and password. Access granted to valid create account token.
|
|
operationId: add-account
|
|
security:
|
|
- bearerAuth: []
|
|
- basicCredentials: []
|
|
responses:
|
|
'201':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'400':
|
|
description: invalid handle or password
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- account
|
|
description: Delete account. Access granted to valid create account token.
|
|
operationId: remove-account
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: successful operation
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/assets/{assetId}:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get asset assigned to an account. The endpoint supports byte-range requests and responds with the content-type set appropriatly. Access granted to the app tokens of the account holder and in the case of non-original assets, the contact token for accounts with which the article is shared.
|
|
operationId: get-account-asset
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- 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 or article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/auth:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Apply account reset token to set handle and password. Basic auth will be used for new login and password. Access granted to valid reset token.
|
|
operationId: set-account-authentication
|
|
security:
|
|
- bearerAuth: []
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/access:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Apply reset token to acquire app token for access.
|
|
operationId: set-account-access
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: access token for connecting to accounts
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: appName
|
|
in: query
|
|
description: name of connecting app
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: appVersion
|
|
in: query
|
|
description: version of connecting app
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: platform
|
|
in: query
|
|
description: device platform
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: deviceToken
|
|
in: query
|
|
description: deviceToken for push notification
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: notifications
|
|
in: query
|
|
description: push notifications to receive
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/LoginAccess'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/node:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Set forwarding address after export/import has completed. Access granted to valid reset token.
|
|
operationId: set-account-node
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'405':
|
|
description: failed to confirm
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/account/apps:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get list of attached apps to account. Access granted to account's username and password.
|
|
operationId: get-account-apps
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/App'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Generate token to attach an app to the account. Access granted to account's username and password.
|
|
operationId: add-account-app
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: appName
|
|
in: query
|
|
description: name of connecting app
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: appVersion
|
|
in: query
|
|
description: version of connecting app
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: platform
|
|
in: query
|
|
description: device platform
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: deviceToken
|
|
in: query
|
|
description: deviceToken for push notification
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: pushType
|
|
in: query
|
|
description: unifiedpush (up) or firebase (fcm), default fcm
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: notifications
|
|
in: query
|
|
description: push notifications to receive
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/LoginAccess'
|
|
'401':
|
|
description: invalid token
|
|
'406':
|
|
description: app limit reached
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppData'
|
|
delete:
|
|
tags:
|
|
- account
|
|
description: Remove an app entry to achieve logout. Access granted to agent token.
|
|
operationId: remove-agent-token
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token for account access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: all
|
|
in: query
|
|
description: whether all app tokens should be cleared
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: ok
|
|
'401':
|
|
description: invalid token
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/apps/{appId}:
|
|
delete:
|
|
tags:
|
|
- account
|
|
description: Get list of attached apps. Access granted to account's username and password.
|
|
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
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/export:
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Export account from node. Account is automatically disabled afterwards. Authorized to account username and password.
|
|
operationId: set-account-export
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/authorize:
|
|
put:
|
|
tags:
|
|
- authorize
|
|
description: Retrieve an authenticate data messaging verifying the account holder is accepting the action referenced by the token.
|
|
operationId: authorize
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/profile:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get profile of accunt. Access granted to app token of account holder.
|
|
operationId: get-profile
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- profile
|
|
description: Delete own account.
|
|
operationId: remove-profile
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/profile/data:
|
|
put:
|
|
tags:
|
|
- profile
|
|
description: Set profile data. Access granted to app tokens of account holder.
|
|
operationId: set-profile
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProfileData'
|
|
|
|
/profile/image:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Download base64 decoded data of profile image. Access granted to app tokens of account holder.
|
|
operationId: get-profile-image
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/octet-stream: # content specific
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'405':
|
|
description: invalid image
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- profile
|
|
description: Set base64 encode image data for profile. Access granted to app tokens of account holder.
|
|
operationId: set-profile-image
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: permission denied
|
|
'405':
|
|
description: invalid image
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/profile/message:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get a profile data message. Access granted to app token of account holder or contact token of connected contact.
|
|
operationId: get-profile-message
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/alias/groups:
|
|
get:
|
|
tags:
|
|
- alias
|
|
description: Get groups for sharing. Access granted to app tokens of the account holder.
|
|
operationId: get-groups
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
headers:
|
|
X-Group-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current group revision
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Group'
|
|
'401':
|
|
description: invalid token
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- alias
|
|
description: Add a group for sharing. Access granted to app tokens of account holder.
|
|
operationId: add-group
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Group'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/alias/groups/{groupId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- alias
|
|
description: Base64 decode and download specified field from the groups's subject. Access granted to app token of account holder.
|
|
operationId: get-group-subject-field
|
|
parameters:
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: field
|
|
in: path
|
|
description: field from subject to base64 decode and download
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, article not found
|
|
'405':
|
|
description: invalid field
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/alias/groups/{groupId}/subject:
|
|
put:
|
|
tags:
|
|
- alias
|
|
description: Update group description for sharing. Access granted to app tokens of account holder.
|
|
operationId: set-group-subject
|
|
parameters:
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Group'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
delete:
|
|
tags:
|
|
- alias
|
|
description: Remove sharing group
|
|
operationId: remove-group
|
|
parameters:
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get list of cards. Access granted to app tokens of account holder.
|
|
operationId: get-cards
|
|
parameters:
|
|
- name: revision
|
|
in: query
|
|
description: only return updated cards since specified revision
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
headers:
|
|
X-Card-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current card revision
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Card'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- contact
|
|
description: Add a contact card. Access granted to app tokens of account holder.
|
|
operationId: add-card
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'400':
|
|
description: invalid data message
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get specified card. Access granted to app tokens of account holder.
|
|
operationId: get-card
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Card'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- contact
|
|
description: Remove card entry. Access granted to app tokens of account holder.
|
|
operationId: remove-card
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}/status:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Updated connected status of contact. Access granted to app tokens of account holder.
|
|
operationId: set-card-status
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: token
|
|
in: query
|
|
description: token for accessing card
|
|
required: false # required for connected
|
|
schema:
|
|
type: string
|
|
- name: profileRevision
|
|
in: query
|
|
description: profile revision of contact
|
|
required: false # required for connected
|
|
schema:
|
|
type: string
|
|
- name: articleRevision
|
|
in: query
|
|
description: article revision of contact
|
|
required: false # required for connected
|
|
schema:
|
|
type: string
|
|
- name: channelRevision
|
|
in: query
|
|
description: channel revision of contact
|
|
required: false # required for connected
|
|
schema:
|
|
type: string
|
|
- name: viewRevision
|
|
in: query
|
|
description: view revision of contact
|
|
required: false # required for connected
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardDetail'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'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 connecting to other contacts. Access granted to app tokens for account holder.
|
|
operationId: get-open-message
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/openMessage:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set message for connecting to a contact. If card has not already been added, the card will be created in the pending state. Access granted to public.
|
|
operationId: set-open-message
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactStatus'
|
|
'400':
|
|
description: invalid data message
|
|
'410':
|
|
description: account disabled
|
|
'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 connection with contact. Access granted to app tokens for account holder.
|
|
operationId: get-close-message
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/closeMessage:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set message for closing card connection. Access granted to public.
|
|
operationId: set-close-message
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'400':
|
|
description: invalid data message
|
|
'410':
|
|
description: account disabled
|
|
'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. Access granted to app tokens of account holder.
|
|
operationId: get-card-profile
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardProfile'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set profile of card entry. Access granted to app tokens of account holder.
|
|
operationId: set-card-profile
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
|
|
/contact/cards/{cardId}/profile/image:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get image of card profile. Access granted to app tokens of account holder.
|
|
operationId: get-card-profile-image
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/octet-stream: #asset specific
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'405':
|
|
description: invalid image
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}/detail:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get specified card detail. Access granted to app tokens for account holder.
|
|
operationId: get-card-detail
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardDetail'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}/notes:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Update card notes for specified card. Access granted to app tokens for account holder.
|
|
operationId: set-card-notes
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardDetail'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
delete:
|
|
tags:
|
|
- contact
|
|
description: Clear notes for specified card. Access granted to app tokens of account holder.
|
|
operationId: clear-card-notes
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardDetail'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}/groups/{groupId}:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set sharing group for contact. Access granted to app tokens for account holder.
|
|
operationId: set-card-group
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardDetail'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- contact
|
|
description: Clear sharing group for card. Access granted to app tokens for account holder.
|
|
operationId: clear-card-group
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardDetail'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/profile/revision:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set profile revision for contact. This is intend to be invoked automatically anytime a contact updates their profile. Access granted to contact tokens.
|
|
operationId: set-profile-revision
|
|
parameters:
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/contact/article/revision:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set artcile revision for contact. This is intend to be invoked automatically anytime a contact updates their content or sharing. Access granted to contact tokens.
|
|
operationId: set-article-revision
|
|
parameters:
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/contact/channel/revision:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set channel revision for contact. This is intend to be invoked automatically anytime a contact updates their content or sharing. Access granted to contact tokens.
|
|
operationId: set-channel-revision
|
|
parameters:
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/contact/view/revision:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set view revision for contact. This is intend to be invoked automatically anytime a contact updates their content or sharing. Access granted to contact tokens.
|
|
operationId: set-view-revision
|
|
parameters:
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/contact/notification:
|
|
post:
|
|
tags:
|
|
- contact
|
|
description: Inform contact of a push notification event
|
|
operationId: set-push-event
|
|
parameters:
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: event set
|
|
'401':
|
|
description: not authorized
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/attribute/articles:
|
|
get:
|
|
tags:
|
|
- attribute
|
|
description: Get article slots that should be updated based on revisions. Access granted to account token or contact token. When the request is made with a contact token the account view revision will be added to the block revision.
|
|
operationId: get-articles
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: viewRevision
|
|
in: query
|
|
description: view revision from which attribute revision applies
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: articleRevision
|
|
in: query
|
|
description: return updated articles since revision
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: return only articles of specified types
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
headers:
|
|
X-View-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current view revision
|
|
X-Article-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current article revision
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- attribute
|
|
description: Add a content article. Access granted to app token of the account holder.
|
|
operationId: add-article
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/attribute/articles/{articleId}:
|
|
delete:
|
|
tags:
|
|
- attribute
|
|
description: Remove specified article. Access granted to app token of account holder.
|
|
operationId: remove-article
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: article not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/attribute/articles/{articleId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- attribute
|
|
description: Base64 decode and download specified field from the article's subject. Access granted to app token of account holder or contact token of account the article is shared with.
|
|
operationId: get-article-subject-field
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: field
|
|
in: path
|
|
description: field from subject to base64 decode and download
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, article not found
|
|
'405':
|
|
description: invalid field
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/attribute/articles/{articleId}/subject:
|
|
put:
|
|
tags:
|
|
- attribute
|
|
description: Set subject for article. Access granted to app token of account holder.
|
|
operationId: set-article-subject
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: article not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/attribute/articles/{articleId}/groups/{groupId}:
|
|
put:
|
|
tags:
|
|
- attribute
|
|
description: Set group for articles. Access granted to app tokens for account holder.
|
|
operationId: set-article-group
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- attribute
|
|
description: Clear sharing group for article. Access granted to app tokens for account holder.
|
|
operationId: clear-article-group
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
|
|
/content/channels:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get channel slots. If revision set detail fields omittied in response
|
|
operationId: get-channels
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: viewRevision
|
|
in: query
|
|
description: view revision from which content revision applies
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: channelRevision
|
|
in: query
|
|
description: return updated channels since revision
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: return only channels of specified types
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
headers:
|
|
X-View-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current view revision
|
|
X-Channel-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current channel revision
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Channel'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add a channel.
|
|
operationId: add-channel
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Channel'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChannelParams'
|
|
|
|
/content/channels/{channelId}/detail:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get details of channel.
|
|
operationId: get-channel-detail
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChannelDetail'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/summary:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get summary of channel.
|
|
operationId: get-channel-summary
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChannelSummary'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}:
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove specified channel or membership. When invoked by account holder, channel is removed. When invoked by member, membership is removed.
|
|
operationId: remove-channel
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/notification:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get notification enabled state for the specified channel
|
|
operationId: get-channel-notifications
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: access token granted to agent
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: contact
|
|
in: query
|
|
description: access token granted to contact
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set notification enabled state for the specified channel
|
|
operationId: set-channel-notifications
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: agent
|
|
in: query
|
|
description: access token granted to agent
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: contact
|
|
in: query
|
|
description: access token granted to contact
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/content/channels/{channelId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Base64 decode and download specified field from the channel's subject. Access granted to app token of account holder or contact token of account the channel is shared with.
|
|
operationId: get-channel-subject-field
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: field
|
|
in: path
|
|
description: field from subject to base64 decode and download
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, channel not found
|
|
'405':
|
|
description: invalid field
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/subject:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set subject for channel. Access granted to app token of account holder.
|
|
operationId: set-channel-subject
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Channel'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/content/channels/{channelId}/groups/{groupId}:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set group for read access to channel. Access granted to app tokens for account holder.
|
|
operationId: set-channel-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Channel'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Clear read access to channel for group. Access granted to app tokens for account holder.
|
|
operationId: clear-channel-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Channel'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/cards/{cardId}:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set card for write access to channel. Access granted to app tokens for account holder.
|
|
operationId: set-channel-card
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Channel'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Clear write access to channel for card. Access granted to app tokens for account holder.
|
|
operationId: clear-channel-card
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Channel'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card or group not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/topics:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get channel topic slots. If revision set, detail fields omitted in response. Staggered loading supported through sequnce marker. Initially count can be used to limit the topics returned. The sequence marker returned in the header must be used in subsequent queries for the same topic window.
|
|
operationId: get-channel-topics
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: revision
|
|
in: query
|
|
description: return updated topics since revision
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: count
|
|
in: query
|
|
description: limit number of topics from latest when revision not set
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: begin
|
|
in: query
|
|
description: return topics after and including sequence marker
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: end
|
|
in: query
|
|
description: return topics before and not including sequence marker
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
headers:
|
|
Topic-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current topic revision
|
|
Topic-Marker:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: sequnce marker of first topic when count set
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Topic'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add a topic to channel channel.
|
|
operationId: add-channel-topic
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: confirm
|
|
in: query
|
|
description: set if intial state is confirmed
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Topic'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/content/channels/{channelId}/topics/{topicId}:
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove specified channel. Access granted to app token of account holder.
|
|
operationId: remove-channel-topic
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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: invalid password
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/detail:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get detail object of topic.
|
|
operationId: get-channel-topic-detail
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TopicDetail'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Base64 decode and download specified field from the channel's subject. Access granted to app token of account holder or contact token of account the channel is shared with.
|
|
operationId: get-channel-topic-subject-field
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: field
|
|
in: path
|
|
description: field from subject to base64 decode and download
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, channel not found
|
|
'405':
|
|
description: invalid field
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/subject:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set subject for channel. Access granted to app token of account holder.
|
|
operationId: set-channel-topic-subject
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: confirm
|
|
in: query
|
|
description: confirmed state of topic
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/assets:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get list of assets assigned to an channel. The original assets will only be available to the account holder to provent the accidental sharing of content metadata. Access is granted to the app token of the account holder and the contact token of accounts the channel has been shared with.
|
|
operationId: get-channel-topic-assets
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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: array
|
|
items:
|
|
$ref: '#/components/schemas/Asset'
|
|
'401':
|
|
description: invalid token
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add an an asset to the to an channel. The original posted asset is referenced in the asset list with a null transform. The transformed assets are referenced accordingly. Transforming the asset strips it of metadata and transcodes it into a specified format. Access is granted to the app token of the account holder.
|
|
operationId: add-channel-topic-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Asset'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: channel not found
|
|
'406':
|
|
description: storage limit reached
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileName:
|
|
type: string
|
|
format: binary
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/blocks:
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add a asset to the channel. Payload is a file block encoded as bas64 string. This is to support e2e as the client side will encrypt the file block before applying the base64 encoding.
|
|
operationId: add-channel-topic-block
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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: channel not found
|
|
'406':
|
|
description: storage limit reached
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/assets/{assetId}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get asset assigned to an channel. The endpoint supports byte-range requests and responds with the content-type set appropriatly. Access granted to the app tokens of the account holder and in the case of non-original assets, the contact token for accounts with which the channel is shared.
|
|
operationId: get-channel-topic-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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 or channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove an asset from an channel. Access granted to app tokens of the account holder.
|
|
operationId: remove-channel-topic-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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 or channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/confirmed:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set confirmed state of the channel. Until the confirmed state has been set to true, the channel will not be visible to contacts with which the channel is shared. Access granted to the app tokens of the acocunt holder.
|
|
operationId: set-channel-topic-confirmed
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/tags:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get channel topic tag slots.
|
|
operationId: get-channel-topic-tags
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: revision
|
|
in: query
|
|
description: return updated topics since revision
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: count
|
|
in: query
|
|
description: limit number of latest from latest when revision not set
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: begin
|
|
in: query
|
|
description: return tags after and including sequence marker
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: end
|
|
in: query
|
|
description: return tags before and not including sequence marker
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
headers:
|
|
Tag-Revision:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: current tag revision
|
|
Tag-Marker:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: sequnce marker of first tag when count set
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add a tag to channel topic.
|
|
operationId: add-channel-topic-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/tags/{tagId}:
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove specified tag from channel topic. Access granted to app token of account holder.
|
|
operationId: remove-channel-topic-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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: invalid password
|
|
'404':
|
|
description: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/tags/{tagId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Base64 decode and download specified field from the channel's subject. Access granted to app token of account holder or contact token of account the channel is shared with.
|
|
operationId: get-channel-topic-tag-subject-field
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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
|
|
- name: field
|
|
in: path
|
|
description: field from subject to base64 decode and download
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, channel not found
|
|
'405':
|
|
description: invalid field
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/channels/{channelId}/topics/{topicId}/tags/{tagId}/subject:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set subject for channel. Access granted to app token of account holder.
|
|
operationId: set-channel-topic-tag-subject
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: channelId
|
|
in: path
|
|
description: specified channel 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: channel not found
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
/talk/calls:
|
|
post:
|
|
tags:
|
|
- talk
|
|
description: Add new call entry
|
|
operationId: add-call
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: cardId
|
|
in: query
|
|
description: id of card to call
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Call'
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/talk/calls/{callId}:
|
|
put:
|
|
tags:
|
|
- talk
|
|
description: extend keep alive on specified call
|
|
operationId: keep-call
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: callId
|
|
in: path
|
|
description: id of call to keep alive
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: call not found
|
|
'406':
|
|
description: call has already expired or closed
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- talk
|
|
description: terminte sepecified call
|
|
operationId: end-call
|
|
parameters:
|
|
- name: agent
|
|
in: query
|
|
description: agent token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: callId
|
|
in: path
|
|
description: id of call to end
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
|
|
/talk/ring:
|
|
post:
|
|
tags:
|
|
- talk
|
|
description: Create a ring event in contact
|
|
operationId: add-ring
|
|
parameters:
|
|
- name: contact
|
|
in: query
|
|
description: contact token
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: calleeToken
|
|
in: query
|
|
description: token for the contact to connect with
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: index
|
|
in: query
|
|
description: index of current ring
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
'401':
|
|
description: permission denied
|
|
'410':
|
|
description: account disabled
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Ring'
|
|
|
|
/talk/signal:
|
|
get:
|
|
tags:
|
|
- talk
|
|
description: Websocket endpoint for coordinating webrtc conversation
|
|
operationId: signal
|
|
responses:
|
|
'200':
|
|
description: Awaiting token
|
|
|
|
|
|
externalDocs:
|
|
description: App overview
|
|
url: ''
|
|
|
|
components:
|
|
schemas:
|
|
|
|
Announce:
|
|
type: object
|
|
required:
|
|
- appToken
|
|
properties:
|
|
appToken:
|
|
type: string
|
|
|
|
LoginAccess:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- appToken
|
|
- created
|
|
- pushSupported
|
|
properties:
|
|
guid:
|
|
type: string
|
|
appToken:
|
|
type: string
|
|
created:
|
|
type: integer
|
|
format: int64
|
|
pushSupported:
|
|
type: boolean
|
|
|
|
Revision:
|
|
type: object
|
|
required:
|
|
- profile
|
|
- article
|
|
- group
|
|
- channel
|
|
- card
|
|
properties:
|
|
account:
|
|
type: integer
|
|
format: int64
|
|
profile:
|
|
type: integer
|
|
format: int64
|
|
article:
|
|
type: integer
|
|
format: int64
|
|
group:
|
|
type: integer
|
|
format: int64
|
|
channel:
|
|
type: integer
|
|
format: int64
|
|
card:
|
|
type: integer
|
|
format: int64
|
|
|
|
NodeConfig:
|
|
type: object
|
|
required:
|
|
- domain
|
|
- accountStorage
|
|
properties:
|
|
domain:
|
|
type: string
|
|
accountStorage:
|
|
type: integer
|
|
format: int64
|
|
enableImage:
|
|
type: boolean
|
|
enableAudio:
|
|
type: boolean
|
|
enableVideo:
|
|
type: boolean
|
|
keyType:
|
|
type: string
|
|
pushSupported:
|
|
type: boolean
|
|
allowUnsealed:
|
|
type: boolean
|
|
transformSupported:
|
|
type: boolean
|
|
enableIce:
|
|
type: boolean
|
|
iceUrl:
|
|
type: string
|
|
iceUsername:
|
|
type: string
|
|
icePassword:
|
|
type: string
|
|
enableOpenAccess:
|
|
type: boolean
|
|
openAccessLimit:
|
|
type: integer
|
|
format: int64
|
|
|
|
Seal:
|
|
type: object
|
|
required:
|
|
- salt
|
|
- privateKeyEncrypted
|
|
- publicKey
|
|
properties:
|
|
passwordSalt:
|
|
type: string
|
|
format: hex encoded data
|
|
privateKeyIv:
|
|
type: string
|
|
format: hex encoded data
|
|
privateKeyEncrypted:
|
|
type: string
|
|
format: base64 encoded data
|
|
publicKey:
|
|
type: string
|
|
format: base64 encoded data
|
|
|
|
AccountStatus:
|
|
type: object
|
|
required:
|
|
- disabled
|
|
- storageUsed
|
|
- storageAvailable
|
|
- forwardingAddress
|
|
- searchable
|
|
- pushEnabled
|
|
properties:
|
|
disabled:
|
|
type: boolean
|
|
storageUsed:
|
|
type: integer
|
|
format: int64
|
|
storageAvailable:
|
|
type: integer
|
|
format: int64
|
|
forwardingAddress:
|
|
type: string
|
|
searchable:
|
|
type: boolean
|
|
allowUnsealed:
|
|
type: boolean
|
|
pushEnabled:
|
|
type: boolean
|
|
sealable:
|
|
type: boolean
|
|
seal:
|
|
$ref: '#/components/schemas/Seal'
|
|
enableIce:
|
|
type: boolean
|
|
|
|
AccountProfile:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- revision
|
|
- node
|
|
properties:
|
|
accountId:
|
|
type: integer
|
|
format: uint32
|
|
guid:
|
|
type: string
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
imageSet:
|
|
type: boolean
|
|
disabled:
|
|
type: boolean
|
|
seal:
|
|
type: string
|
|
storageUsed:
|
|
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
|
|
seal:
|
|
type: string
|
|
format: base64 encoded data
|
|
version:
|
|
type: string
|
|
node:
|
|
type: string
|
|
|
|
ProfileData:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
|
|
Account:
|
|
type: object
|
|
required:
|
|
- accountId
|
|
- disabled
|
|
properties:
|
|
accountId:
|
|
type: integer
|
|
format: uint32
|
|
guid:
|
|
type: string
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
imageSet:
|
|
type: boolean
|
|
disabled:
|
|
type: boolean
|
|
|
|
App:
|
|
type: object
|
|
required:
|
|
- id
|
|
- revision
|
|
- data
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
data:
|
|
$ref: '#/components/schemas/AppData'
|
|
|
|
AppData:
|
|
type: object
|
|
required:
|
|
- attached
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
url:
|
|
type: string
|
|
image:
|
|
type: string
|
|
format: base64 encoded image
|
|
attached:
|
|
type: integer
|
|
format: int64
|
|
|
|
Card:
|
|
type: object
|
|
required:
|
|
- id
|
|
- revision
|
|
- data
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
data:
|
|
$ref: '#/components/schemas/CardData'
|
|
|
|
CardData:
|
|
type: object
|
|
required:
|
|
- detailRevision
|
|
- profileRevision
|
|
- notifiedProfile
|
|
- notifiedArticle
|
|
- notifiedChannel
|
|
- notifiedView
|
|
properties:
|
|
detailRevision:
|
|
type: integer
|
|
format: int64
|
|
profileRevision:
|
|
type: integer
|
|
format: int64
|
|
notifiedProfile:
|
|
type: integer
|
|
format: int64
|
|
notifiedArticle:
|
|
type: integer
|
|
format: int64
|
|
notifiedChannel:
|
|
type: integer
|
|
format: int64
|
|
notifiedView:
|
|
type: integer
|
|
format: int64
|
|
cardDetail:
|
|
$ref: '#/components/schemas/CardDetail'
|
|
cardProfile:
|
|
$ref: '#/components/schemas/CardProfile'
|
|
|
|
CardProfile:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- node
|
|
properties:
|
|
guid:
|
|
type: string
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
imageSet:
|
|
type: boolean
|
|
version:
|
|
type: string
|
|
node:
|
|
type: string
|
|
seal:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
|
|
CardDetail:
|
|
type: object
|
|
required:
|
|
- status
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum: [ pending, confirmed, requested, connecting, connected ]
|
|
statusUpdated:
|
|
type: integer
|
|
format: int64
|
|
token:
|
|
type: string
|
|
notes:
|
|
type: string
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
Group:
|
|
type: object
|
|
required:
|
|
- id
|
|
- revision
|
|
- data
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
data:
|
|
$ref: '#/components/schemas/GroupData'
|
|
|
|
GroupData:
|
|
type: object
|
|
required:
|
|
- dataType
|
|
- data
|
|
- created
|
|
- updated
|
|
properties:
|
|
dataType:
|
|
type: string
|
|
data:
|
|
type: string
|
|
created:
|
|
type: integer
|
|
format: int64
|
|
updated:
|
|
type: integer
|
|
format: int64
|
|
|
|
ChannelParams:
|
|
type: object
|
|
required:
|
|
- dataType
|
|
- data
|
|
- groups
|
|
- cards
|
|
properties:
|
|
dataType:
|
|
type: string
|
|
data:
|
|
type: string
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
cards:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
Channel:
|
|
type: object
|
|
required:
|
|
- id
|
|
- revision
|
|
- data
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
data:
|
|
$ref: '#/components/schemas/ChannelData'
|
|
|
|
ChannelData:
|
|
type: object
|
|
required:
|
|
- detailRevision
|
|
- topicRevision
|
|
properties:
|
|
detailRevision:
|
|
type: integer
|
|
format: int64
|
|
topicRevision:
|
|
type: integer
|
|
format: int64
|
|
channelSummary:
|
|
$ref: '#/components/schemas/ChannelSummary'
|
|
channelDetail:
|
|
$ref: '#/components/schemas/ChannelDetail'
|
|
|
|
ChannelDetail:
|
|
type: object
|
|
required:
|
|
- dataType
|
|
- data
|
|
- created
|
|
- updated
|
|
properties:
|
|
dataType:
|
|
type: string
|
|
data:
|
|
type: string
|
|
created:
|
|
type: integer
|
|
format: int64
|
|
updated:
|
|
type: integer
|
|
format: int64
|
|
enableImage:
|
|
type: boolean
|
|
enableAudio:
|
|
type: boolean
|
|
enableVideo:
|
|
type: boolean
|
|
contacts:
|
|
$ref: '#/components/schemas/ChannelContacts'
|
|
members:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ChannelMember'
|
|
|
|
ChannelSummary:
|
|
type: object
|
|
properties:
|
|
lastTopic:
|
|
$ref: '#/components/schemas/TopicDetail'
|
|
|
|
ChannelContacts:
|
|
type: object
|
|
required:
|
|
- groups
|
|
- cards
|
|
properties:
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
cards:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
ChannelMember:
|
|
type: object
|
|
required:
|
|
- members
|
|
properties:
|
|
member:
|
|
type: string
|
|
pushEnabled:
|
|
type: boolean
|
|
|
|
Topic:
|
|
type: object
|
|
required:
|
|
- id
|
|
- revision
|
|
- data
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
data:
|
|
$ref: '#/components/schemas/TopicData'
|
|
|
|
TopicData:
|
|
type: object
|
|
required:
|
|
- detailRevision
|
|
- tagRevision
|
|
properties:
|
|
detailRevision:
|
|
type: integer
|
|
format: int64
|
|
tagRevision:
|
|
type: integer
|
|
format: int64
|
|
topicDetail:
|
|
$ref: '#/components/schemas/TopicDetail'
|
|
|
|
TopicDetail:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- dataType
|
|
- data
|
|
- created
|
|
- updated
|
|
- status
|
|
properties:
|
|
guid:
|
|
type: string
|
|
dataType:
|
|
type: string
|
|
data:
|
|
type: string
|
|
created:
|
|
type: integer
|
|
format: int64
|
|
updated:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: [ unconfirmed, confirmed ]
|
|
transform:
|
|
type: string
|
|
enum: [ complete, incomplete ]
|
|
|
|
Tag:
|
|
type: object
|
|
required:
|
|
- id
|
|
- revision
|
|
- data
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
data:
|
|
$ref: '#/components/schemas/TagData'
|
|
|
|
TagData:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- dataType
|
|
- data
|
|
- created
|
|
- updated
|
|
properties:
|
|
guid:
|
|
type: string
|
|
dataType:
|
|
type: string
|
|
data:
|
|
type: string
|
|
created:
|
|
type: integer
|
|
format: int64
|
|
updated:
|
|
type: integer
|
|
format: int64
|
|
|
|
Article:
|
|
type: object
|
|
required:
|
|
- id
|
|
- revision
|
|
- data
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
data:
|
|
$ref: '#/components/schemas/ArticleData'
|
|
|
|
ArticleData:
|
|
type: object
|
|
required:
|
|
- dataType
|
|
- data
|
|
- created
|
|
- updated
|
|
- status
|
|
properties:
|
|
dataType:
|
|
type: string
|
|
data:
|
|
type: string
|
|
created:
|
|
type: integer
|
|
format: int64
|
|
updated:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: [ unconfirmed, confirmed, incomplete, error ]
|
|
groups:
|
|
$ref: '#/components/schemas/ArticleGroups'
|
|
|
|
ArticleGroups:
|
|
type: object
|
|
required:
|
|
- groups
|
|
properties:
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
Asset:
|
|
type: object
|
|
required:
|
|
- assetId
|
|
properties:
|
|
assetId:
|
|
type: string
|
|
transform:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum: [ pending, processing, importing, ready, error ]
|
|
|
|
Subject:
|
|
type: object
|
|
required:
|
|
- dataType
|
|
- data
|
|
properties:
|
|
dataType:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
Claim:
|
|
type: object
|
|
required:
|
|
- token
|
|
properties:
|
|
token:
|
|
type: string
|
|
|
|
Identity:
|
|
type: object
|
|
required:
|
|
- revision
|
|
- version
|
|
- node
|
|
properties:
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
image:
|
|
type: string
|
|
format: base64 encoded image
|
|
version:
|
|
type: string
|
|
node:
|
|
type: string
|
|
seal:
|
|
type: string
|
|
|
|
Connect:
|
|
type: object
|
|
required:
|
|
- contact
|
|
- token
|
|
properties:
|
|
contact:
|
|
type: string
|
|
token:
|
|
type: string
|
|
viewRevision:
|
|
type: integer
|
|
format: int64
|
|
articleRevision:
|
|
type: integer
|
|
format: int64
|
|
profileRevision:
|
|
type: integer
|
|
format: int64
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
image:
|
|
type: string
|
|
format: base64 encoded image
|
|
version:
|
|
type: string
|
|
seal:
|
|
type: string
|
|
node:
|
|
type: string
|
|
|
|
Disconnect:
|
|
type: object
|
|
required:
|
|
- contact
|
|
properties:
|
|
contact:
|
|
type: string
|
|
|
|
SignedData:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- timestamp
|
|
- messageType
|
|
- value
|
|
properties:
|
|
guid:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
format: int64
|
|
messageType:
|
|
type: string
|
|
enum: [Connect, Disconnect, Identity, Authenticate]
|
|
value:
|
|
type: string
|
|
format: json string of Connect, Disconnect, Authenticate, or Profile
|
|
|
|
ContactStatus:
|
|
type: object
|
|
required:
|
|
- status
|
|
properties:
|
|
token:
|
|
type: string
|
|
profileRevision:
|
|
type: integer
|
|
format: int64
|
|
articleRevision:
|
|
type: integer
|
|
format: int64
|
|
channelRevision:
|
|
type: integer
|
|
format: int64
|
|
viewRevision:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: [ pending, confirmed, requested, connecting, connected ]
|
|
|
|
DataMessage:
|
|
type: object
|
|
required:
|
|
- message
|
|
- keyType
|
|
- publicKey
|
|
- signature
|
|
- signatureType
|
|
properties:
|
|
message:
|
|
type: string
|
|
format: base64 encoded json string of SignedData
|
|
keyType:
|
|
type: string
|
|
enum: [RSA4096, RSA2048]
|
|
publicKey:
|
|
type: string
|
|
format: base64 encoding of account public key
|
|
signature:
|
|
type: string
|
|
format: base64 encoding of message signature
|
|
signatureType:
|
|
type: string
|
|
enum: [PKCS1v15, PSS]
|
|
|
|
Call:
|
|
type: object
|
|
required:
|
|
- id
|
|
- cardId
|
|
- callerToken
|
|
- calleeToken
|
|
- keepAlive
|
|
properties:
|
|
id:
|
|
type: string
|
|
cardId:
|
|
type: string
|
|
callerToken:
|
|
type: string
|
|
calleeToken:
|
|
type: string
|
|
keepAlive:
|
|
type: integer
|
|
format: int32
|
|
iceUrl:
|
|
type: string
|
|
iceUsername:
|
|
type: string
|
|
icePassword:
|
|
type: string
|
|
|
|
Ring:
|
|
type: object
|
|
required:
|
|
- callId
|
|
- calleeToken
|
|
- index
|
|
properties:
|
|
callId:
|
|
type: string
|
|
calleeToken:
|
|
type: string
|
|
index:
|
|
type: integer
|
|
format: int32
|
|
iceUrl:
|
|
type: string
|
|
iceUsername:
|
|
type: string
|
|
icePassword:
|
|
type: string
|
|
|
|
securitySchemes:
|
|
|
|
basicAuth:
|
|
type: http
|
|
scheme: basic
|
|
|
|
basicCredentials:
|
|
type: http
|
|
scheme: basic
|
|
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
|
|
|