Flock Safety LPR Hotlist Alert Subscriptions API

The LPR Hotlist Alert Subscriptions API from Flock Safety — 2 operation(s) for lpr hotlist alert subscriptions.

OpenAPI Specification

flock-safety-lpr-hotlist-alert-subscriptions-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Flock Safety API Platform (v3) Alerts LPR Hotlist Alert Subscriptions API
  description: Flock Safety v3 API Platform harvested from the public developer hub (docs.flocksafety.com). Combines the Device, Custom Hotlist, LPR Search, Plate Lookup, Hotlist Alerts Subscription, Geolocation, CAD, Inbound Alerts, and Vehicle Detections Ingest APIs. OAuth2 client_credentials (machine) and authorization_code (user) flows against api.flocksafety.com.
  version: 3.0.0
  contact:
    name: Flock Safety Developer Hub
    url: https://docs.flocksafety.com/
servers:
- url: https://api.flocksafety.com/api/v3
  description: Production
- url: https://dev-api.flocksafety.com/api/v3
  description: Development sandbox (at Flock discretion)
tags:
- name: LPR Hotlist Alert Subscriptions
paths:
  /integrations/lpr/alerts/subscriptions/{id}:
    delete:
      summary: Delete Subscription
      description: Delete existing LPR hotlist alert webhook subscription by id
      tags:
      - LPR Hotlist Alert Subscriptions
      security:
      - bearerAuth: []
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      responses:
        '204':
          description: Success
        '403':
          description: Forbidden (lacking appropriate scope or client claims)
        '404':
          description: Subscription Not Found
        '500':
          description: Internal Server Error
    get:
      summary: Get Subscription
      description: Get existing LPR hotlist alert webhook subscription by id
      tags:
      - LPR Hotlist Alert Subscriptions
      security:
      - bearerAuth: []
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '403':
          description: Forbidden (lacking appropriate scope or client claims)
        '404':
          description: Subscription Not Found
        '500':
          description: Internal Server Error
  /integrations/lpr/alerts/subscriptions:
    get:
      summary: Get Subscriptions
      description: Get existing LPR hotlist alerts webhook subscriptions
      tags:
      - LPR Hotlist Alert Subscriptions
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Subscription'
        '403':
          description: Forbidden (lacking appropriate scope or client claims)
        '500':
          description: Internal Server Error
    post:
      summary: Create Subscription
      description: Create a new LPR hotlist alert webhook subscription
      tags:
      - LPR Hotlist Alert Subscriptions
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubscriptionRequest'
      responses:
        '201':
          description: Subscription Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '400':
          description: Bad Request (missing required field or credentials failed to validate)
        '403':
          description: Forbidden (lacking appropriate scope or client claims)
        '409':
          description: Conflict (violates a unique constraint)
        '500':
          description: Internal Server Error
    put:
      summary: Update Subscription
      description: Update an existing LPR hotlist alert webhook subscription
      tags:
      - LPR Hotlist Alert Subscriptions
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSubscriptionRequest'
      responses:
        '200':
          description: Subscription Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '400':
          description: Bad Request (missing required field or credentials failed to validate)
        '403':
          description: Forbidden (lacking appropriate scope or client claims)
        '404':
          description: Subscription Not Found
        '500':
          description: Internal Server Error
components:
  schemas:
    UpdateSubscriptionRequest:
      type: object
      description: request body schema to update an existing webhook subscription
      allOf:
      - $ref: '#/components/schemas/CreateSubscriptionRequest'
      - type: object
        properties:
          id:
            type: string
            format: uuid
            description: id of the webhook subscription
        required:
        - id
    CreateSubscriptionRequest:
      type: object
      description: request body schema to create a new webhook subscription
      properties:
        name:
          type: string
          description: optional name to describe the webhook subscription
        callbackUrl:
          type: string
          description: endpoint that webhooks should be submitted to
          format: url
          example: https://example.com/your/webhook
        credentials:
          $ref: '#/components/schemas/Credentials'
        contentType:
          type: string
          description: content type that webhooks should be provided as
          enum:
          - application/json
          - application/xml
        customHotlistAudienceFilter:
          type: string
          description: "Optionally include LPR hotlist alerts from custom hotlists with restricted audiences\n * `any` - Custom hotlists with organization-wide audience and restricted audience e.g. role-based or user-based audiences\n * `organization` - Custom hotlists with organization-wide audience only\n"
          enum:
          - any
          - organization
          default: organization
        enabledFirstResponderJurisdictionAlerts:
          type: boolean
          description: indicates whether the subscription should accept hotlist alerts from shared networks in the organization's First Responder Jurisdiction or not
        enabled:
          type: boolean
          description: indicates whether the subscription should be enabled or not
      required:
      - callbackUrl
      - credentials
      - contentType
    Credentials:
      type: object
      description: authentication details for calling the webhook endpoint
      properties:
        scheme:
          type: string
          description: authentication scheme used by webhook endpoint
          enum:
          - none
          - apiKey
          - basic
          - oauth2
        apiKey:
          type: object
          description: API key credentials, required if scheme is "apiKey"
          properties:
            key:
              type: string
              description: API key (this field will be redacted when fetching existing subscriptions)
            headerName:
              type: string
              description: HTTP header name that should be used to supply the API key
              example: x-api-key
          required:
          - key
          - headerName
        basic:
          type: object
          description: basic credentials, required if scheme is "basic"
          properties:
            username:
              type: string
              description: username
            password:
              type: string
              description: password (this field will be redacted when fetching existing subscriptions)
            headerName:
              type: string
              description: HTTP header name that should be used to supply the basic credentials
              example: Authorization
          required:
          - username
          - password
          - headerName
        oauth2:
          type: object
          description: OAuth2 credentials, required if scheme is "oauth2"
          properties:
            tokenEndpoint:
              type: string
              description: endpoint where OAuth2 token should be retrieved
              format: url
              example: https://example.auth0.com/oauth/token
            tokenScheme:
              type: string
              description: token scheme used to authenticate the token endpoint
              enum:
              - body
              - basic
              default: body
            clientId:
              type: string
              description: OAuth2 client ID
            clientSecret:
              type: string
              description: OAuth2 client secret (this field will be redactd when fetching existing subscriptions)
            grantType:
              type: string
              description: OAuth2 client grant type
              example: client_credentials
            scope:
              type: string
              description: scope to request for token
            customFields:
              type: object
              description: key-value pairs to be appended to token request (values will be redacted when fetching existing subscriptions)
              additionalProperties: true
            headerName:
              type: string
              description: HTTP header name that should be used to supply the OAuth2 token
              example: Authorization
          required:
          - tokenEndpoint
          - clientId
          - clientSecret
          - grantType
          - headerName
      required:
      - scheme
    Subscription:
      type: object
      description: response object when creating, updating or fetching a webhook subscription
      allOf:
      - $ref: '#/components/schemas/UpdateSubscriptionRequest'
      - type: object
        properties:
          createdAt:
            type: string
            format: date-time
            description: RFC3339 UTC timestamp of when the webhook subscription was created
          updatedAt:
            type: string
            format: date-time
            description: RFC3339 UTC timestamp of when the webhook subscription was most recently updated
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    oauth2Auth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.flocksafety.com/oauth/token
          scopes:
            custom-holists:read: Read access to custom hotlists
            custom-holists:write: Write access to custom hotlists
    FlockOAuth:
      type: oauth2
      description: OAuth 2 with the client credentials flow
      flows:
        clientCredentials:
          scopes:
            plate-reads:lookup: Access to perform lookups on license plate reads.
          tokenUrl: https://api.flocksafety.com/oauth/token
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.flocksafety.com/oauth/token
          scopes: {}