# V3 Stream Violations

When a violation occurs during the creation of a stream, there won't be any stream ID (because the stream was not created).

## Get violations as a result of policy enforcement on streams.

> Retrieves DLP v3 signal related violations for a given time range

```json
{"openapi":"3.0.1","info":{"title":"Agent API","version":"25.8.1"},"servers":[{"url":"youragentURL.symphony.com/agent"}],"paths":{"/v3/dlp/violations/stream":{"get":{"tags":["Violations"],"summary":"Get violations as a result of policy enforcement on streams.","description":"Retrieves DLP v3 signal related violations for a given time range","parameters":[{"name":"startTime","in":"query","description":"Timestamp of the first required violation.\nThis is a long integer value representing milliseconds since Jan 1 1970\n","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"endTime","in":"query","description":"Timestamp of the last required violation.\nThis is a long integer value representing milliseconds since Jan 1 1970\nIf unspecified, it will default to current time of the request.\n","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.\n","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.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V3DLPViolationStreamResponse"}}}},"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"}}}}}}}},"components":{"schemas":{"V3DLPViolationStreamResponse":{"type":"object","required":["violations"],"properties":{"violations":{"type":"array","items":{"$ref":"#/components/schemas/V3DLPViolationStream"}},"nextOffset":{"type":"string","description":"Offset for the next chunk of violations to be submitted in the next request.\nValue is null if there are no further violations.\n"}}},"V3DLPViolationStream":{"type":"object","properties":{"violation":{"$ref":"#/components/schemas/V3DLPViolation"},"stream":{"$ref":"#/components/schemas/V1DLPStream"}}},"V3DLPViolation":{"type":"object","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 it's the Id of the message"},"createTime":{"type":"integer","description":"Timestamp of the violation in milliseconds since Jan 1 1970","format":"int64"},"lastModified":{"type":"integer","description":"Timestamp of the last modification of violation in milliseconds since Jan 1 1970","format":"int64"},"requesterId":{"type":"integer","description":"Id of the requester responsible for the message/stream/signal","format":"int64"},"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":{"$ref":"#/components/schemas/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?"}},"description":"A representation of a violation due to an event created by a user of Symphony"},"V1DLPOutcome":{"type":"object","properties":{"type":{"type":"string","description":"Outcome of DLP enforcement"}},"description":"A representation of outcome of DLP message/stream/signal sent by a user of Symphony"},"V1DLPStream":{"type":"object","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","description":"Timestamp of last time the room is Disabled","format":"int64"},"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\nstream retrieval failed. May also be present in the case of a successful\ncall if there is useful narrative to return.\n"}},"description":"Room details in the context of violation."},"Error":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}}}}
```

> #### 🚧 Required Permissions
>
> Calling this endpoint requires the Expression Filter Policy Management role.\
> See [Bot Permissions](https://docs.developers.symphony.com/building-bots-on-symphony/configuration/bot-permissions) for a list of roles and associated privileges.
