1_55_4.agent-api-public-deprecated.yaml Maven / Gradle / Ivy
swagger: '2.0'
info:
version: '1.55.4'
title: Agent API
description: |
This document refers to Symphony API calls to send and receive messages
and content. They need the on-premise Agent installed to perform
decryption/encryption of content.
- sessionToken and keyManagerToken can be obtained by calling the
authenticationAPI on the symphony back end and the key manager
respectively. Refer to the methods described in authenticatorAPI.yaml.
- Actions are defined to be atomic, ie will succeed in their entirety
or fail and have changed nothing.
- If it returns a 40X status then it will have sent no message to any
stream even if a request to aome subset of the requested streams
would have succeeded.
- If this contract cannot be met for any reason then this is an error
and the response code will be 50X.
- MessageML is a markup language for messages. See reference here:
https://rest-api.symphony.com/docs/messagemlv2
paths:
'/v4/datafeed/create':
post:
summary: Create a new real time message event stream.
description: |
A datafeed provides the messages in all conversations that a user is in.
This also includes system messages like new users joining a chatroom.
A datafeed will expire if it isn't read before its capacity is reached.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
consumes:
- application/json
produces:
- application/json
tags:
- Datafeed
responses:
'200':
description: OK
schema:
$ref: '#/definitions/Datafeed'
'400':
description: 'Client error.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'503':
description: 'Max number of data feeds reached.'
schema:
$ref: '#/definitions/V2Error'
'/v4/datafeed/{id}/read':
get:
summary: Read a given datafeed.
description: |
Read messages from the given datafeed. If no more messages are available then this method will block.
It is intended that the client should re-call this method as soon as it has processed the messages
received in the previous call. If the client is able to consume messages more quickly than they become
available then each call will initially block, there is no need to delay before re-calling this method.
A datafeed will expire if its unread capacity is reached.
A datafeed can only be consumed by one client thread at a time. E.g. polling the datafeed by two threads may lead to messages being delivered out of order.
parameters:
- name: id
description: |
Datafeed ID
in: path
required: true
type: string
- name: limit
description: |
Max No. of messages to return.
in: query
type: integer
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
consumes:
- application/json
produces:
- application/json
tags:
- Datafeed
responses:
'200':
description: List of messages that have occurred since last time this URL was polled. If the list is empty, it means the request has reached its timeout, and the client should poll again.
schema:
$ref: '#/definitions/V4EventList'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v2/HealthCheck':
get:
summary: Checks the health of the Agent.
description: |
Used to validate the configuration of the agent.
Makes a request to the HealthCheck on the Symphony cloud.
Makes a request to the HealthCheck on the Key Manager service.
Encryts and decrypts a message inside either agent or user SbeSession with wall thread id.
parameters:
- name: showFirehoseErrors
description: |
Flag to set if Firehose Service connectivity errors will show on Agent's healthcheck or not.
Default is "false", so no errors will show up if connectivity check isn't successful.
in: query
required: false
type: boolean
- name: sessionToken
description: Session authentication token.
in: header
required: false
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
consumes:
- application/json
produces:
- application/json
tags:
- System
responses:
'200':
description: The Agent is functioning properly.
schema:
$ref: '#/definitions/V2HealthCheckResponse'
'/v4/message/import':
post:
summary: Import messages from other systems into Symphony.
description: |
Sends a message to be imported into the system.
Allows you to override the timestamp and author of the message with your desired values.
The requesting user must have the Content Management role.
The user that the message is intended to have come from must also be present in the conversation.
The intended message timestamp must be a valid time from the past. It cannot be a future timestamp.
Optionally the original message ID can be specified to identify the imported message for the purpose of repeat imports.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: messageList
in: body
required: true
schema:
$ref: '#/definitions/V4MessageImportList'
tags:
- Messages
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/V4ImportResponseList'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/message/{id}':
get:
summary: Get a message by ID
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: id
description: Message ID as a URL-safe string
in: path
required: true
type: string
tags:
- Messages
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V4Message'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/message/search':
get:
summary: Search messages
description: |
Search messages according to the specified criteria. The "query" parameter takes a search query defined as
"field:value" pairs combined by the operator "AND" (e.g. "text:foo AND autor:bar"). Supported fields are
(case-insensitive): "text", "author", "hashtag", "cashtag", "mention", "signal", "fromDate", "toDate",
"streamId", "streamType".
"text" search requires a "streamId" to be specified.
"streamType" accepts one of the following values: "chat" (IMs and MIMs), "im", "mim", "chatroom", "post".
"signal" queries can only be combined with "fromDate", "toDate", "skip" and "limit" parameters.
produces:
- application/json
parameters:
- name: query
description: |
The search query. See above for the query syntax.
in: query
type: string
required: true
- name: skip
description: |
No. of results to skip.
in: query
type: integer
- name: limit
description: |
Max no. of results to return. If no value is provided, 50 is the default.
in: query
type: integer
required: false
- name: scope
description: |
Describes where content should be searched for that query.
It can exclusively apply to Symphony content or to one Connector.
in: query
type: string
- name: sortDir
description: |
Messages sort direction : ASC or DESC (default to DESC)
in: query
type: string
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Messages
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V4MessageList'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
post:
summary: Search messages
description: |
Search messages according to the specified criteria.
consumes:
- application/json
produces:
- application/json
parameters:
- name: query
description: |
The search query. See above for the query syntax.
in: body
required: true
schema:
$ref: '#/definitions/MessageSearchQuery'
- name: skip
description: |
No. of results to skip.
in: query
type: integer
- name: limit
description: |
Max no. of results to return. If no value is provided, 50 is the default.
in: query
type: integer
required: false
- name: scope
description: |
Describes where content should be searched for that query.
It can exclusively apply to Symphony content or to one Connector.
in: query
type: string
- name: sortDir
description: |
Messages sort direction : ASC or DESC (default to DESC)
in: query
type: string
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Messages
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V4MessageList'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/stream/{sid}/attachment':
get:
summary: Download an attachment.
description: |
Downloads the attachment body by the attachment ID, stream ID, and message ID.
consumes:
- application/json
produces:
- application/octet-stream
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: fileId
description: The attachment ID (Base64-encoded)
in: query
required: true
type: string
- name: messageId
description: The ID of the message containing the attachment
in: query
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Attachments
responses:
'200':
description: 'Attachment body as Base64 encoded string.'
schema:
type: string
format: byte
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v4/stream/{sid}/message':
get:
summary: Get messages from an existing stream.
description: |
A caller can fetch all unseen messages by passing the timestamp of
the last message seen as the since parameter and the number of messages
with the same timestamp value already seen as the skip parameter. This
means that every message will be seen exactly once even in the case that
an additional message is processed with the same timestamp as the last
message returned by the previous call, and the case where there are
more than maxMessages with the same timestamp value.
This method is intended for historic queries and is generally reliable
but if guaranteed delivery of every message in real time is required
then the equivilent firehose method should be called.
produces:
- application/json
parameters:
- name: sid
description: |
Stream ID
in: path
required: true
type: string
- name: since
description: |
Timestamp of first required message.
This is a long integer value representing milliseconds since
Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: skip
description: |
No. of messages to skip.
in: query
type: integer
- name: limit
description: |
Max No. of messages to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Messages
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V4MessageList'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v4/stream/{sid}/message/create':
post:
summary: Post a message to one existing stream.
description: |
Post a new message to the given stream. The stream can be a chatroom,
an IM or a multiparty IM.
You may include an attachment on the message.
The message can be provided as MessageMLV2 or PresentationML. Both formats support Freemarker templates.
The optional parameter "data" can be used to provide a JSON payload containing entity data.
If the message contains explicit references to entity data (in "data-entity-id" element attributes),
this parameter is required.
If the message is in MessageML and fails schema validation
a client error results
If the message is sent then 200 is returned.
Regarding authentication, you must either use the sessionToken which was created for delegated app access
or both the sessionToken and keyManagerToken together.
consumes:
- multipart/form-data
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Authorization token used to make delegated calls.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
type: string
required: false
- name: message
description: The message payload in MessageML.
in: formData
type: string
required: false
- name: data
description: Optional message data in EntityJSON.
in: formData
type: string
required: false
- name: version
description: |
Optional message version in the format "major.minor". If empty, defaults to the latest supported version.
in: formData
type: string
required: false
- name: attachment
description: Optional file attachment.
in: formData
type: file
required: false
- name: preview
description: Optional attachment preview.
in: formData
type: file
required: false
tags:
- Messages
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/V4Message'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'451':
description: 'Compliance Issues found in message or file'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v3/stream/{sid}/share':
post:
summary: PROVISIONAL - Share a piece of content into Symphony
description: |
Given a 3rd party content (eg. news article), it can share to the given stream.
The stream can be a chatroom, an IM or a multiparty IM.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: shareContent
in: body
required: true
schema:
$ref: '#/definitions/ShareContent'
tags:
- Share
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V2Message'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/util/echo':
post:
summary: Test endpoint, returns input.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: echoInput
description: |
Message in plain text
in: body
required: true
schema:
$ref: '#/definitions/SimpleMessage'
tags:
- Util
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/SimpleMessage'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/signals/list':
get:
summary: |
List signals for the requesting user. This includes signals that the user has created and public signals
to which they subscribed.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: skip
description: |
No. of signals to skip.
in: query
type: integer
- name: limit
description: |
Max no. of signals to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
tags:
- Signals
responses:
'200':
description: List of signals for the requesting user.
schema:
$ref: '#/definitions/SignalList'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/signals/{id}/get':
get:
summary: Get details of the requested signal.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: id
description: |
The ID of the signal to display.
in: path
required: true
type: string
tags:
- Signals
responses:
'200':
description: List of signals for the requesting user.
schema:
$ref: '#/definitions/Signal'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/signals/create':
post:
summary: Create a signal.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: signal
description: Signal definition.
in: body
required: true
schema:
$ref: '#/definitions/BaseSignal'
tags:
- Signals
responses:
'200':
description: Signal created.
schema:
$ref: '#/definitions/Signal'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'451':
description: 'Compliance Issues found in signal'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/signals/{id}/update':
post:
summary: Update a signal.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: id
description: The id of the signal.
in: path
required: true
type: string
- name: signal
description: Signal definition.
in: body
required: true
schema:
$ref: '#/definitions/BaseSignal'
tags:
- Signals
responses:
'200':
description: Signal updated.
schema:
$ref: '#/definitions/Signal'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'451':
description: 'Compliance Issues found in signal'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/signals/{id}/delete':
post:
summary: Delete a signal.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: id
description: The id of the signal.
in: path
required: true
type: string
tags:
- Signals
responses:
'200':
description: Signal deleted.
schema:
$ref: '#/definitions/SuccessResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/signals/{id}/subscribe':
post:
summary: Subscribe to a Signal.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: id
description: The id of the signal.
in: path
required: true
type: string
- name: pushed
description: Prevent the user to unsubscribe (only for bulk subscription)
in: query
required: false
type: boolean
- name: users
description: UserIds to subscribe (only for bulk subscription)
in: body
required: false
schema:
type: array
items:
type: integer
format: int64
tags:
- Signals
responses:
'200':
description: Signal subscribed.
schema:
$ref: '#/definitions/ChannelSubscriptionResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/signals/{id}/unsubscribe':
post:
summary: Unsubscribe to a Signal.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: id
description: The id of the signal.
in: path
required: true
type: string
- name: users
description: UserIds to unsubscribe (only for bulk unsubscription)
in: body
required: false
schema:
type: array
items:
type: integer
format: int64
tags:
- Signals
responses:
'200':
description: Signal unsubscribed.
schema:
$ref: '#/definitions/ChannelSubscriptionResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/signals/{id}/subscribers':
get:
summary: Get the subscribers of a signal
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: id
description: The id of the signal.
in: path
required: true
type: string
- name: skip
description: No. of results to skip.
in: query
required: false
type: integer
default: 0
- name: limit
description: Max No. of subscribers to return. If no value is provided, 100 is the default.
in: query
required: false
type: integer
default: 100
tags:
- Signals
responses:
'200':
description: Signal Subscribers.
schema:
$ref: '#/definitions/ChannelSubscriberResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/info':
get:
summary: Get information about the Agent
consumes:
- application/json
produces:
- application/json
tags:
- Signals
responses:
'200':
description: Agent info.
schema:
$ref: '#/definitions/AgentInfo'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/V2Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/V2Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/V2Error'
'/v1/dlp/policies':
get:
summary: Get all policies
description: Get all policies
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: page
in: query
required: false
type: integer
format: int32
description: Optional parameter to specify which page to return (default is 0)
- name: limit
in: query
required: false
type: integer
format: int32
description: |
Optional parameter to specify the number of result to return per page, default is 50. Maximum is 50.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPPoliciesCollectionResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
post:
summary: Creates a policy
description: |
Creates a new policy with dictionary references.
At the time of policy creation, the caller should only provide - contentTypes, name, scopes and type. The rest of the information is populated automatically.
Note - You need to enable the policy after creation to start enforcing the policy.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/V1DLPPolicyRequest'
description: Details about the policy that should be created.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/policies/{policyId}':
get:
summary: Get a policy
description: Get a policy
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
description: Unique dictionary identifier.
- name: policyVersion
in: query
required: false
type: string
description: |
Optional parameter, if set to be valid policy version number, will return policy with specified policyVersion. Otherwise, return the latest policy.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
put:
summary: Updates a policy. Cannot be used for creation.
description: |
Update the policy (name, type, contentTypes, scopes) and also the dictionaries for a policy.
Warning: If you send empty list of dictionaries during the update operation, then all the
dictionaries for this policy are deleted and policy is automatically disabled.
Note: The policy should already exist.
consumes:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
description: Unique dictionary identifier.
- name: body
in: body
required: true
schema:
$ref: '#/definitions/V1DLPPolicyRequest'
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
delete:
summary: Delete a policy
description: |
Delete a policy.
Note: Only disabled policy can be deleted
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
description: Unique dictionary identifier.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/policies/{policyId}/enable':
post:
summary: Enables a policy.
description: Enables a policy.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/policies/{policyId}/disable':
post:
summary: Disables a policy.
description: Disables a policy.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/dictionaries':
get:
summary: Get all dictionary metadatas
description: |
Get all dictionary metadatas with the latest version. Each dictionary object will only contain meta data of the content.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: page
in: query
required: false
type: integer
format: int32
description: Optional parameter to specify which page to return (default is 0)
- name: limit
in: query
required: false
type: integer
format: int32
description: |
Optional parameter to specify the number of result to return per page, default is 50. Maximum is 50.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPDictionaryMetadataCollectionResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
post:
summary: Create a dictionary
description: |
Creates a dictionary with basic metadata and no content. Only "name" and "type" field is used to create a new dictionary entry.
consumes:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/V1DLPDictionaryMetadataCreateRequest'
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPDictionaryMetadataResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/dictionaries/{dictId}':
get:
summary: Get dictionary metadata
description: Get basic information for a dictionary.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: dictId
in: path
required: true
type: string
description: Unique dictionary identifier
- name: dictVersion
in: query
required: false
type: string
description: |
If set to be valid dictionary version number, will return dictionary metadata with specified version. Otherwise, return the latest dictionary metadata.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPDictionaryMetadataResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
put:
summary: Updates a dictionary
description: |
Updates the dictionary's basic metadata without content.
This API cannot be used for creating a new dictionary.
In case of update only "name" can be changed.
Note: All related policies will also have versions updated.
consumes:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: dictId
in: path
required: true
type: string
description: Unique dictionary identifier
- name: body
in: body
required: true
schema:
$ref: '#/definitions/V1DLPDictionaryMetadataUpdateRequest'
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPDictionaryMetadataResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
delete:
summary: Delete a dictionary
description: |
Deletes a dictionary.
Note: All related policies will be affected.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: dictId
in: path
required: true
type: string
description: Unique dictionary identifier
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
# Deleted dictionary's metadata.
$ref: '#/definitions/V1DLPDictionaryMetadataResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/dictionaries/{dictId}/data/download':
get:
summary: Downloads Base 64 encoded dictionary content.
description: Downloads Base 64 encoded dictionary content.
consumes:
- application/json
produces:
- application/octet-stream
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: dictId
in: path
required: true
type: string
description: Unique dictionary identifier
- name: dictVersion
in: query
required: false
type: string
description: |
If set to be valid dictionary version number, will return dictionary with specified version. Otherwise, return the latest dictionary.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: 'Attachment body as Base64 encoded string.'
schema:
type: string
format: byte
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/dictionaries/{dictId}/data/upload':
post:
summary: Override dictionary content with provided content.
description: Override dictionary content with provided content.
consumes:
- multipart/form-data
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: dictId
in: path
required: true
type: string
description: Unique dictionary identifier
- name: data
in: formData
required: true
type: file
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V1DLPDictionaryMetadataResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/violations/message':
get:
summary: Get violations as a result of policy enforcement on messages.
description: |
TBD
produces:
- application/json
parameters:
- name: startTime
description: |
Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: endTime
description: |
Timestamp of the last required violation.
This is a long integer value representing milliseconds since Jan 1 1970
If unspecified, it will default to current time of the request.
in: query
required: false
type: integer
format: int64
- name: next
description: |
Offset of the next chunk of violations. Value is null for the first request.
in: query
type: string
required: false
- name: limit
description: |
Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Violations
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V1DLPViolationMessageResponse'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/violations/stream':
get:
summary: Get violations as a result of policy enforcement on streams.
description: |
TBD
produces:
- application/json
parameters:
- name: startTime
description: |
Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: endTime
description: |
Timestamp of the last required violation.
This is a long integer value representing milliseconds since Jan 1 1970
If unspecified, it will default to current time of the request.
in: query
required: false
type: integer
format: int64
- name: next
description: |
Offset of the next chunk of violations. Value is null for the first request.
in: query
type: string
required: false
- name: limit
description: |
Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Violations
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V1DLPViolationStreamResponse'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/dlp/violations/signal':
get:
summary: Get violations as a result of policy enforcement on signals.
description: |
TBD
produces:
- application/json
parameters:
- name: startTime
description: |
Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: endTime
description: |
Timestamp of the last required violation.
This is a long integer value representing milliseconds since Jan 1 1970
If unspecified, it will default to current time of the request.
in: query
required: false
type: integer
format: int64
- name: next
description: |
Offset of the next chunk of violations. Value is null for the first request.
in: query
type: string
required: false
- name: limit
description: |
Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Violations
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V1DLPViolationSignalResponse'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/policies':
get:
summary: Get all policies
description: Get all policies
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: page
in: query
required: false
type: integer
format: int32
description: Optional parameter to specify which page to return (default is 0)
- name: limit
in: query
required: false
type: integer
format: int32
description: |
Optional parameter to specify the number of result to return per page, default is 50. Maximum is 50.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V3DLPPoliciesCollectionResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
post:
summary: Creates a policy
description: |
Creates a new policy with dictionary references.
At the time of policy creation, the caller should only provide - contentTypes, name, scopes and type.
The rest of the information is populated automatically.
Note - You need to enable the policy after creation to start enforcing the policy.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/V3DLPPolicyRequest'
description: Details about the policy that should be created.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V3DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/policies/{policyId}':
get:
summary: Get a policy
description: Get a policy
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
description: Unique dictionary identifier.
- name: policyVersion
in: query
required: false
type: string
description: |
Optional parameter, if set to be valid policy version number, will return policy with specified policyVersion. Otherwise, return the latest policy.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V3DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/policies/{policyId}/update':
post:
summary: Updates a policy. Cannot be used for creation.
description: |
Update the policy (name, type, contentTypes, scopes) and also the dictionaries for a policy.
Warning: If you send empty list of dictionaries during the update operation, then all the
dictionaries for this policy are deleted and policy is automatically disabled.
Note: The policy should already exist.
consumes:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
description: Unique dictionary identifier.
- name: body
in: body
required: true
schema:
$ref: '#/definitions/V3DLPPolicyRequest'
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V3DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/policies/{policyId}/delete':
post:
summary: Delete a policy
description: |
Delete a policy.
Note: Only disabled policy can be deleted
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
description: Unique dictionary identifier.
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V3DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/policies/{policyId}/enable':
post:
summary: Enables a policy.
description: Enables a policy.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V3DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/policies/{policyId}/disable':
post:
summary: Disables a policy.
description: Disables a policy.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: policyId
in: path
required: true
type: string
tags:
- DLP Policies and Dictionary Management
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V3DLPPolicyResponse'
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/violations/message':
get:
summary: Get violations as a result of policy enforcement on messages.
description: Retrieves DLP v3 message related violations for a given time range
produces:
- application/json
parameters:
- name: startTime
description: |
Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: endTime
description: |
Timestamp of the last required violation.
This is a long integer value representing milliseconds since Jan 1 1970
If unspecified, it will default to current time of the request.
in: query
required: false
type: integer
format: int64
- name: next
description: |
Offset of the next chunk of violations. Value is null for the first request.
in: query
type: string
required: false
- name: limit
description: |
Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Violations
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V3DLPViolationMessageResponse'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/violations/stream':
get:
summary: Get violations as a result of policy enforcement on streams.
description: Retrieves DLP v3 signal related violations for a given time range
produces:
- application/json
parameters:
- name: startTime
description: |
Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: endTime
description: |
Timestamp of the last required violation.
This is a long integer value representing milliseconds since Jan 1 1970
If unspecified, it will default to current time of the request.
in: query
required: false
type: integer
format: int64
- name: next
description: |
Offset of the next chunk of violations. Value is null for the first request.
in: query
type: string
required: false
- name: limit
description: |
Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Violations
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V3DLPViolationStreamResponse'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/violations/signal':
get:
summary: Get violations as a result of policy enforcement on signals.
description: Retrieves DLP v3 signal related violations for a given time range
produces:
- application/json
parameters:
- name: startTime
description: |
Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: endTime
description: |
Timestamp of the last required violation.
This is a long integer value representing milliseconds since Jan 1 1970
If unspecified, it will default to current time of the request.
in: query
required: false
type: integer
format: int64
- name: next
description: |
Offset of the next chunk of violations. Value is null for the first request.
in: query
type: string
required: false
- name: limit
description: |
Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Violations
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V3DLPViolationSignalResponse'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/dlp/violation/attachment':
get:
summary: Get attachments that were sent as part of messages that were flagged by the DLP System.
description: Retrieves attachments from related message violations as a base64 encoded String.
produces:
- application/octet-stream
parameters:
- name: fileId
description: |
ID of attachment that will be downloaded.
in: query
required: true
type: string
- name: violationId
description: |
ID of violation that corresponds to the flagged message that contains the attachment
in: query
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Violations
responses:
'200':
description: Attachment body as Base64 encoded string.
schema:
type: string
format: byte
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'404':
description: 'Resource not found.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/audittrail/privilegeduser':
get:
summary: Get a list of actions performed by a privileged account acting as privileged user given a period of time.
description: Get a list of actions performed by a privileged account acting as privileged user given a period of time.
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: startTimestamp
description: |
Start timestamp in unix timestamp in millseconds.
in: query
required: true
type: integer
format: int64
- name: endTimestamp
description: |
End timestamp in unix timestamp in millseconds.
If not specified, it assumes to be current time.
in: query
required: false
type: integer
format: int64
- name: before
description: |
Return results from an opaque “before” cursor value as presented via a response cursor.
in: query
type: string
required: false
- name: after
description: |
Return results from an opaque “after” cursor value as presented via a response cursor.
in: query
type: string
required: false
- name: limit
description: |
Max No. of violations to return. If no value is provided, 50 is the default.
Some maximums for limit may be enforced for performance reasons.
The maximum supported value is 500.
in: query
type: integer
required: false
- name: initiatorId
description: |
If present, only the initiator with this initiator will be returned.
in: query
type: integer
format: int64
- name: role
description: |
If present, only the audit trail initiated by s user with privileged role acting as
privileged user will be returned.
Privileged eliglible roles:
User Provisioning (USER_PROVISIONING),
Content Management (CONTENT_MANAGEMENT),
Expression Filter Policy Management (EF_POLICY_MANAGEMENT),
SCO (SUPER_COMPLIANCE_OFFICER),
CO (COMPLIANCE_OFFICER),
Super admin (SUPER_ADMINISTRATOR),
Admin (ADMINISTRATOR),
L1 (L1_SUPPORT),
L2 (L2_SUPPORT),
Scope Manager (SCOPE_MANAGEMENT)
in: query
type: string
required: false
tags:
- AuditTrail
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V1AuditTrailInitiatorList'
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
#
# Deprecated paths
#
'/v1/datafeed/create':
post:
deprecated: true
summary: Create a new real time message event stream.
description: |
A datafeed provides the messages in all conversations that a user is in.
System messages like new users joining a chatroom are not part of the datafeed.
A datafeed will expire after if it isn't read before its capacity is reached.
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
consumes:
- application/json
produces:
- application/json
tags:
- Datafeed
responses:
'200':
description: OK
schema:
$ref: '#/definitions/Datafeed'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'503':
description: 'Max number of data feeds reached.'
schema:
$ref: '#/definitions/Error'
'/v1/datafeed/{id}/read':
get:
deprecated: true
summary: Read a given datafeed.
description: |
Read messages from the given datafeed. If no more messages are available then this method will block.
It is intended that the client should re-call this method as soon as it has processed the messages
received in the previous call. If the client is able to consume messages more quickly than they become
available then each call will initially block, there is no need to delay before re-calling this method.
A datafeed will expire if its unread capacity is reached.
A datafeed can only be consumed by one client thread at a time. E.g. polling the datafeed by two threads may lead to messages being delivered out of order.
parameters:
- name: id
description: |
Datafeed ID
in: path
required: true
type: string
- name: maxMessages
description: |
Max No. of messages to return.
in: query
type: integer
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
consumes:
- application/json
produces:
- application/json
tags:
- Datafeed
responses:
'200':
description: List of messages that have occurred since last time this URL was polled. If the list is empty, it means the request has reached its timeout, and the client should poll again.
schema:
$ref: '#/definitions/MessageList'
headers:
X-Warning:
description: This method is deprecated
type: string
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/HealthCheck':
get:
deprecated: true
summary: Checks the health of the Agent.
description: |
Used to validate the configuration of the agent.
Makes a request to the HealthCheck on the Symphony cloud.
Makes a request to the HealthCheck on the Key Manager service.
produces:
- application/json
tags:
- System
responses:
'200':
description: The Agent is functioning properly.
schema:
$ref: '#/definitions/V1HealthCheckResponse'
headers:
X-Warning:
description: This method is deprecated
type: string
'/v2/datafeed/{id}/read':
get:
deprecated: true
summary: Read a given datafeed.
description: |
Read messages from the given datafeed. If no more messages are available then this method will block.
It is intended that the client should re-call this method as soon as it has processed the messages
received in the previous call. If the client is able to consume messages more quickly than they become
available then each call will initially block, there is no need to delay before re-calling this method.
A datafeed will expire if its unread capacity is reached.
A datafeed can only be consumed by one client thread at a time. E.g. polling the datafeed by two threads may lead to messages being delivered out of order.
parameters:
- name: id
description: |
Datafeed ID
in: path
required: true
type: string
- name: maxMessages
description: |
Max No. of messages to return.
in: query
type: integer
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
consumes:
- application/json
produces:
- application/json
tags:
- Datafeed
responses:
'200':
description: List of messages that have occurred since last time this URL was polled. If the list is empty, it means the request has reached its timeout, and the client should poll again.
schema:
$ref: '#/definitions/V2MessageList'
headers:
X-Warning:
description: This method is deprecated
type: string
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/message/import':
post:
deprecated: true
summary: Import messages from other systems into Symphony.
description: |
Sends a message to be imported into the system.
Allows you to override the timestamp and author of the message with your desired values.
The requesting user must have the Content Management role.
The user that the message is intended to have come from must also be present in the conversation.
The intended message timestamp must be a valid time from the past. It cannot be a future timestamp.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: messageList
in: body
required: true
schema:
$ref: '#/definitions/MessageImportList'
tags:
- Messages
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/ImportResponseList'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v2/message/import':
post:
deprecated: true
summary: Import messages from other systems into Symphony.
description: |
Sends a message to be imported into the system.
Allows you to override the timestamp and author of the message with your desired values.
The requesting user must have the Content Management role.
The user that the message is intended to have come from must also be present in the conversation.
The intended message timestamp must be a valid time from the past. It cannot be a future timestamp.
Optionally the original message ID can be specified to identify the imported message for the purpose of repeat imports.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: messageList
in: body
required: true
schema:
$ref: '#/definitions/V2MessageImportList'
tags:
- Messages
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/V2ImportResponseList'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/stream/{sid}/attachment/create':
post:
deprecated: true
summary: Upload an attachment.
description: |
Upload an attachment to the given stream. The stream can be a chatroom,
an IM or a multiparty IM.
Once uploaded, you can use this attachment on a message you send in that stream.
If the attachment is uploaded then 200 is returned.
consumes:
- multipart/form-data
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: file
description: The attachment body.
in: formData
required: true
type: file
tags:
- Attachments
responses:
'200':
description: 'Upload successful, return the attachment ID.'
schema:
$ref: '#/definitions/AttachmentInfo'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'422':
description: 'Unprocessable entity: The submitted data could not be processed.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/stream/{sid}/attachment/create':
post:
deprecated: true
summary: PROVISIONAL - Upload an attachment.
description: |
Upload an attachment to the given stream. The stream can be a chatroom,
an IM or a multiparty IM.
Once uploaded, you can use this attachment on a message you send in that stream.
If the attachment is uploaded then 200 is returned.
consumes:
- multipart/form-data
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: file
description: The attachment body.
in: formData
required: true
type: file
tags:
- Attachments
responses:
'200':
description: 'Upload successful, return the attachment ID.'
schema:
$ref: '#/definitions/AttachmentInfo'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'422':
description: 'Unprocessable entity: The submitted data could not be processed.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/stream/{sid}/message':
get:
deprecated: true
summary: Get messages from an existing stream.
description: |
A caller can fetch all unseen messages by passing the timestamp of
the last message seen as the since parameter and the number of messages
with the same timestamp value already seen as the skip parameter. This
means that every message will be seen exactly once even in the case that
an additional message is processed with the same timestamp as the last
message returned by the previous call, and the case where there are
more than maxMessages with the same timestamp value.
This method is intended for historic queries and is generally reliable
but if guaranteed delivery of every message in real time is required
then the equivilent firehose method should be called.
produces:
- application/json
parameters:
- name: sid
description: |
Stream ID
in: path
required: true
type: string
- name: since
description: |
Timestamp of first required message.
This is a long integer value representing milliseconds since
Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: offset
description: |
No. of messages to skip.
in: query
type: integer
- name: maxMessages
description: |
Max No. of messages to return. If no value is provided, 50 is the default.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Messages
responses:
'200':
description: OK
schema:
$ref: '#/definitions/MessageList'
headers:
X-Warning:
description: This method is deprecated
type: string
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v2/stream/{sid}/message':
get:
deprecated: true
summary: Get messages from an existing stream.
description: |
A caller can fetch all unseen messages by passing the timestamp of
the last message seen as the since parameter and the number of messages
with the same timestamp value already seen as the skip parameter. This
means that every message will be seen exactly once even in the case that
an additional message is processed with the same timestamp as the last
message returned by the previous call, and the case where there are
more than maxMessages with the same timestamp value.
This method is intended for historic queries and is generally reliable
but if guaranteed delivery of every message in real time is required
then the equivilent firehose method should be called.
produces:
- application/json
parameters:
- name: sid
description: |
Stream ID
in: path
required: true
type: string
- name: since
description: |
Timestamp of first required message.
This is a long integer value representing milliseconds since
Jan 1 1970
in: query
required: true
type: integer
format: int64
- name: offset
description: |
No. of messages to skip.
in: query
type: integer
- name: limit
description: |
Max No. of messages to return. If no value is provided, 50 is the default.
in: query
type: integer
required: false
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
tags:
- Messages
responses:
'200':
description: OK
schema:
$ref: '#/definitions/V2MessageList'
headers:
X-Warning:
description: This method is deprecated
type: string
'204':
description: No Messages.
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/stream/{sid}/message/create':
post:
deprecated: true
summary: Post a message to one existing stream.
description: |
Post a new message to the given stream. The stream can be a chatroom,
an IM or a multiparty IM.
If the message parameter type is TEXT then the message contains plain
text and cannot include formating, hash tags, mentions etc.
If the message parameter type is MessageML then the message contains
MessageML which allows for these entities.
If the message is in MessageML and fails schema validation
a client error results
If the message is sent then 200 is returned.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: message
in: body
required: true
schema:
$ref: '#/definitions/MessageSubmission'
tags:
- Messages
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/Message'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v2/stream/{sid}/message/create':
post:
deprecated: true
summary: Post a message to one existing stream.
description: |
Post a new message to the given stream. The stream can be a chatroom,
an IM or a multiparty IM.
You may include an attachment on the message (see the V2MessageSubmission parameter).
If the message parameter type is TEXT then the message contains plain
text and cannot include formating, hash tags, mentions etc.
If the message parameter type is MessageML then the message contains
MessageML which allows for these entities.
If the message is in MessageML and fails schema validation
a client error results
If the message is sent then 200 is returned.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: message
in: body
required: true
schema:
$ref: '#/definitions/V2MessageSubmission'
tags:
- Messages
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/V2Message'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v3/stream/{sid}/message/create':
post:
deprecated: true
summary: PROVISIONAL - Post a message to one existing stream.
description: |
Post a new message to the given stream. The stream can be a chatroom,
an IM or a multiparty IM.
You may include an attachment on the message (see the V2MessageSubmission parameter).
If the message parameter type is TEXT then the message contains plain
text and cannot include formating, hash tags, mentions etc.
If the message parameter type is MessageML then the message contains
MessageML which allows for these entities.
If the message is in MessageML and fails schema validation
a client error results
If the message is sent then 200 is returned.
Regarding authentication, you must either use the sessionToken which was created for delegated app access
or both the sessionToken and keyManagerToken together.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Authorization token used to make delegated calls.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: false
type: string
- name: message
in: body
required: true
schema:
$ref: '#/definitions/V2MessageSubmission'
tags:
- Messages
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/V2Message'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/stream/{sid}/share':
post:
deprecated: true
summary: Share a piece of content into Symphony
description: |
Given a 3rd party content (eg. news article), it can share to the given stream.
The stream can be a chatroom, an IM or a multiparty IM.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sid
description: Stream ID
in: path
required: true
type: string
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: shareContent
in: body
required: true
schema:
$ref: '#/definitions/ShareContent'
tags:
- Share
responses:
'200':
description: Success
schema:
$ref: '#/definitions/V2Message'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'/v1/util/obsolete':
post:
deprecated: true
summary: Example of a deprecated endpoint, returns input.
consumes:
- application/json
produces:
- application/json
parameters:
- name: sessionToken
description: Session authentication token.
in: header
required: true
type: string
- name: keyManagerToken
description: Key Manager authentication token.
in: header
required: true
type: string
- name: echoInput
description: |
Message in plain text
in: body
required: true
schema:
$ref: '#/definitions/SimpleMessage'
tags:
- Util
responses:
'200':
description: Message sent.
schema:
$ref: '#/definitions/SimpleMessage'
headers:
X-Warning:
description: This method is deprecated
type: string
'400':
description: 'Client error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
schema:
$ref: '#/definitions/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
schema:
$ref: '#/definitions/Error'
'420':
description: 'Gone. Returned when the option to hard fail deprecated methods is enabled'
schema:
$ref: '#/definitions/Error'
'500':
description: 'Server error, see response body for further details.'
schema:
$ref: '#/definitions/Error'
definitions:
Error:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
V2Error:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
details:
type: object
required:
- code
- message
SuccessResponse:
type: object
properties:
format:
type: string
enum:
- TEXT
- XML
message:
type: string
V2BaseMessage:
type: object
discriminator: v2messageType
properties:
id:
type: string
description: The messageId is assigned by the ingestor service when a message is sent.
timestamp:
type: string
v2messageType:
type: string
streamId:
type: string
required:
- v2messageType
- timestamp
- streamId
V2Message:
type: object
description: A representation of a message sent by a user of Symphony.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
message:
type: string
format: MessageML
description: Message text in MessageML
fromUserId:
type: integer
format: int64
description: the Symphony userId of the user who sent the message. This will be populated by the server (and actually ignored if included when sending a message).
attachments:
type: array
items:
$ref: '#/definitions/AttachmentInfo'
required:
- message
- fromUserId
RoomCreatedMessage:
type: object
description: Generated when a room is created.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
creationDate:
type: integer
format: int64
name:
type: string
keywords:
type: array
items:
$ref: '#/definitions/RoomTag'
description:
type: string
createdByUserId:
type: integer
format: int64
description: The Symphony userId of the user who created the room.
readOnly:
type: boolean
discoverable:
type: boolean
public:
type: boolean
membersCanInvite:
type: boolean
copyProtected:
type: boolean
RoomDeactivatedMessage:
type: object
description: Generated when a room is deactivated.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
deactivatedByUserId:
type: integer
format: int64
RoomReactivatedMessage:
type: object
description: Generated when a room is reactivated.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
reactivatedByUserId:
type: integer
format: int64
RoomUpdatedMessage:
type: object
description: Generated when a room is updated.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
oldName:
type: string
newName:
type: string
keywords:
type: array
items:
$ref: '#/definitions/RoomTag'
oldDescription:
type: string
newDescription:
type: string
membersCanInvite:
type: boolean
discoverable:
type: boolean
readOnly:
type: boolean
copyProtected:
type: boolean
UserJoinedRoomMessage:
type: object
description: Generated when a user joins a room.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
addedByUserId:
type: integer
format: int64
memberAddedUserId:
type: integer
format: int64
UserLeftRoomMessage:
type: object
description: Generated when a user leaves a room.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
removedByUserId:
type: integer
format: int64
memberLeftUserId:
type: integer
format: int64
informationBarrierRemediation:
type: boolean
RoomMemberPromotedToOwnerMessage:
type: object
description: Generated when a room member is promoted to owner.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
promotedByUserId:
type: integer
format: int64
promotedUserId:
type: integer
format: int64
RoomMemberDemotedFromOwnerMessage:
type: object
description: Generated when a room member is promoted to owner.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
demotedByUserId:
type: integer
format: int64
demotedUserId:
type: integer
format: int64
ConnectionRequestMessage:
type: object
description: Generated when a connection request is sent.
allOf:
- $ref: '#/definitions/V2BaseMessage'
- type: object
properties:
requestingUserId:
type: integer
format: int64
targetUserId:
type: integer
format: int64
firstRequestedAt:
type: integer
format: int64
updatedAt:
type: integer
format: int64
requestCounter:
type: integer
status:
type: string
AttachmentInfo:
type: object
properties:
id:
type: string
description: The attachment ID.
name:
type: string
description: The file name.
size:
type: integer
format: int64
description: Size in bytes.
required:
- id
- name
- size
V2MessageList:
type: array
items:
$ref: '#/definitions/V2BaseMessage'
SimpleMessage:
description: A string wrapped in a JSON object.
type: object
properties:
message:
type: string
Datafeed:
type: object
properties:
id:
type: string
RoomTag:
description: Room Tag object. A key:value pair describing additional properties of the room.
properties:
key:
description: A unique label of the Tag.
type: string
value:
description: The value of this Tag's label.
type: string
required:
- key
- value
ShareArticle:
type: object
properties:
articleId:
type: string
description: An ID for this article that should be unique to the calling application. Either an articleId or an articleUrl is required.
title:
type: string
description: The title of the article
subTitle:
type: string
description: The subtitle of the article
message:
type: string
description: The message text that can be send along with the shared article
publisher:
type: string
description: Publisher of the article
publishDate:
type: integer
format: int64
description: Article publish date in unix timestamp
thumbnailUrl:
type: string
description: Url to the thumbnail image
author:
type: string
description: Author of the article
articleUrl:
type: string
description: Url to the article
summary:
type: string
description: Preview summary of the article
appId:
type: string
description: App ID of the calling application
appName:
type: string
description: App name of the calling application
appIconUrl:
type: string
description: App icon url of the calling application
required:
- title
- publisher
- author
- appId
ShareContent:
type: object
properties:
type:
type: string
description: Type of content to be shared. Currently only support "com.symphony.sharing.article"
content:
$ref: '#/definitions/ShareArticle'
V2HealthCheckResponse:
type: object
properties:
podConnectivity:
type: boolean
description: Indicates whether the Agent server can connect to the Pod
podConnectivityError:
type: string
description: Error details in case of no Pod connectivity
keyManagerConnectivity:
type: boolean
description: Indicates whether the Agent server can connect to the Key Manager
keyManagerConnectivityError:
type: string
description: Error details in case of no Key Manager connectivity
firehoseConnectivity:
type: boolean
description: Indicates whether the Agent server can connect to Firehose Service
firehoseConnectivityError:
type: string
description: Error details in case of no Firehose connectivity
encryptDecryptSuccess:
type: boolean
description: Indicates whether the Agent can successfully decrypt and encrypt messages
encryptDecryptError:
type: string
description: Error details in case of the encryption or decryption of the message fails
podVersion:
type: string
description: The version number of the pod
agentVersion:
type: string
description: The version number of the Agent server
agentServiceUser:
type: boolean
description: Indicates whether agent service user is setup correctly.
agentServiceUserError:
type: string
description: Error details in case agent service user is setup incorrectly.
ceServiceUser:
type: boolean
description: Indicates whether CEService user is setup correctly.
ceServiceUserError:
type: string
description: Error details in case CEService user is setup incorrectly.
MessageSearchQuery:
type: object
properties:
text:
type: string
description: Search for messages containing this text. Requires streamId to be specified.
streamId:
type: string
description: Search for messages sent to this stream
streamType:
type: string
description: |
Search for messages sent to this type of streams. Accepted values are CHAT, IM, MIM, ROOM, POST.
author:
type: integer
format: int64
description: Search for messages sent by this user ID
hashtag:
type: string
description: Search for messages containing this hashtag
cashtag:
type: string
description: Search for messages containing this cashtag
mention:
type: integer
format: int64
description: Search for messages mentioning this user ID
signal:
type: string
description: |
Search for messages matching this signal. Can only be combined with date filtering and paging parameters.
fromDate:
type: integer
format: int64
description: Search for messages sent on or after this timestamp
toDate:
type: integer
format: int64
description: Search for messages sent before this timestamp
V4MessageImportList:
description: |
An ordered list of historic messages to be imported.
A list of import responsees will be returned in the same order.
type: array
items:
$ref: '#/definitions/V4ImportedMessage'
V4ImportedMessage:
description: |
A historic message to be imported into the system.
The importing user must have the Content Management role.
Also, the importing user must be a member of the conversation it is importing into.
The user that the message is intended to have come from must also be present in the conversation.
The intended message timestamp must be a valid time from the past. It cannot be a future timestamp.
By design, imported messages do not stream to datafeed or firehose endpoints.
type: object
properties:
message:
type: string
format: MessageML
description: Message text in MessageMLV2
data:
type: string
format: JSON
description: Entity data in EntityJSON
intendedMessageTimestamp:
description: |
The timestamp representing the time when the message was sent in the original system
in milliseconds since Jan 1st 1970.
type: integer
format: int64
intendedMessageFromUserId:
description: |
The long integer userid of the Symphony user who you intend to show sent the message.
type: integer
format: int64
originatingSystemId:
description: |
The ID of the system through which the message was originally sent.
type: string
originalMessageId:
description: |
The ID of the message in the original system.
type: string
streamId:
type: string
required:
- message
- intendedMessageTimestamp
- intendedMessageFromUserId
- originatingSystemId
- streamId
V4ImportResponseList:
type: array
items:
$ref: '#/definitions/V4ImportResponse'
V4ImportResponse:
type: object
properties:
messageId:
description: |
If the message was successfully imported then the message ID in the system
of the newly created message.
type: string
originatingSystemId:
description: |
The ID of the system through which the message was originally sent.
type: string
originalMessageId:
description: |
The ID of the message in the original system.
type: string
diagnostic:
description: |
A diagnostic message containing an error message in the event that the
message import failed. May also be present in the case of a successful
call if there is useful narrative to return.
type: string
V4AttachmentInfo:
type: object
properties:
id:
type: string
description: The attachment ID.
name:
type: string
description: The file name.
size:
type: integer
format: int64
description: Size in bytes.
images:
type: array
items:
$ref: '#/definitions/V4ThumbnailInfo'
required:
- id
- name
- size
V4ThumbnailInfo:
type: object
properties:
id:
type: string
description: The thumbnail ID.
dimension:
type: string
description: The thumbnail pixel size.
V4MessageList:
type: array
items:
$ref: '#/definitions/V4Message'
V4Message:
type: object
description: A representation of a message sent by a user of Symphony
properties:
messageId:
type: string
description: Id of the message
timestamp:
type: integer
format: int64
description: Timestamp of the message in milliseconds since Jan 1 1970
message:
type: string
format: MessageMLV2
description: Message content in MessageMLV2
sharedMessage:
description: Only present when the message represented by this class is a wall post sharing another message.
$ref: '#/definitions/V4Message'
data:
type: string
format: JSON
description: Message data in EntityJSON
attachments:
description: Message attachments
type: array
items:
$ref: '#/definitions/V4AttachmentInfo'
user:
$ref: '#/definitions/V4User'
stream:
$ref: '#/definitions/V4Stream'
externalRecipients:
description: Indicates if the message have external recipients. Only present on real time messaging.
type: boolean
diagnostic:
type: string
description: |
Details if event failed to parse for any reason. The contents of this field may not be useful,
depending on the nature of the error. Only present when error occurs.
userAgent:
type: string
description: |
User agent string for client that sent the message. Allows callers to identify which client sent the
origin message (e.g. API Agent, SFE Client, mobile, etc)
originalFormat:
type: string
description: |
Indicates the format in which the message was originally sent. This could have been either:
- com.symphony.markdown - Markdown OR Message ML V1
- com.symphony.messageml.v2 - Message ML V2
disclaimer:
type: string
description: |
Message that may be sent along with a regular message if configured for the POD,
usually the first message sent in a room that day.
V4User:
type: object
properties:
userId:
type: integer
format: int64
description: Id of user
firstName:
type: string
description: First name of user
lastName:
type: string
description: Last name of user
displayName:
type: string
description: User display name
email:
type: string
description: Email of user
username:
type: string
description: Applicable only to internal users
V4Stream:
type: object
properties:
streamId:
type: string
description: Id of stream
streamType:
type: string
description: |
Stream type, possible values are:
- IM
- MIM
- ROOM
- POST
roomName:
type: string
description: Applicable only to rooms
members:
description: Applicable only to IM Created
type: array
items:
$ref: '#/definitions/V4User'
external:
type: boolean
crossPod:
type: boolean
V4RoomProperties:
type: object
properties:
name:
type: string
description:
type: string
creatorUser:
$ref: '#/definitions/V4User'
createdDate:
type: integer
format: int64
description: Timestamp
external:
type: boolean
crossPod:
type: boolean
public:
type: boolean
copyProtected:
type: boolean
readOnly:
type: boolean
discoverable:
type: boolean
membersCanInvite:
type: boolean
keywords:
type: array
items:
$ref: '#/definitions/V4KeyValuePair'
canViewHistory:
type: boolean
V4KeyValuePair:
type: object
properties:
key:
type: string
value:
type: string
V4MessageSent:
type: object
properties:
message:
$ref: '#/definitions/V4Message'
V4Initiator:
type: object
properties:
user:
$ref: '#/definitions/V4User'
V4SharedPost:
type: object
properties:
message:
$ref: '#/definitions/V4Message'
sharedMessage:
$ref: '#/definitions/V4Message'
V4InstantMessageCreated:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
V4RoomCreated:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
roomProperties:
$ref: '#/definitions/V4RoomProperties'
V4RoomUpdated:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
newRoomProperties:
$ref: '#/definitions/V4RoomProperties'
V4RoomDeactivated:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
V4RoomReactivated:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
V4UserJoinedRoom:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
affectedUser:
# User who was affected by the action (i.e. added to the room)
$ref: '#/definitions/V4User'
V4UserLeftRoom:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
affectedUser:
# User who was affected by the action (i.e. left the room)
$ref: '#/definitions/V4User'
V4RoomMemberPromotedToOwner:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
affectedUser:
# User who was affected by the action (i.e. promoted to owner)
$ref: '#/definitions/V4User'
V4RoomMemberDemotedFromOwner:
type: object
properties:
stream:
$ref: '#/definitions/V4Stream'
affectedUser:
# User who was affected by the action (i.e. demoted from owner)
$ref: '#/definitions/V4User'
V4ConnectionRequested:
type: object
properties:
toUser:
# User who received the connection request
$ref: '#/definitions/V4User'
V4ConnectionAccepted:
type: object
properties:
fromUser:
# User who sent the connection request
$ref: '#/definitions/V4User'
V4MessageSuppressed:
type: object
properties:
messageId:
type: string
stream:
# the stream holding the suppressed message
$ref: '#/definitions/V4Stream'
V4SymphonyElementsAction:
type: object
properties:
actionStream:
description: "The stream where the Form answers will be posted"
$ref: '#/definitions/V4Stream'
formStream:
description: "The stream where the Form message was posted"
$ref: '#/definitions/V4Stream'
formMessageId:
description: "The id of the message that contains the Form"
type: string
formId:
description: "The id of the Form element"
type: string
formValues:
description: "The values (in JSON format) answered on the Form"
type: object
V4Payload:
type: object
properties:
messageSent:
$ref: '#/definitions/V4MessageSent'
sharedPost:
$ref: '#/definitions/V4SharedPost'
instantMessageCreated:
$ref: '#/definitions/V4InstantMessageCreated'
roomCreated:
$ref: '#/definitions/V4RoomCreated'
roomUpdated:
$ref: '#/definitions/V4RoomUpdated'
roomDeactivated:
$ref: '#/definitions/V4RoomDeactivated'
roomReactivated:
$ref: '#/definitions/V4RoomReactivated'
userJoinedRoom:
$ref: '#/definitions/V4UserJoinedRoom'
userLeftRoom:
$ref: '#/definitions/V4UserLeftRoom'
roomMemberPromotedToOwner:
$ref: '#/definitions/V4RoomMemberPromotedToOwner'
roomMemberDemotedFromOwner:
$ref: '#/definitions/V4RoomMemberDemotedFromOwner'
connectionRequested:
$ref: '#/definitions/V4ConnectionRequested'
connectionAccepted:
$ref: '#/definitions/V4ConnectionAccepted'
messageSuppressed:
$ref: '#/definitions/V4MessageSuppressed'
symphonyElementsAction:
$ref: '#/definitions/V4SymphonyElementsAction'
V4Event:
type: object
properties:
id:
type: string
description: Event ID
messageId:
type: string
description: Message ID
timestamp:
type: integer
format: int64
description: Timestamp of event
type:
type: string
description: |
Event type, possible events are:
- MESSAGESENT
- SHAREDPOST
- INSTANTMESSAGECREATED
- ROOMCREATED
- ROOMUPDATED
- ROOMDEACTIVATED
- ROOMREACTIVATED
- USERJOINEDROOM
- USERLEFTROOM
- ROOMMEMBERPROMOTEDTOOWNER
- ROOMMEMBERDEMOTEDFROMOWNER
- CONNECTIONREQUESTED
- CONNECTIONACCEPTED
- MESSAGESUPPRESSED
- SYMPHONYELEMENTSACTION
diagnostic:
type: string
description: |
Details if event failed to parse for any reason. The contents of this field may not be useful,
depending on the nature of the error. Only present when error occurs.
initiator:
# Actor who initiated the event
$ref: '#/definitions/V4Initiator'
payload:
# Holds payload for all event types
$ref: '#/definitions/V4Payload'
V4EventList:
type: array
items:
$ref: '#/definitions/V4Event'
BaseSignal:
type: object
properties:
name:
type: string
description: Signal name
query:
type: string
description: |
The query used to define this signal. The query is defined as "field:value" pairs combined by the operators
"AND" or "OR". Supported fields are (case-insensitive): "author", "hashtag" and "cashtag".
MUST contain at least one "hashtag" or "cashtag" definition.
visibleOnProfile:
type: boolean
description: Whether the signal is visible on its creator's profile
companyWide:
type: boolean
description: Whether the signal is a push signal
Signal:
allOf:
- $ref: '#/definitions/BaseSignal'
- type: object
properties:
id:
type: string
description: Signal ID
timestamp:
type: integer
format: int64
description: Timestamp when the signal was created, in milliseconds since Jan 1 1970
SignalList:
type: array
items:
$ref: '#/definitions/Signal'
ChannelSubscriptionResponse:
type: object
properties:
requestedSubscription:
type: integer
format: int64
description: The number of requested userIds to subscribe
successfulSubscription:
type: integer
format: int64
description: The number of successful subscriptions done
failedSubscription:
type: integer
format: int64
description: The number of subscription failures
subscriptionErrors:
type: array
items:
$ref: '#/definitions/ChannelSubscriptionError'
ChannelSubscriptionError:
type: object
properties:
userId:
type: integer
format: int64
description: The userId on which failure happened
code:
type: string
description: subscription failure code
message:
type: string
description: subscription failure message
ChannelSubscriberResponse:
type: object
properties:
offset:
type: integer
format: int64
description: The number of subscribers skipped
hasMore:
type: boolean
description: True if there are more subscribers
total:
type: integer
description: The total number of subscribers
data:
type: array
items:
$ref: '#/definitions/ChannelSubscriber'
ChannelSubscriber:
type: object
properties:
pushed:
type: boolean
description: True if the subscriber is allowed to unsubscribe
owner:
type: boolean
description: True if the subscriber is the creator
subscriberName:
type: string
description: User display name
userId:
type: integer
format: int64
description: The user ID of the subscriber
timestamp:
type: integer
format: int64
description: Timestamp when the signal was subscribed, in milliseconds since Jan 1 1970
AgentInfo:
type: object
properties:
ipAddress:
type: string
description: The IP address of the Agent server.
hostname:
type: string
description: The hostname of the Agent server.
serverFqdn:
type: string
description: The fully-qualified domain name of the Agent server. Must be set by the user at startup.
version:
type: string
description: The version of the Agent.
url:
type: string
description: The URL under which the Agent is available.
onPrem:
type: boolean
description: Whether this is an on-prem or cloud installation.
commitId:
type: string
description: The Git commit ID of the running revision.
V1DLPPoliciesCollectionResponse:
type: object
properties:
policies:
type: array
description: List of policies
items:
$ref: '#/definitions/V1DLPPolicy'
page:
type: integer
format: int32
description: Page number of current page
pageCount:
type: integer
format: int32
description: Total number of pages available
description: List of policies
V1DLPPolicy:
type: object
required:
- "contentTypes"
- "name"
- "scopes"
- "type"
properties:
active:
type: boolean
description: Indicate whether the policy is active or not
contentTypes:
type: array
description: |
The list of content types that policy should apply to. Cannot be empty. Policy content types could be either of "Messages", "RoomMeta", "SignalMeta".
Default is set to ["Messages"] if not specified.
items:
type: string
creationDate:
type: integer
format: int64
description: |
Creation time of the policy in milliseconds elapsed as of epoch time.
creatorId:
type: string
description: Numeric userId of the creator
dictionaryRefs:
type: array
description: List of dictionaries.
items:
$ref: '#/definitions/V1DLPDictionaryRef'
lastDisabledDate:
type: integer
format: int64
description: |
Recent disable time of the policy in milliseconds elapsed as of epoch time.
lastUpdatedDate:
type: integer
format: int64
description: Recent update time of the policy in milliseconds elapsed as of epoch time.
name:
type: string
description: Unique name of a policy, max 30 characters. Cannot be empty. All the leading and trailing blank spaces are trimmed.
policyId:
type: string
description: Policy Id
scopes:
type: array
description: |
List of communication scopes. Possible values are "Internal" (for Internal conversations) or "External" (for External conversations).
You can apply both scopes if you set it to ["Internal", "External"].
items:
type: string
type:
type: string
description: Type of policy. Possible values "Block" or "Warn".
version:
type: string
description: |
The version of a dictionary, in format "major.minor". Initial value will set by backend as "1.0" when created.
Whenever the dictionary version needs to be changed, the minor version by 1 unless minor == 999, then the major version is increased by 1 until it reaches 999.
description: The policy object for expression filter, one policy can have multiple dictionaries
V1DLPPolicyRequest:
type: object
required:
- "contentTypes"
- "name"
- "scopes"
- "type"
properties:
contentTypes:
type: array
description: |
The list of content types that policy should apply to. Cannot be empty. Policy content types could be either of "Messages", "RoomMeta", "SignalMeta".
Default is set to ["Messages"] if not specified.
items:
type: string
dictionaryIds:
type: array
description: List of dictionaries Ids for the policy.
items:
type: string
name:
type: string
description: Unique name of a policy, max 30 characters. Cannot be empty. All the leading and trailing blank spaces are trimmed.
scopes:
type: array
description: |
List of communication scopes. Possible values are "Internal" (for Internal conversations) or "External" (for External conversations).
You can apply both scopes if you set it to ["Internal", "External"].
items:
type: string
type:
type: string
description: Type of policy. Possible values "Block" or "Warn".
description: The policy object to use for creating/updating a policy.
V1DLPPolicyResponse:
type: object
properties:
data:
$ref: '#/definitions/V1DLPPolicy'
description: Policy Response
V1DLPDictionary:
type: object
required:
- dictionaryMetadata
properties:
content:
$ref: '#/definitions/V1DLPDictionaryContent'
dictionaryMetadata:
$ref: '#/definitions/V1DLPDictionaryMetadata'
description: Dictionary object
V1DLPDictionaryContent:
type: object
properties:
data:
type: string
description: |
A comma separated string which contains a lot of keywords/regexes.
numKeywords:
type: integer
format: int32
description: Number of Keywords in dictionary
md5:
type: string
description: MD5 value of the content
description: Content of a dictionary
V1DLPDictionaryMetadataCollectionResponse:
type: object
properties:
items:
type: array
description: List of dictionary metadata
items:
$ref: '#/definitions/V1DLPDictionaryMetadata'
page:
type: integer
format: int32
description: Page number of current page
pageCount:
type: integer
format: int32
description: Total number of pages available
description: List of dictionary metadata.
V1DLPDictionaryMetadataResponse:
type: object
required:
- data
properties:
data:
$ref: '#/definitions/V1DLPDictionaryMetadata'
description: Dictionary response containing dictionary metadata.
V1DLPDictionaryMetadataCreateRequest:
type: object
required:
- name
- type
properties:
name:
type: string
description: |
The name of dictionary
type:
type: string
description: |
The type of dictionary, which specify the content is a list of words or a list of regexes.
By default set to "Word" if not specified. Possible values - Word, Regex
description: Dictionary's metadata (excluding content) to use for dictionary create operations.
V1DLPDictionaryMetadataUpdateRequest:
type: object
required:
- name
properties:
name:
type: string
description: |
The name of dictionary
description: Dictionary's metadata (excluding content) to use for dictionary update operations.
V1DLPDictionaryMetadata:
type: object
required:
- dictRef
- type
properties:
creationDate:
type: integer
format: int64
description: Creation time of the dictionary in milliseconds elapsed as of epoch time.
creatorId:
type: string
description: Numeric userId of the creator
dictRef:
$ref: '#/definitions/V1DLPDictionaryRef'
lastUpdatedDate:
type: integer
format: int64
description: The recent update time of the dictionary in milliseconds
type:
type: string
description: |
The type of dictionary, which specify the content is a list of words or a list of regexes.
By default set to "Word" if not specified. Possible values - Word, Regex
description: Dictionary's metadata (excluding content)
V1DLPDictionaryRef:
type: object
required:
- name
properties:
dictId:
type: string
description: Unique dictionary id
name:
type: string
description: Unique name of a dictionary, max 30 characters, with trimmed leading and trailing blank spaces.
version:
type: string
description: |
The version of a dictionary, in format "major.minor".
Initial value will set by backend as "1.0" when created.
Whenever the dictionary version needs to be changed, the minor version by 1 unless minor == 999, then the major version is increased by 1 until it reaches 999.
description: Basic information needed to identify a dictionary
V1DLPViolationMessageResponse:
type: object
properties:
violations:
type: array
description: A representation of list of violations due to messages sent by a user of Symphony
items:
$ref: '#/definitions/V1DLPViolationMessage'
nextOffset:
type: string
description: Offset for the next chunk of violations to be submitted in the next request. Value is null if there are no further violations.
V1DLPViolationStreamResponse:
type: object
properties:
violations:
type: array
items:
# A representation of list of violations due to rooms creation/update sent by a user of Symphony
$ref: '#/definitions/V1DLPViolationStream'
nextOffset:
type: string
description: Offset for the next chunk of violations to be submitted in the next request. Value is null if there are no further violations.
V1DLPViolationSignalResponse:
type: object
properties:
violations:
type: array
description: A representation of list of violations due to signal creation/update sent by a user of Symphony
items:
$ref: '#/definitions/V1DLPViolationSignal'
nextOffset:
type: string
description: Offset for the next chunk of violations to be submitted in the next request. Value is null if there are no further violations.
V1DLPViolationMessage:
type: object
properties:
violation:
# A representation of a violation due to a message sent by a user of Symphony
$ref: '#/definitions/V1DLPViolation'
message:
# Message details when DLP was enforced
$ref: '#/definitions/V4Message'
diagnostic:
type: string
description: |
A diagnostic message containing an error message in the event there are parsing errors.
May also be present in the case of a successful call if there is useful narrative to return.
V1DLPViolationStream:
type: object
properties:
violation:
# A representation of a violation due to rooms creation/update sent by a user of Symphony
$ref: '#/definitions/V1DLPViolation'
stream:
# Room details when DLP was enforced
$ref: '#/definitions/V1DLPStream'
V1DLPViolationSignal:
type: object
properties:
violation:
# A representation of a violation due to signal creation/update sent by a user of Symphony
$ref: '#/definitions/V1DLPViolation'
signal:
# Signal details when DLP was enforced
$ref: '#/definitions/V1DLPSignal'
V1DLPViolation:
type: object
description: A representation of a violation due to a message sent by a user of Symphony
properties:
enforcementEventID:
type: string
description: Enforcement event ID. Unique ID that identifies this enforcement.
entityID:
type: string
description: Entity ID is the content Id of the violation, for example, for messages, its the Id of the message
createTime:
type: integer
format: int64
description: Timestamp of the violation in milliseconds since Jan 1 1970
lastModified:
type: integer
format: int64
description: Timestamp of the last modification of violation in milliseconds since Jan 1 1970
requesterId:
type: integer
format: int64
description: Id of the requester responsible for the message/stream/signal
matchedPolicies:
# Policies that matched when DLP was enforced and the list of matched terms decrypted.
$ref: '#/definitions/V1DLPMatchedPolicyList'
action:
type: string
description: action taken such as BLOCK or WARN. See outcome for a more detailed description of the outcome this action.
outcome:
# Detailed outcome of the DLP enforcement such as REJECTED_VIOLATION, ACCEPTED_WARNING, ACCEPTED_LEGACY_CLIENT etc.
$ref: '#/definitions/V1DLPOutcome'
version:
type: string
description: Version of application which processed the message and produced this violation.
ignoreDLPwarning:
type: boolean
description: Did the user chose to ignore DLP warning that was presented?
V1DLPMatchedPolicyList:
type: array
items:
$ref: '#/definitions/V1DLPMatchedPolicy'
description: List of policies that matched the violation.
V1DLPMatchedPolicy:
type: object
description: A representation of policy that matched the violation with a list of matched keywords in the policy
properties:
id:
type: string
description: Id of the policy
version:
type: string
description: Version of the policy
policyName:
type: string
description: Name of the policy
type:
type: string
description: Whether BLOCK or WARN
terms:
type: string
description: List of decrypted matched keywords in the policy
diagnostic:
type: string
description: |
A diagnostic message containing an error message in the event that the
decryption of terms failed. May also be present in the case of a successful
call if there is useful narrative to return.
V1DLPOutcome:
type: object
description: A representation of outcome of DLP message/stream/signal sent by a user of Symphony
properties:
type:
type: string
description: Outcome of DLP enforcement
V1DLPContentType:
type: object
description: A representation of content type of message sent by a user of Symphony (message/stream/signal)
properties:
type:
type: string
description: content type
V1DLPStream:
type: object
description: Room details in the context of violation.
properties:
name:
type: string
description: Name of the Stream/Room.
creatorPrettyName:
type: string
description: Name of the creator of the Room.
publicRoom:
type: boolean
description: Is this a public room?
crossPod:
type: boolean
description: Is this a cross pod scenario?
allowExternal:
type: boolean
description: Is external messaging allowed
creatorId:
type: string
description: Id of the creator of the Room.
roomDescription:
type: string
description: Description of the Room.
streamId:
type: string
description: ThreadId of the Room.
state:
type: string
description: State of the Room (example CREATED etc)
type:
type: string
description: Type of the Room (example ROOM (or IM or Wall))
lastDisabled:
type: integer
format: int64
description: Timestamp of last time the room is Disabled
memberAddUserEnabled:
type: boolean
description: Is memberAddUserEnabled
active:
type: boolean
description: Is Room Active
discoverable:
type: boolean
description: Is Room discoverable
readOnly:
type: boolean
description: Is Room read-only
copyDisabled:
type: boolean
description: Is Room copyDisabled
externalOwned:
type: boolean
description: Is Room externalOwned
sendMessageDisabled:
type: boolean
description: Is sendMessage Disabled for this Room
moderated:
type: boolean
description: Is room moderated
shareHistoryEnabled:
type: boolean
description: Is room shareHistoryEnabled
diagnostic:
type: string
description: |
A diagnostic message containing an error message in the event that the
stream retrieval failed. May also be present in the case of a successful
call if there is useful narrative to return.
V1DLPSignal:
type: object
description: Signal details
properties:
name:
type: string
description: Name of the Signal
rules:
type: string
description: Signal rules decrypted.
diagnostic:
type: string
description: |
A diagnostic message containing an error message in the event that the
signal decryption failed. May also be present in the case of a successful
call if there is useful narrative to return.
#
# V3 Policies definitions
#
V3DLPPolicyRequest:
type: object
required:
- "name"
- "scopes"
- "appliesTo"
properties:
name:
type: string
description: |
Unique name of a policy, max 30 characters. Cannot be empty. All the leading and trailing blank spaces are trimmed.
scopes:
type: array
description: |
List of communication scopes. Possible values are "Internal" (for Internal conversations) or "External" (for External conversations).
You can apply both scopes if you set it to ["Internal", "External"].
items:
type: string
appliesTo:
type: array
items:
$ref: '#/definitions/V3DLPPolicyAppliesTo'
description: Request to be used to get policies.
V3DLPPolicy:
type: object
properties:
id:
type: string
description: Unique identifier for policy.
policyId:
type: string
description: Policy Id.
version:
type: string
description: |
The version of the policy, in format "major.minor". Initial value will set by backend as "3.0" when created.
Whenever the policy version needs to be changed, the minor version by 1 unless minor == 999,
then the major version is increased by 1 until it reaches 999.
name:
type: string
description: |
Unique name of policy, max 30 characters. Cannot be empty. All the leading and trailing blank spaces are trimmed.
creatorId:
type: integer
format: int64
description: Numeric userId of the creator.
scopes:
type: array
description: |
List of communication scopes. Possible values are "Internal" (for Internal conversations) or "External" (for External conversations).
You can apply both scopes if you set it to ["Internal", "External"].
items:
type: string
appliesTo:
type: array
items:
$ref: '#/definitions/V3DLPPolicyAppliesTo'
active:
type: boolean
description: Indicate whether the policy is active or not.
deleted:
type: boolean
description: Indicate whether the policy is deleted or not.
creationDate:
type: integer
format: int64
description: |
Creation time of the policy in milliseconds elapsed as of epoch time.
lastUpdatedDate:
type: integer
format: int64
description: |
Recent update time of the policy in milliseconds elapsed as of epoch.
time.
lastDisabledDate:
type: integer
format: int64
description: |
Recent disable time of the policy in milliseconds elapsed as of epoch.
time.
systemPolicy:
type: boolean
description : |
A policy is the main entity of V3 policy/rule system. It is responsible to define rules and add scope constraints to the engine.
V3DLPRule:
type: object
required:
- "type"
- "name"
properties:
type:
type: string
description: Type of a rule used by policy. Can be ["UNKNOWN", "TEXT_MATCH", "FILE_EXTENSION", "FILE_SIZE", "FILE_PASSWORD", "FILE_CLASSIFIER"].
name:
type: string
description: Name for rule.
textMatchConfig:
$ref: '#/definitions/V3DLPTextMatchConfig'
fileSizeConfig:
$ref: '#/definitions/V3DLPFileSizeConfig'
fileExtensionConfig:
$ref: '#/definitions/V3DLPFileExtensionConfig'
filePasswordConfig:
$ref: '#/definitions/V3DLPFilePasswordConfig'
fileClassifierConfig:
$ref: '#/definitions/V3DLPFileClassifierConfig'
description: |
A Rule defines the actual matching specification for policies. It holds a type and a configuration
for the rule, these properties should be used to build the corresponding matching implementation.
Only one of the configuration property should be set [textMatchConfig, fileSizeConfig, fileExtensionConfig, filePasswordConfig, fileClassifierConfig].
V3DLPFilePasswordConfig:
type: object
required:
- "applicableFileTypes"
- "matchCriteria"
properties:
applicableFileTypes:
type: array
items:
type: string
description: File types that can be applied. Can be ["PDF", "WORD", "EXCEL", "POWERPOINT", "ZIP", "CSV", "TXT"].
matchCriteria:
type: string
description: |
Based on the criteria, whether a file is password protected or not means a match.
Can be ["PASSWORD_PROTECTED", "NOT_PASSWORD_PROTECTED"]. The default is "NOT_PASSWORD_PROTECTED".
description: Password protected detection config for files that are password protected or not.
V3DLPFileExtensionConfig:
type: object
required:
- "allowLists"
properties:
allowLists:
type: array
items:
type: string
description: File extensions that are allowed.
blockLists:
type: array
items:
type: string
description: File extensions that are blocked.
description: Extension detection config for allowed and blocked types of file extensions.
V3DLPFileSizeConfig:
type: object
properties:
sizeLimit:
type: integer
format: int32
description: File size config defines maximum allowed size of file. Default max size limit is 20 MB.
V3DLPTextMatchConfig:
type: object
properties:
dictionaries:
type: array
items:
$ref: '#/definitions/V3DLPDictionaryMeta'
countUniqueOccurrences:
type: integer
format: int32
applicableFileTypes:
type: array
items:
type: string
description: |
File types must be applied only for rule type "FileContent", otherwise must be empty.
Can be ["PDF", "WORD", "EXCEL", "POWERPOINT", "ZIP", "CSV", "TXT"].
description: |
This is a configuration that can be used to match text or regex.
Configuration that can be used by a rule. This is a configuration that can be used to match text or regex.
This configuration also corresponds to V2 TextMatch/RegexMatch of dictionaries.
V3DLPDictionaryMeta:
type: object
required:
- "dictId"
- "version"
- "name"
properties:
dictId:
type: string
version:
type: string
name:
type: string
description: Identity of a dictionary.
V3DLPFileClassifierConfig:
type: object
required:
- "classifiers"
- "applicableFileTypes"
properties:
classifiers:
type: object
additionalProperties:
type: string
description: |
Classifier is defined as a Key and its Value: e.g.: "classification": "Internal".
Name and value can contain UTF-8 characters. Neither the name nor value cannot be left empty.
Maximum 30 characters for the name and value, case insensitive.
If files contains k-v pairs in the classifers map, it means a match. Maximum 30 classifiers per policy.
applicableFileTypes:
type: array
items:
type: string
description: |
File types that can be applied. Can be ["PDF", "WORD", "EXCEL", "POWERPOINT", "ZIP", "CSV", "TXT"].
V3DLPPolicyAppliesTo:
type: object
required:
- "dataType"
- "action"
- "rules"
properties:
dataType:
type: string
description: |
The list of data types that policy should apply to. Can't be empty.
Can be ["Messages","RoomMeta", "SignalMeta", "FileContent", "FileMeta"].
action:
type: string
description: |
Action to be taken on violation detection.
Can be ["Block", "Warn", "LogOnly"]. The default is "LogOnly".
rules:
type: array
items:
$ref: '#/definitions/V3DLPRule'
V3DLPPolicyResponse:
type: object
properties:
data:
$ref: '#/definitions/V3DLPPolicy'
description: Policy Response.
V3DLPPoliciesCollectionResponse:
type: object
properties:
policies:
type: array
description: List of policies.
items:
$ref: '#/definitions/V3DLPPolicy'
page:
type: integer
format: int32
description: The starting page for pagination.
size:
type: integer
format: int32
description: Size of policies displayed per page.
pageCount:
type: integer
format: int32
description: Total number of pages available.
description: List of policies.
V3DLPViolationMessageResponse:
type: object
properties:
violations:
type: array
description: A representation of list of violations due to messages sent by a user of Symphony
items:
$ref: '#/definitions/V3DLPViolationMessage'
nextOffset:
type: string
description: Offset for the next chunk of violations to be submitted in the next request. Value is null if there are no further violations.
V3DLPViolationStreamResponse:
type: object
properties:
violations:
type: array
items:
# A representation of list of violations due to rooms creation/update sent by a user of Symphony
$ref: '#/definitions/V3DLPViolationStream'
nextOffset:
type: string
description: Offset for the next chunk of violations to be submitted in the next request. Value is null if there are no further violations.
V3DLPViolationSignalResponse:
type: object
properties:
violations:
type: array
description: A representation of list of violations due to signal creation/update sent by a user of Symphony
items:
$ref: '#/definitions/V3DLPViolationSignal'
nextOffset:
type: string
description: Offset for the next chunk of violations to be submitted in the next request. Value is null if there are no further violations.
V3DLPViolationMessage:
type: object
properties:
violation:
# A representation of a violation due to a message sent by a user of Symphony
$ref: '#/definitions/V3DLPViolation'
message:
# Message details when DLP was enforced
$ref: '#/definitions/V4Message'
diagnostic:
type: string
description: |
A diagnostic message containing an error message in the event there are parsing errors.
May also be present in the case of a successful call if there is useful narrative to return.
V3DLPViolationStream:
type: object
properties:
violation:
# A representation of a violation due to rooms creation/update sent by a user of Symphony
$ref: '#/definitions/V3DLPViolation'
stream:
# Room details when DLP was enforced
$ref: '#/definitions/V1DLPStream'
V3DLPViolationSignal:
type: object
properties:
violation:
# A representation of a violation due to signal creation/update sent by a user of Symphony
$ref: '#/definitions/V3DLPViolation'
signal:
# Signal details when DLP was enforced
$ref: '#/definitions/V1DLPSignal'
V3DLPViolation:
type: object
description: A representation of a violation due to an event created by a user of Symphony
properties:
enforcementEventID:
type: string
description: Enforcement event ID. Unique ID that identifies this enforcement.
entityID:
type: string
description: Entity ID is the content Id of the violation, for example, for messages, its the Id of the message
createTime:
type: integer
format: int64
description: Timestamp of the violation in milliseconds since Jan 1 1970
lastModified:
type: integer
format: int64
description: Timestamp of the last modification of violation in milliseconds since Jan 1 1970
requesterId:
type: integer
format: int64
description: Id of the requester responsible for the message/stream/signal
details:
type: array
description: JSON representation of the details of the violation.
items:
type: object
action:
type: string
description: action taken such as BLOCK or WARN. See outcome for a more detailed description of the outcome this action.
outcome:
# Detailed outcome of the DLP enforcement such as REJECTED_VIOLATION, ACCEPTED_WARNING, ACCEPTED_LEGACY_CLIENT etc.
$ref: '#/definitions/V1DLPOutcome'
version:
type: string
description: Version of application which processed the message and produced this violation.
ignoreDLPwarning:
type: boolean
description: Did the user chose to ignore DLP warning that was presented?
Pagination:
type: object
required:
- cursors
properties:
cursors:
type: object
required:
- before
- after
properties:
before:
type: string
description: |
This is the opaque url-safe string that points to the start of the page of data
that has been returned.
example: "MTAxNTExOTQ1MjAwNzI5NDE="
after:
type: string
description: |
This is the opaque url-safe string that points to the end of the page of data
that has been returned.
example: "NDMyNzQyODI3OTQw"
previous:
type: string
description: |
API endpoint that will return the previous page of data. If not included, this is
the first page of data.
example: "https://tenantapi.d.isym.io/v1/tenantinfo?limit=25&before=MTAxNTExOTQ1MjAwNzI5NDE="
next:
type: string
description: |
API endpoint that will return the next page of data. If not included, this is the
last page of data. Due to how pagination works with visibility and privacy, it is
possible that a page may be empty but contain a 'next' paging link. Stop paging when
the 'next' link no longer appears.
example: "https://tenantapi.d.isym.io/v1/tenantinfo?limit=25&after=NDMyNzQyODI3OTQw"
V1AuditTrailInitiatorResponse:
description: |
Audit Trail Initiator object response.
The attributes may vary according to the action.
There are different types of action and each action could have specific attributes.
type: object
properties:
action:
description: The audit trail action that has peformed
type: string
actionName:
description: The audit trail action name that has peformed
type: string
timestamp:
description: The timestamp when the action has occurred
type: string
initiatorId:
description: The user's id that has performed the action
type: string
initiatorUsername:
description: The username that has performed the action
type: string
initiatorEmailAddress:
description: The user's e-mail address that has performed the action
type: string
additionalProperties: true
V1AuditTrailInitiatorList:
type: object
properties:
items:
type: array
items:
$ref: '#/definitions/V1AuditTrailInitiatorResponse'
pagination:
type: object
$ref: "#/definitions/Pagination"
#
# Deprecated definitions
#
MessageSubmission:
type: object
properties:
format:
type: string
enum:
- TEXT
- MESSAGEML
message:
type: string
V2MessageSubmission:
type: object
properties:
format:
type: string
enum:
- TEXT
- MESSAGEML
message:
type: string
attachments:
type: array
items:
$ref: '#/definitions/AttachmentInfo'
MessageImportList:
description: |
An ordered list of historic messages to be imported.
A list of import responsees will be returned in the same order.
type: array
items:
$ref: '#/definitions/ImportedMessage'
ImportedMessage:
description: |
A historic message to be imported into the system.
The importing user must have the Content Management role.
Also, the importing user must be a member of the conversation it is importing into.
The user that the message is intended to have come from must also be present in the conversation.
The intended message timestamp must be a valid time from the past. It cannot be a future timestamp.
By design, imported messages do not stream to datafeed or firehose endpoints.
type: object
properties:
message:
type: string
format: MessageML
description: Message text in MessageML
format:
type: string
enum:
- TEXT
- MESSAGEML
intendedMessageTimestamp:
description: |
The timestamp representing the time when the message was sent in the original system
in milliseconds since Jan 1st 1970.
type: integer
format: int64
intendedMessageFromUserId:
description: |
The long integer userid of the Symphony user who you intend to show sent the message.
type: integer
format: int64
originatingSystemId:
description: |
The ID of the system through which the message was originally sent.
type: string
streamId:
type: string
required:
- message
- intendedMessageTimestamp
- intendedMessageFromUserId
- originatingSystemId
- streamId
V2MessageImportList:
description: |
An ordered list of historic messages to be imported.
A list of import responsees will be returned in the same order.
type: array
items:
$ref: '#/definitions/V2ImportedMessage'
V2ImportedMessage:
description: |
A historic message to be imported into the system.
The importing user must have the Content Management role.
Also, the importing user must be a member of the conversation it is importing into.
The user that the message is intended to have come from must also be present in the conversation.
The intended message timestamp must be a valid time from the past. It cannot be a future timestamp.
By design, imported messages do not stream to datafeed or firehose endpoints.
type: object
properties:
message:
type: string
format: MessageML
description: Message text in MessageML
format:
type: string
enum:
- TEXT
- MESSAGEML
intendedMessageTimestamp:
description: |
The timestamp representing the time when the message was sent in the original system
in milliseconds since Jan 1st 1970.
type: integer
format: int64
intendedMessageFromUserId:
description: |
The long integer userid of the Symphony user who you intend to show sent the message.
type: integer
format: int64
originatingSystemId:
description: |
The ID of the system through which the message was originally sent.
type: string
originalMessageId:
description: |
The ID of the message in the original system.
type: string
streamId:
type: string
required:
- message
- intendedMessageTimestamp
- intendedMessageFromUserId
- originatingSystemId
- streamId
ImportResponseList:
type: array
items:
$ref: '#/definitions/ImportResponse'
ImportResponse:
type: object
properties:
messageId:
description: |
If the message was successfully imported then the message ID in the system
of the newly created message.
type: string
diagnostic:
description: |
A diagnostic message containing an error message in the event that the
message import failed. May also be present in the case of a successful
call if there is useful narrative to return.
type: string
V2ImportResponseList:
type: array
items:
$ref: '#/definitions/V2ImportResponse'
V2ImportResponse:
type: object
properties:
messageId:
description: |
If the message was successfully imported then the message ID in the system
of the newly created message.
type: string
originatingSystemId:
description: |
The ID of the system through which the message was originally sent.
type: string
originalMessageId:
description: |
The ID of the message in the original system.
type: string
diagnostic:
description: |
A diagnostic message containing an error message in the event that the
message import failed. May also be present in the case of a successful
call if there is useful narrative to return.
type: string
BaseMessage:
type: object
discriminator: messageType
properties:
id:
type: string
description: The messageId is assigned by the ingestor service when a message is sent.
timestamp:
type: string
messageType:
type: string
streamId:
type: string
required:
- messageType
- timestamp
- streamId
V1HealthCheckResponse:
deprecated: true
type: object
properties:
podConnectivity:
type: boolean
description: Indicates whether the Agent server can connect to the Pod
podConnectivityError:
type: string
description: Error details in case of no Pod connectivity
keyManagerConnectivity:
type: boolean
description: Indicates whether the Agent server can connect to the Key Manager
keyManagerConnectivityError:
type: string
description: Error details in case of no Key Manager connectivity
version:
type: string
description: The version number of the Agent server
Message:
type: object
description: A representation of a message sent by a user of Symphony.
allOf:
- $ref: '#/definitions/BaseMessage'
- type: object
properties:
message:
type: string
format: MessageML
description: Message text in MessageML
fromUserId:
type: integer
format: int64
description: the Symphony userId of the user who sent the message. This will be populated by the server (and actually ignored if included when sending a message).
required:
- message
- fromUserId
MessageList:
type: array
items:
$ref: '#/definitions/Message'
© 2015 - 2025 Weber Informatics LLC | Privacy Policy