openapi: 3.0.1
info:
title: Symphony Agent Add Dlp 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 some 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
- **Real Time Events**: The following events are returned when reading
from a real time messages and events stream ("datafeed"). These
events will be returned for datafeeds created with the v5 endpoints.
To know more about the endpoints, refer to Create Messages/Events
Stream and Read Messages/Events Stream. Unless otherwise specified,
all events were added in 1.46.
'
version: 22.9.1
servers:
- url: /
tags:
- name: Dlp
paths:
/v1/dlp/policies:
get:
tags:
- Dlp
summary: Symphony Get All Policies
description: Get all policies
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: page
in: query
description: Optional parameter to specify which page to return (default is 0)
schema:
type: integer
format: int32
- name: limit
in: query
description: 'Optional parameter to specify the number of result to return per page, default is 50. Maximum is 50.
'
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPoliciesCollectionResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
tags:
- Dlp
summary: Symphony 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.
'
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
requestBody:
description: Details about the policy that should be created.
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-codegen-request-body-name: body
/v1/dlp/policies/{policyId}:
get:
tags:
- Dlp
summary: Symphony Get a Policy
description: Get a policy
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: policyId
in: path
description: Unique dictionary identifier.
required: true
schema:
type: string
- name: policyVersion
in: query
description: "Optional parameter, if set to be valid policy version number, will return policy with specified policyVersion. \nOtherwise, return the latest policy.\n"
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
put:
tags:
- Dlp
summary: Symphony 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.
'
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: policyId
in: path
description: Unique dictionary identifier.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-codegen-request-body-name: body
delete:
tags:
- Dlp
summary: Symphony Delete a Policy
description: 'Delete a policy.
Note: Only disabled policy can be deleted
'
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: policyId
in: path
description: Unique dictionary identifier.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/dlp/policies/{policyId}/enable:
post:
tags:
- Dlp
summary: Symphony Enables a Policy
description: Enables a policy.
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: policyId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/dlp/policies/{policyId}/disable:
post:
tags:
- Dlp
summary: Symphony Disables a Policy
description: Disables a policy.
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: policyId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPPolicyResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/dlp/dictionaries:
get:
tags:
- Dlp
summary: Symphony 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
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: page
in: query
description: Optional parameter to specify which page to return (default is 0)
schema:
type: integer
format: int32
- name: limit
in: query
description: 'Optional parameter to specify the number of result to return per page, default is 50. Maximum is 50.
'
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataCollectionResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
tags:
- Dlp
summary: Symphony 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.
'
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataCreateRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-codegen-request-body-name: body
/v1/dlp/dictionaries/{dictId}:
get:
tags:
- Dlp
summary: Symphony Get Dictionary Metadata
description: Get basic information for a dictionary.
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: dictId
in: path
description: Unique dictionary identifier
required: true
schema:
type: string
- name: dictVersion
in: query
description: "If set to be valid dictionary version number, will return dictionary metadata with specified version. \nOtherwise, return the latest dictionary metadata.\n"
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
put:
tags:
- Dlp
summary: Symphony 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.
'
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: dictId
in: path
description: Unique dictionary identifier
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataUpdateRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-codegen-request-body-name: body
delete:
tags:
- Dlp
summary: Symphony Delete a Dictionary
description: 'Deletes a dictionary.
Note: All related policies will be affected.
'
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: dictId
in: path
description: Unique dictionary identifier
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/dlp/dictionaries/{dictId}/data/download:
get:
tags:
- Dlp
summary: Symphony Downloads Base 64 Encoded Dictionary Content
description: Downloads Base 64 encoded dictionary content.
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: dictId
in: path
description: Unique dictionary identifier
required: true
schema:
type: string
- name: dictVersion
in: query
description: "If set to be valid dictionary version number, will return dictionary with specified version. \nOtherwise, return the latest dictionary.\n"
schema:
type: string
responses:
'200':
description: Attachment body as Base64 encoded string.
content:
application/octet-stream:
schema:
type: string
format: byte
'400':
description: Client error, see response body for further details.
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/Error'
/v1/dlp/dictionaries/{dictId}/data/upload:
post:
tags:
- Dlp
summary: Symphony Override Dictionary Content With Provided Content
description: Override dictionary content with provided content.
parameters:
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
- name: dictId
in: path
description: Unique dictionary identifier
required: true
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
required:
- data
properties:
data:
type: string
format: binary
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPDictionaryMetadataResponse'
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/dlp/violations/message:
get:
tags:
- Dlp
summary: Symphony Get Violations as a Result of Policy Enforcement on Messages
parameters:
- name: startTime
in: query
description: 'Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
'
required: true
schema:
type: integer
format: int64
- name: endTime
in: query
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.
'
schema:
type: integer
format: int64
- name: next
in: query
description: Offset of the next chunk of violations. Value is null for the first request.
schema:
type: string
- name: limit
in: query
description: 'Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
'
schema:
type: integer
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPViolationMessageResponse'
'204':
description: No Messages.
content: {}
'400':
description: Client error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'Unauthorized: Session tokens invalid.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'Forbidden: Caller lacks necessary entitlement.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error, see response body for further details.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/dlp/violations/stream:
get:
tags:
- Dlp
summary: Symphony Get Violations as a Result of Policy Enforcement on Streams
parameters:
- name: startTime
in: query
description: 'Timestamp of the first required violation.
This is a long integer value representing milliseconds since Jan 1 1970
'
required: true
schema:
type: integer
format: int64
- name: endTime
in: query
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.
'
schema:
type: integer
format: int64
- name: next
in: query
description: Offset of the next chunk of violations. Value is null for the first request.
schema:
type: string
- name: limit
in: query
description: 'Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.
'
schema:
type: integer
- name: sessionToken
in: header
description: Session authentication token.
required: true
schema:
type: string
- name: keyManagerToken
in: header
description: Key Manager authentication token.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/V1DLPViolationStreamResponse'
# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/symphony/refs/heads/main/openapi/symphony-dlp-api-openapi.yml