mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 03:29:16 +00:00
4048 lines
110 KiB
Plaintext
4048 lines
110 KiB
Plaintext
openapi: 3.0.0
|
|
info:
|
|
description: |
|
|
DataBag provides storage for decentralized identity based self-hosting apps.
|
|
It is intended to support sharing of personal data and hosting group
|
|
conversations.
|
|
version: "0.0.1"
|
|
title: DataBag
|
|
contact:
|
|
email: roland.osborne@gmail.com
|
|
license:
|
|
name: Apache 2.0
|
|
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
|
|
tags:
|
|
- name: revision
|
|
description: websocket endpoint for receiving module revision events
|
|
- name: admin
|
|
description: account creation for portal backend.
|
|
- name: account
|
|
description: account configuration for portal backend. supports app attachment
|
|
- name: authenticate
|
|
description: authenticate holder of identity for external service
|
|
- name: profile
|
|
description: getting and setting of the public profile
|
|
- name: share
|
|
description: access control for personal subjects, associates content and cards
|
|
|
|
- name: contact
|
|
description: connection to other identities, hook receiver
|
|
- name: content
|
|
description: posting and listing of personal subjects, group and tag managment
|
|
|
|
- name: converstaion
|
|
description: group sharing of subjects
|
|
|
|
paths:
|
|
|
|
# Concetps:
|
|
## access tokens for bearer auth:prefix for bearer tokens types
|
|
### app: app_
|
|
### contact: cnt_
|
|
### pass code: pas_
|
|
### account reset: res_
|
|
### account create: act_
|
|
## subject based content provides external definition of datatypes
|
|
|
|
/revision:
|
|
get:
|
|
tags:
|
|
- revision
|
|
description: Websocket placeholder endpoint for receiving revision updates
|
|
operationId: websocket
|
|
responses:
|
|
'200':
|
|
description: Awaiting announce
|
|
|
|
/admin/claimable:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Check if portal params have been set
|
|
operationId: node-configurable
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'405':
|
|
description: admin already configured
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/config:
|
|
post:
|
|
tags:
|
|
- admin
|
|
description: Set admin password and node domain
|
|
operationId: add-node-config
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: domain
|
|
in: query
|
|
description: domain of node
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'405':
|
|
description: admin already configured
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/config/domain:
|
|
put:
|
|
tags:
|
|
- admin
|
|
description: Set portal domain
|
|
operationId: set-node-config-domain
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: authentication error
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/admin/token:
|
|
put:
|
|
tags:
|
|
- admin
|
|
description: Create password reset token url
|
|
operationId: set-node-account
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: guid
|
|
in: query
|
|
description: id of profile to access
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: unknown portal
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- admin
|
|
description: Create new account token url
|
|
operationId: add-node-account
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Get list of portals
|
|
operationId: get-node-accounts
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: handle not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts/{guid}:
|
|
delete:
|
|
tags:
|
|
- admin
|
|
description: Remove account from node
|
|
operationId: remove-node-account
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: id of account to delete
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid authentication
|
|
'404':
|
|
description: account not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts/{guid}/image:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Get profile of specified account
|
|
operationId: get-node-account-image
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: id of specified account
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: account not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/claimable:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Check if username is available
|
|
operationId: check-username
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: username
|
|
in: query
|
|
description: username to check
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: authentication error
|
|
'405':
|
|
description: username already taken
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/token:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Check if bearer token is valid
|
|
operationId: check-token
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/profile:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get public profile object
|
|
operationId: get-account-profile
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: authentication error
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Add a new account
|
|
operationId: add-account
|
|
security:
|
|
- bearerAuth: []
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'400':
|
|
description: invalid handle or password
|
|
'401':
|
|
description: invalid bearer token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/authentication:
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Generate token to reset authentication
|
|
operationId: add-account-authentication
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Apply account reset token to set handle and password
|
|
operationId: set-account-authentication
|
|
security:
|
|
- bearerAuth: []
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'406':
|
|
description: invalid handle or password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/attachment:
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Generate token to attach an app to the account
|
|
operationId: add-account-app
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Apply the app token and attach an app to the account
|
|
operationId: set-account-app
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid token
|
|
'406':
|
|
description: app limit reached
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppData'
|
|
|
|
/account/apps:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get list of attached apps
|
|
operationId: get-account-apps
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/App'
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/apps/{appId}:
|
|
delete:
|
|
tags:
|
|
- account
|
|
description: Get list of attached apps
|
|
operationId: remove-account-app
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: appId
|
|
in: path
|
|
description: specified app id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: app not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/authenticate:
|
|
put:
|
|
tags:
|
|
- authenticate
|
|
description: Sign payload containing external token for authentication
|
|
operationId: authenticate
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: token to sign in message response
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/profile:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get profile view object
|
|
operationId: get-profile
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- profile
|
|
description: Set profile data
|
|
operationId: set-profile
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProfileData'
|
|
|
|
/profile/image:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get profile image
|
|
operationId: get-profile-image
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/profile/message:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get profile message
|
|
operationId: get-profile-message
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/share/groups:
|
|
get:
|
|
tags:
|
|
- share
|
|
description: Get groups for sharing
|
|
operationId: get-share-groups
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: types
|
|
in: query
|
|
description: limit resutls to groups of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Group'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- share
|
|
description: Add a group for sharing
|
|
operationId: add-share-group
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
/share/groups/{groupId}:
|
|
put:
|
|
tags:
|
|
- share
|
|
description: Update group for sharing
|
|
operationId: update-share-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
delete:
|
|
tags:
|
|
- share
|
|
description: Get groups for sharing
|
|
operationId: remove-share-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards:
|
|
post:
|
|
tags:
|
|
- contact
|
|
description: Add a contact card. Access granted to app tokens of account holder.
|
|
operationId: add-card
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'400':
|
|
description: invalid data message
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/view:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get list of card views. Access granted to app tokens of account holder.
|
|
operationId: get-card-view
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CardView'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Retieve card entry. Permission granted to app tokens for account holder.
|
|
operationId: get-card
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Card'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- contact
|
|
description: Remove card entry. Access granted to app tokens of account holder.
|
|
operationId: remove-card
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'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
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: token
|
|
in: query
|
|
description: token for accessing card
|
|
required: false # required for connected
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardData'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
enum: [ pending, confirmed, connecting, connected ]
|
|
|
|
/contact/cards/{cardId}/openMessage:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get message for connecting to other contacts. Access granted to app tokens for account holder.
|
|
operationId: get-open-message
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'500':
|
|
description: internal server error
|
|
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
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardStatus'
|
|
'400':
|
|
description: invalid data message
|
|
'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
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: card not found
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set message for closing card connection. Access granted to public.
|
|
operationId: set-close-message
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardStatus'
|
|
'400':
|
|
description: invalid data message
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
|
|
/contact/cards/{cardId}/profile:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get profile of card entry.
|
|
operationId: get-contact-profile
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardProfile'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Set profile of card entry
|
|
operationId: set-contact-profile
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
|
|
/contact/cards/{cardId}/profile/image:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get profile of card entry
|
|
operationId: get-contact-profile-image
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/octet-stream: #asset specific
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}/data:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get data of card entry
|
|
operationId: get-contact-data
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}/notes:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Update card notes
|
|
operationId: set-contact-card-notes
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
delete:
|
|
tags:
|
|
- contact
|
|
description: Clear card notes
|
|
operationId: clear-contact-card-notes
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/cards/{cardId}/shares/{shareId}:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Update card notes
|
|
operationId: set-contact-card-share
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: shareId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- contact
|
|
description: Clear card share group
|
|
operationId: clear-contact-card-share
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: shareId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CardData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/blocked:
|
|
get:
|
|
tags:
|
|
- contact
|
|
description: Get list of blocked cards
|
|
operationId: get-contact-blocked-cards
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/blocked/{cardId}:
|
|
post:
|
|
tags:
|
|
- contact
|
|
description: Add card from blocked list
|
|
operationId: add-contact-blocked-card
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- contact
|
|
description: Remove card from blocked list
|
|
operationId: remove-contact-blocked-card
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: cardId
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/contact/profile/revision:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Hook receiver for card profile revision updates
|
|
operationId: revision-profile-hook
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/contact/content/revision:
|
|
put:
|
|
tags:
|
|
- contact
|
|
description: Hook receiver for card content revision updates
|
|
operationId: revision-content-hook
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/content/articleBlocks/view:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get article block views. Acess 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-article-block-view
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articleBlocks/{blockId}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get the articles within specified block. Access granted for app token or contact token. All of the articles are returned for the app token, but only the shared articles are returned for the contact token. An article is shared by assigning a common group to an article or assigning a label to an article that has assigned a common group.
|
|
operationId: get-articles
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: blockId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articleBlocks/{blockId}/view:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get the article views within specified block. Access granted for app token or contact token. All of the articles are returned for the app token, but only the shared articles are returned for the contact token. An article is shared by assigning a common group to an article or assigning a label to an article that has assigned a common group.
|
|
operationId: get-article-views
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: blockId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles:
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add a content article. Access granted to app token of the account holder.
|
|
operationId: add-article
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
blockId:
|
|
type: string
|
|
blockRevision:
|
|
type: integer
|
|
format: int64
|
|
article:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- labels
|
|
- groups
|
|
properties:
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/content/articles/{articleId}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get specified article. Access granted to app token of account holder or contact token of account the article is shared with.
|
|
operationId: get-article
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: article not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove specified article. Access granted to app token of account holder.
|
|
operationId: remove-article
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- content
|
|
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
|
|
security:
|
|
- bearerAuth: []
|
|
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
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Article'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, article not found
|
|
'405':
|
|
description: invalid field
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/subject:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set subject for article. Access granted to app token of account holder.
|
|
operationId: set-article-subject
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: article not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
/content/articles/{articleId}/groups/{groupId}:
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Assign a sharing group for the specified article. Contacts with the same sharing group will have access to the article. Access granted to app token of account holder.
|
|
operationId: set-article-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified share group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: group or article not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove article from sharing group. Unless the article is shared through other groups or labels contacts within that group will no longer have access to the article. Access granted to app tokens of the account holder.
|
|
operationId: clear-article-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: group or article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/labels/{labelId}:
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Assign a label to an article. If the label has been assigned a sharing group the article will be accessible by contacts within that group. Access is granted to app tokens of the account holder.
|
|
operationId: set-article-label
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: labelId
|
|
in: path
|
|
description: specified label id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: label or article not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove a label from an article. If the label has been assigned a sharing group the article and the article is not shared in another way, the article will no longer be accessible to that group's contacts. Access is granted to app tokens of the account holder.
|
|
operationId: clear-article-label
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: labelId
|
|
in: path
|
|
description: specified label id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: label or article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/assets:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get list of assets assigned to an article. 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 article has been shared with.
|
|
operationId: get-article-assets
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Asset'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add an an asset to the to an article. 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-article-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: transforms
|
|
in: query
|
|
description: transforms to apply
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Asset'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: article not found
|
|
'406':
|
|
description: storage limit reached
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileName:
|
|
type: string
|
|
format: binary
|
|
|
|
/content/articles/{articleId}/assets/{assetId}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get asset assigned to an article. 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-article-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: assetId
|
|
in: path
|
|
description: specified asset id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 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
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove an asset from an article. Access granted to app tokens of the account holder.
|
|
operationId: remove-article-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: assetId
|
|
in: path
|
|
description: specified asset id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: asset or article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/confirmed:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Set confirmed state of the article. Until the confirmed state has been set to true, the article will not be visible to contacts with which the article is shared. Access granted to the app tokens of the acocunt holder.
|
|
operationId: set-article-confirmed
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: article not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/content/articles/{articleId}/tagBlocks/view:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get view of tag blocks associated with specified article. Access granted to app tokens of account holder and contact tokens of account with which the article is shared.
|
|
operationId: get-article-tag-block-view
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to tags of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/tagBlocks/{blockId}/view:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get view of tags within speicified block. Access granted to app tokens of account holder and contact token of accounts with which the article is shared.
|
|
operationId: get-article-tag-view
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: blockId
|
|
in: path
|
|
description: specified block id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to tags of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block or article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/tagBlocks/{blockId}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get tags within specified block. Access granted to app tokens of account holder and contact tokens of accounts with which the article is shared.
|
|
operationId: get-article-tags
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: blockId
|
|
in: path
|
|
description: specified block id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to tags of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block or article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/tags:
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add a tag to an article. Access granted to app tokens of the account holder and contact tokens of accounts with which the article is shared.
|
|
operationId: add-article-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
blockId:
|
|
type: string
|
|
blockRevision:
|
|
type: integer
|
|
format: int64
|
|
tag:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/tags/{tagId}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get specified tag. Access granted to app tokens of account holder and contact tokens of accounts with which the article is shared.
|
|
operationId: get-article-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tagId
|
|
in: path
|
|
description: specified tag id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: tag or article not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove a tag from an article. Access granted to app tokens of account holder and the contact tokens of the account that created the tag.
|
|
operationId: remove-article-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tagId
|
|
in: path
|
|
description: specified tag id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: tag or article not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/articles/{articleId}/tags/{tagId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Base64 decode and retrieve specified tag on the article. Access granted to app tokens of account holder and contact tokens of accounts with which the article is shared.
|
|
operationId: get-article-tag-subject-field
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: articleId
|
|
in: path
|
|
description: specified article id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tagId
|
|
in: path
|
|
description: specified tag id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: field
|
|
in: path
|
|
description: field to base64 decode and transfer
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, tag or article not found
|
|
'405':
|
|
description: invalid field
|
|
'500':
|
|
description: internal server error
|
|
|
|
/content/labels:
|
|
get:
|
|
tags:
|
|
- content
|
|
description: Get labels with which to organize the articles. Contacts requesting the labels will only retrieve the labels with which they are shared. Access granted to the app tokens of the account holder and connected contact tokens.
|
|
operationId: get-labels
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: types
|
|
in: query
|
|
description: limit results to labels of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Label'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Add a new label for organizing the articles. Access granted to the app tokens of the account holder.
|
|
operationId: add-label
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
/content/labels/{labelId}:
|
|
put:
|
|
tags:
|
|
- content
|
|
description: Update specified label. Access granted to app tokens of the account holder.
|
|
operationId: update-label
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: labelId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Remove specified label. Access granted the the app tokens of the account holder.
|
|
operationId: remove-label
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: labelId
|
|
in: path
|
|
description: specified label id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: label not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
|
|
/content/labels/{labelId}/groups/{groupId}:
|
|
post:
|
|
tags:
|
|
- content
|
|
description: Set a sharing group for the label and articles assigned to the label. Access granted to app tokens of the account holder.
|
|
operationId: set-label-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: labelId
|
|
in: path
|
|
description: specified label id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: group or label not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- content
|
|
description: Clear a sharing group from a label. Access granted to app tokens of the account holder.
|
|
operationId: clear-label-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: labelId
|
|
in: path
|
|
description: specified label id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: group or label not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Retrieve all dialogues.
|
|
operationId: get-dialogues
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Dialogue'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- conversation
|
|
description: Create and host a new dialogue. Authroization granted to an app token of the account holder.
|
|
operationId: add-dialogue
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Dialogue'
|
|
'401':
|
|
description: permission denied
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/subject:
|
|
put:
|
|
tags:
|
|
- conversation
|
|
description: Set the subject for a dialogue. Authorization granted the an app token for the account holder.
|
|
operationId: set-dialogue-subject
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
/conversation/dialogues/{dialogueId}/active:
|
|
put:
|
|
tags:
|
|
- conversation
|
|
description: Set active state of dialogue. If a dialogue is inactive any update to the topics will fail. Authorization is granted to an app token of the account holder.
|
|
operationId: set-dialogue-active
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/conversation/dialogues/{dialogueId}/insight/{guid}:
|
|
post:
|
|
tags:
|
|
- conversation
|
|
description: Add insight to a dialogue. This endpoint will automatically invoke the add insight on the contact's node. Authorization is granted to the app token of the account holder.
|
|
operationId: add-dialogue-insight
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: guid
|
|
in: path
|
|
description: specified card id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: guid or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- conversation
|
|
description: Remove an insight from a dialogue. This endpoint will authomatically invoke the delete insight endpoint on the contact's node. Authorization is granted to the app token of the accoun holder.
|
|
operationId: remove-dialogue-insight
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: guid
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: guid or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/insight/{guid}/status:
|
|
put:
|
|
tags:
|
|
- conversation
|
|
description: Set active status for contact on the host node. Access is granted to a contact token for an accound with the specified guid
|
|
operationId: set-dialogue-insight-status
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: guid
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: guid or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
enum: [ active, inactive, dismissed ]
|
|
|
|
/conversation/dialogues/{dialogueId}:
|
|
delete:
|
|
tags:
|
|
- conversation
|
|
description: Remove specified dialogue. This endpoint will authomatically invoke the delete insight endpoint on all of the contacts' nodes. Access is granted to an app token for the account holder.
|
|
operationId: remove-dialogue
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/insights:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Retrieve all insights. Access granted to app token for the account holder.
|
|
operationId: get-insights
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Insight'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/insights/{guid}/dialogues/{dialogueId}:
|
|
post:
|
|
tags:
|
|
- conversation
|
|
description: Create or update an insight. Access granted to a contact token for a contact with the specified guid. This endpoint is invoked by the webhook from the contact node.
|
|
operationId: add-insight-dialogue
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: id of contact hosting the dialogue
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: dialogueId
|
|
in: path
|
|
description: dialogue with insight id to update
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
enum: [ active, inactive, dismissed ]
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: dialogue or guid not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
delete:
|
|
tags:
|
|
- conversation
|
|
description: Remove a specified insight. If the referenced dialogue is still active, the insight will get recreated with the next hook receiver update. Access granted to app token of account holder or contact token of dialogue host.
|
|
operationId: set-insight-dialogue
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: id of contact hosting the dialogue
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: dialogueId
|
|
in: path
|
|
description: insight id to update
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: dialogue or guid not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/insights/{guid}/dialogues/{dialogueId}/status:
|
|
put:
|
|
tags:
|
|
- conversation
|
|
description: Set the active status of an insight. This will cause the hook receiver to return an inactive status. Access granted to app token of account holder.
|
|
operationId: set-insight-dialogue-active
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: id of contact hosting the dialogue
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: dialogueId
|
|
in: path
|
|
description: dialogue with insight id to update
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: dialogue or guid not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
enum: [ active, inactive, dismissed ]
|
|
|
|
/conversation/dialogues/{dialogueId}/topicBlocks/view:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Get a view of the topicBlocks within a dialogue. Authorization granted to account holder app token or dialogue member contact token who is also a member of the dialogue
|
|
operationId: get-topic-block-view
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to topics of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topicBlocks/{blockId}:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Get the topics within a topicBlock. Only the account holder and the topic creator will retrieve pending topics. Authorization granted to account holder app token or dialogue member contact token who is also a member of the dialogue
|
|
operationId: get-topic-block
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: blockId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to topics of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Topic'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topicBlocks/{blockId}/view:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Get a view of the topics within a topicBlock. Authorization granted to account holder app token or dialogue member contact token who is also a member of the dialogue.
|
|
operationId: get-topic-views
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: blockId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to topics of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics:
|
|
post:
|
|
tags:
|
|
- conversation
|
|
description: Add a topic to a dialogue. The response contains the topicBlock ID and topicBlock revision to which the topic is assigned. Authorization granted to account holder app token or dialogue member contact token who is a member of the dialogue.
|
|
operationId: add-dialogue-topic
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
blockId:
|
|
type: string
|
|
blockRevision:
|
|
type: integer
|
|
format: int64
|
|
topic:
|
|
$ref: '#/components/schemas/Topic'
|
|
'401':
|
|
description: permission denied
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Retrieve a specified dialogue topic. Authorization granted to account holder app token or dialogue member contact token who is a member of the dialogue.
|
|
operationId: get-dialogue-topic
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Topic'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- conversation
|
|
description: Remove a topic from a dialogue. Authorization granted to account holder app token or dialogue member contact token who is either the topic createor or the account holder.
|
|
operationId: remove-dialogue-topic
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: permission denied
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: topic or dilaogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Base64 decode and retrieve a specified field from subject of dialogue topic. Authorization granted to account holder app token or dialogue member contact token who is a member of the dialogue.
|
|
operationId: get-dialogue-topic-subject-field
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: field
|
|
in: path
|
|
description: field to base64 decode and retrieve
|
|
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: field, topic or dialogue not found
|
|
'405':
|
|
description: invalid field
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/subject:
|
|
put:
|
|
tags:
|
|
- conversation
|
|
description: Set the subject for a topic. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
|
|
operationId: set-topic-subject
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
'401':
|
|
description: invalid token
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/assets:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Get all assets associated with the specified topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
|
|
operationId: get-topic-assets
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Asset'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- conversation
|
|
description: Add an asset to a topic. The asset will be processed and transcoded according to the specified transformation. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
|
|
operationId: add-topic-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: transforms
|
|
in: query
|
|
description: transforms to apply
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Asset'
|
|
'401':
|
|
description: permission denied
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileName:
|
|
type: string
|
|
format: binary
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/assets/{assetId}:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Retrieve an asset associated with a topic. All transformed assets can be retrieved by anyone with access to the topic, but the original asset can only be retrieved by the author of the topic. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
|
|
operationId: get-topic-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: assetId
|
|
in: path
|
|
description: specified asset id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
content:
|
|
application/octet-stream: #asset specific
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: asset, topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- conversation
|
|
description: Remove and delete an asset associated with a topic. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
|
|
operationId: remove-topic-asset
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: assetId
|
|
in: path
|
|
description: specified asset id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: asset, topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/confirmed:
|
|
put:
|
|
tags:
|
|
- conversation
|
|
description: After the assets have been uploaded and the subject has been set, the topic should be set to confirmed (true) to make the topic available to others. Authorization granted to account holder app token or dialogue member contact token who is also the creator of the topic.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/tagBlocks/view:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Get a view of all of all tagBlocks. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
|
|
operationId: get-topic-tag-block-view
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to articles of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/tagBlocks/{blockId}/view:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Get a view of all of the tags within a block. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
|
|
operationId: get-topic-tag-view
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: blockId
|
|
in: path
|
|
description: specified block id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to tags of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block, topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/tagBlocks/{blockId}:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Get all of the tags within a tag block. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
|
|
operationId: get-topic-tags
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: blockId
|
|
in: path
|
|
description: specified block id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: types
|
|
in: query
|
|
description: limit results to tags of types
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: block, topic, or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/tags:
|
|
post:
|
|
tags:
|
|
- conversation
|
|
description: Add a tag to specified topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic. The body of the post contains the subject of the tag, which can have no associated assets.
|
|
operationId: add-topic-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
blockId:
|
|
type: string
|
|
blockRevision:
|
|
type: integer
|
|
format: int64
|
|
tag:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: topic or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
properties:
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/tags/{tagId}:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Retrieve specified tag on the topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
|
|
operationId: get-topic-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tagId
|
|
in: path
|
|
description: specified tag id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: tag, topic, or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- conversation
|
|
description: Remove specified tag from the topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
|
|
operationId: remove-topic-tag
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tagId
|
|
in: path
|
|
description: specified tag id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: permission denied
|
|
'403':
|
|
description: inactive dialogue
|
|
'404':
|
|
description: tag, topic, or dialogue not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/conversation/dialogues/{dialogueId}/topics/{topicId}/tags/{tagId}/subject/{field}:
|
|
get:
|
|
tags:
|
|
- conversation
|
|
description: Base64 decode and retrieve specified field of tag subject on the topic. Authorization granted to account holder app token or dialogue member contact token who has access to the topic.
|
|
operationId: get-topic-tag-subject-field
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: dialogueId
|
|
in: path
|
|
description: specified dialogue id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: topicId
|
|
in: path
|
|
description: specified topic id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tagId
|
|
in: path
|
|
description: specified tag id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: field
|
|
in: path
|
|
description: field to base64 decode and download
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Tag'
|
|
'401':
|
|
description: permission denied
|
|
'404':
|
|
description: field, tag, topic, or dialogue not found
|
|
'405':
|
|
description: invalid field
|
|
'500':
|
|
description: internal server error
|
|
|
|
externalDocs:
|
|
description: Find out more about Swagger
|
|
url: 'http://swagger.io'
|
|
|
|
components:
|
|
schemas:
|
|
|
|
Announce:
|
|
type: object
|
|
required:
|
|
- appToken
|
|
properties:
|
|
appToken:
|
|
type: string
|
|
|
|
Revsion:
|
|
type: object
|
|
required:
|
|
- profile
|
|
- content
|
|
- view # revision increment on sharing changes
|
|
- share
|
|
- label
|
|
- card
|
|
- blocked
|
|
- dialogue
|
|
- insight
|
|
properties:
|
|
profile:
|
|
type: integer
|
|
format: int64
|
|
content:
|
|
type: integer
|
|
format: int64
|
|
labels:
|
|
type: integer
|
|
format: int64
|
|
sharing:
|
|
type: integer
|
|
format: int64
|
|
card:
|
|
type: integer
|
|
format: int64
|
|
dialogue:
|
|
type: integer
|
|
format: int64
|
|
insight:
|
|
type: integer
|
|
format: int64
|
|
|
|
Profile:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- revision
|
|
- node
|
|
properties:
|
|
guid:
|
|
type: string
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
image:
|
|
type: string
|
|
format: base64 encoded data
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
node:
|
|
type: string
|
|
|
|
ProfileData:
|
|
type: object
|
|
properties:
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
image:
|
|
type: string
|
|
|
|
App:
|
|
type: object
|
|
required:
|
|
- appId
|
|
- appData
|
|
- attached
|
|
properties:
|
|
appId:
|
|
type: string
|
|
appData:
|
|
$ref: '#/components/schemas/AppData'
|
|
attached:
|
|
type: integer
|
|
format: int32
|
|
|
|
AppData:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
url:
|
|
type: string
|
|
image:
|
|
type: string
|
|
format: base64 encoded image
|
|
|
|
CardView:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- profileRevision
|
|
- contentRevision
|
|
- cardRevision
|
|
properties:
|
|
guid:
|
|
type: string
|
|
cardRevision:
|
|
type: integer
|
|
format: int64
|
|
profileRevision:
|
|
type: integer
|
|
format: int64
|
|
contentRevision:
|
|
type: integer
|
|
format: int64
|
|
converstaionRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
CardProfile:
|
|
type: object
|
|
required:
|
|
- node
|
|
properties:
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
imageSet:
|
|
type: boolean
|
|
node:
|
|
type: string
|
|
|
|
CardData:
|
|
type: object
|
|
required:
|
|
- status
|
|
properties:
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: [ pending, confirmed, connecting, connected ]
|
|
details:
|
|
type: string
|
|
token:
|
|
type: string
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
CardStatus:
|
|
type: object
|
|
required:
|
|
- status
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum: [ pending, confirmed, requested, connecting, connected ]
|
|
token:
|
|
type: string
|
|
|
|
Card:
|
|
type: object
|
|
required:
|
|
- cardProfile
|
|
- cardData
|
|
- contentRevision
|
|
- conversationRevision
|
|
properties:
|
|
cardProfile:
|
|
$ref: '#/components/schemas/CardProfile'
|
|
cardData:
|
|
$ref: '#/components/schemas/CardData'
|
|
contentRevision:
|
|
type: integer
|
|
format: int64
|
|
converstaionRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
Subject:
|
|
type: object
|
|
required:
|
|
- subjectId
|
|
- revision
|
|
- type
|
|
- data
|
|
- created
|
|
- modified
|
|
properties:
|
|
subjectId:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
type:
|
|
type: string
|
|
data:
|
|
type: string
|
|
created:
|
|
type: integer
|
|
format: int32
|
|
|
|
Asset:
|
|
type: object
|
|
required:
|
|
- assetId
|
|
properties:
|
|
assetId:
|
|
type: string
|
|
transform:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum: [ pending, processing, ready, error ]
|
|
|
|
Tag:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- subject
|
|
properties:
|
|
guid:
|
|
type: string
|
|
subject:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
Insight:
|
|
type: object
|
|
required:
|
|
- insightId
|
|
- revision
|
|
- guid
|
|
- status
|
|
properties:
|
|
insightId:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
guid:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum: [ active, inactive, dismissed ]
|
|
|
|
Dialogue:
|
|
type: object
|
|
required:
|
|
- dialogueId
|
|
- revision
|
|
- active
|
|
- subject
|
|
- insights
|
|
properties:
|
|
dialogueId:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
active:
|
|
type: boolean
|
|
subject:
|
|
$ref: '#/components/schemas/Subject'
|
|
insights:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
guid:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum: [ active, offsync, inactive, dismissed ]
|
|
|
|
Topic:
|
|
type: object
|
|
required:
|
|
- topicId
|
|
- revision
|
|
- status
|
|
- subject
|
|
- tagCount
|
|
- tagUpdated
|
|
- tagRevision
|
|
properties:
|
|
articleId:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: [ unconfirmed, confirmed, complete, error ]
|
|
subject:
|
|
$ref: '#/components/schemas/Subject'
|
|
tagCount:
|
|
type: integer
|
|
format: int32
|
|
tagUpdate:
|
|
type: integer
|
|
format: int32
|
|
tagRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
Article:
|
|
type: object
|
|
required:
|
|
- articleId
|
|
- revision
|
|
- status
|
|
- subject
|
|
- labels
|
|
- tagCount
|
|
- tagUpdated
|
|
- tagRevision
|
|
properties:
|
|
articleId:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: [ unconfirmed, confirmed, complete, error ]
|
|
subject:
|
|
$ref: '#/components/schemas/Subject'
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
groups: # present only in account holder responses
|
|
type: array
|
|
items:
|
|
type: string
|
|
tagCount:
|
|
type: integer
|
|
format: int32
|
|
tagUpdate:
|
|
type: integer
|
|
format: int32
|
|
tagRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
Group:
|
|
type: object
|
|
required:
|
|
- subject
|
|
properties:
|
|
subject:
|
|
$ref: '#/components/schemas/Subject'
|
|
|
|
Label:
|
|
type: object
|
|
required:
|
|
- subject
|
|
properties:
|
|
subject:
|
|
$ref: '#/components/schemas/Subject'
|
|
groups: # present only in account holder responses
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
Authenticate:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- token
|
|
- timestamp
|
|
properties:
|
|
token:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
format: int32
|
|
|
|
Connect:
|
|
type: object
|
|
required:
|
|
- requestorId
|
|
- requestedId
|
|
- timestamp
|
|
- profile
|
|
- token
|
|
- contentRevision
|
|
properties:
|
|
requestorGuid:
|
|
type: string
|
|
requestedGuid:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
format: int32
|
|
profile:
|
|
$ref: '#/components/schemas/Profile'
|
|
token:
|
|
type: string
|
|
contentRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
Disconnect:
|
|
type: object
|
|
required:
|
|
- requestorId
|
|
- requestedId
|
|
- timestamp
|
|
properties:
|
|
requestorId:
|
|
type: string
|
|
requestedId:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
format: int32
|
|
|
|
DataMessage:
|
|
type: object
|
|
required:
|
|
- message
|
|
- messageType
|
|
- keyType
|
|
- publicKey
|
|
- signature
|
|
properties:
|
|
messageType:
|
|
type: string
|
|
enum: [Connect, Disconnect, Profile, Authenticate]
|
|
message:
|
|
type: string
|
|
format: base64 encoded object
|
|
keyType:
|
|
type: string
|
|
enum: [RSA4096, RSA2048]
|
|
publicKey:
|
|
type: string
|
|
format: base64 encoding of account key
|
|
signature:
|
|
type: string
|
|
format: base64 encoding of message signature
|
|
|
|
|
|
securitySchemes:
|
|
|
|
basicAuth:
|
|
type: http
|
|
scheme: basic
|
|
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|