openapi: 3.1.0
info:
  title: Abel Writer API
  description: Abel API for internal and external use.
  version: 1.0.0
servers:
- url: https://api.stage.abelpolice.com
  description: Stage
paths:
  /v1/agencies:
    get:
      tags:
      - agencies
      summary: List agencies
      operationId: list_agencies_v1_agencies_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          title: Limit
          description: The maximum number of agencies to return
          default: 1000
        description: The maximum number of agencies to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          title: Offset
          description: The number of agencies to skip
          default: 0
        description: The number of agencies to skip
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAgenciesResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/agencies/{agency_id}:
    get:
      tags:
      - agencies
      summary: Get specific agency
      operationId: get_agency_v1_agencies__agency_id__get
      parameters:
      - name: agency_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Agency ID
          description: UUID of the agency to return
        description: UUID of the agency to return
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAgencyResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Resource Not Found
          content:
            application/json:
              example:
                detail: Resource not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/agencies/{agency_id}/cad:
    post:
      tags:
      - agencies
      summary: Post new CAD data for an agency
      operationId: post_agency_cad_v1_agencies__agency_id__cad_post
      parameters:
      - name: agency_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The ID of the agency to post CAD data for
          title: Agency Id
        description: The ID of the agency to post CAD data for
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <api-key>
        description: API key or token
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              type: string
              format: xml
              title: Body
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCadResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              example:
                detail: Bad Request
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/analytics/external:
    post:
      tags:
      - analytics
      summary: Create analytics
      operationId: create_analytics_events_external_v1_analytics_external_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAnalyticsEventsExternalRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAnalyticsEventsExternalResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: Access Denied
        '404':
          description: Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: Resource not found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: Internal Server Error
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
      parameters:
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
  /v1/token:
    get:
      tags:
      - auth
      summary: Get auth token
      operationId: get_token_v1_token_get
      parameters:
      - name: partner-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          description: Partner ID issued by Abel
          title: Partner-Id
        description: Partner ID issued by Abel
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <api-key>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTokenResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/info:
    get:
      tags:
      - info
      summary: Get caller info
      operationId: get_info_v1_info_get
      parameters:
      - name: user_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: User ID
          description: Valid UUID of the user to get info for. (Admin only)
        description: Valid UUID of the user to get info for. (Admin only)
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInfoResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/reports:
    get:
      tags:
      - reports
      summary: List reports
      operationId: list_reports_v1_reports_get
      parameters:
      - name: user_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: User ID
          description: Valid UUID of the user to filter reports by
        description: Valid UUID of the user to filter reports by
      - name: agency_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Agency ID
          description: Valid UUID of the agency to filter reports by
        description: Valid UUID of the agency to filter reports by
      - name: event_occurred_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Event Occurred After
          description: Filter reports where event occurred on or after this date/datetime
            (UTC)
        description: Filter reports where event occurred on or after this date/datetime
          (UTC)
      - name: event_occurred_before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Event Occurred Before
          description: Filter reports where event occurred on or before this date/datetime
            (UTC)
        description: Filter reports where event occurred on or before this date/datetime
          (UTC)
      - name: report_created_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Created After
          description: Filter reports created on or after this date/datetime (UTC)
        description: Filter reports created on or after this date/datetime (UTC)
      - name: report_created_before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Created Before
          description: Filter reports created on or before this date/datetime (UTC)
        description: Filter reports created on or before this date/datetime (UTC)
      - name: report_updated_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Updated After
          description: Filter reports updated on or after this date/datetime (UTC)
        description: Filter reports updated on or after this date/datetime (UTC)
      - name: report_updated_before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Updated Before
          description: Filter reports updated on or before this date/datetime (UTC)
        description: Filter reports updated on or before this date/datetime (UTC)
      - name: report_status
        in: query
        required: false
        schema:
          anyOf:
          - anyOf:
            - $ref: '#/components/schemas/ReportStatus'
            - type: array
              items:
                $ref: '#/components/schemas/ReportStatus'
            maxLength: 17
          - type: 'null'
          title: Report Status
          description: Filter reports by status (single value or list)
        description: Filter reports by status (single value or list)
      - name: user_email
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: User Email
          description: Filter reports by user email
          examples:
          - officer@agency.com
        description: Filter reports by user email
      - name: include_archived
        in: query
        required: false
        schema:
          type: boolean
          title: Include Archived
          description: Whether to include archived reports
          examples:
          - true
          default: false
        description: Whether to include archived reports
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          title: Limit
          description: Maximum number of reports to return
          default: 1000
        description: Maximum number of reports to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          title: Offset
          description: Number of reports to skip
          default: 0
        description: Number of reports to skip
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReportsResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/reports/{report_id}:
    get:
      tags:
      - reports
      summary: Get a report
      operationId: get_report_v1_reports__report_id__get
      parameters:
      - name: report_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Report ID
          description: Valid UUID of the report to retrieve
        description: Valid UUID of the report to retrieve
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReportResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Resource Not Found
          content:
            application/json:
              example:
                detail: Resource not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/users:
    get:
      tags:
      - users
      summary: List users
      operationId: list_users_v1_users_get
      parameters:
      - name: user_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: List of user IDs to filter by
          examples:
          - - 123e4567-e89b-12d3-a456-426614174000
            - 123e4567-e89b-12d3-a456-426614174001
          title: User Ids
        description: List of user IDs to filter by
      - name: agency_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: List of agency IDs to filter by
          examples:
          - - 123e4567-e89b-12d3-a456-426614174000
            - 123e4567-e89b-12d3-a456-426614174001
          title: Agency Ids
        description: List of agency IDs to filter by
      - name: user_roles
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: List of user roles to filter by
          examples:
          - - officer
            - agency_admin
          title: User Roles
        description: List of user roles to filter by
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: Maximum number of users to return
          default: 1000
          title: Limit
        description: Maximum number of users to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of users to skip
          default: 0
          title: Offset
        description: Number of users to skip
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListUsersResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
  /v1/users/{user_id}:
    get:
      tags:
      - users
      summary: Get a user
      operationId: get_user_v1_users__user_id__get
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: User ID
          description: The UUID of the user to return
        description: The UUID of the user to return
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          example: <token>
        description: API key or token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserResponse'
        '403':
          description: Access Denied
          content:
            application/json:
              example:
                detail: Access Denied
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Resource Not Found
          content:
            application/json:
              example:
                detail: Resource not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                detail: Internal Server Error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-fern-audiences:
      - public
      - internal
components:
  schemas:
    GcpTranslatePossibleLanguages:
      type: string
      enum:
      - ab
      - ace
      - ach
      - af
      - sq
      - alz
      - am
      - ar
      - hy
      - as
      - awa
      - ay
      - az
      - ban
      - bm
      - ba
      - eu
      - btx
      - bts
      - bbc
      - be
      - bem
      - bn
      - bew
      - bho
      - bik
      - bs
      - br
      - bg
      - bua
      - yue
      - ca
      - ceb
      - ny
      - zh-CN
      - zh-TW
      - cv
      - co
      - crh
      - hr
      - cs
      - da
      - din
      - dv
      - doi
      - dov
      - nl
      - dz
      - en
      - eo
      - et
      - ee
      - fj
      - tl
      - fi
      - fr
      - fr-FR
      - fr-CA
      - fy
      - ff
      - gaa
      - gl
      - lg
      - ka
      - de
      - el
      - gn
      - gu
      - ht
      - cnh
      - ha
      - haw
      - iw
      - hil
      - hi
      - hmn
      - hu
      - hrx
      - is
      - ig
      - ilo
      - id
      - ga
      - it
      - ja
      - jw
      - kn
      - pam
      - kk
      - km
      - cgg
      - rw
      - ktu
      - gom
      - ko
      - kri
      - ku
      - ckb
      - ky
      - lo
      - ltg
      - la
      - lv
      - lij
      - li
      - ln
      - lt
      - lmo
      - luo
      - lb
      - mk
      - mai
      - mak
      - mg
      - ms
      - ms-Arab
      - ml
      - mt
      - mi
      - mr
      - chm
      - mni-Mtei
      - min
      - lus
      - mn
      - my
      - nr
      - new
      - ne
      - nso
      - 'no'
      - nus
      - oc
      - or
      - om
      - pag
      - pap
      - ps
      - fa
      - pl
      - pt
      - pt-PT
      - pt-BR
      - pa
      - pa-Arab
      - qu
      - rom
      - ro
      - rn
      - ru
      - sm
      - sg
      - sa
      - gd
      - sr
      - st
      - crs
      - shn
      - sn
      - scn
      - szl
      - sd
      - si
      - sk
      - sl
      - so
      - es
      - su
      - sw
      - ss
      - sv
      - tg
      - ta
      - tt
      - te
      - tet
      - th
      - ti
      - ts
      - tn
      - tr
      - tk
      - ak
      - uk
      - ur
      - ug
      - uz
      - vi
      - cy
      - xh
      - yi
      - yo
      - yua
      - zu
      - unknown
      title: GcpTranslatePossibleLanguages
    TimeFormat:
      type: string
      enum:
      - '%I %p'
      - '%I:%M %p'
      - '%I:%M:%S %p'
      - '%H hours'
      - '%H:%M'
      - '%H:%M:%S'
      - '%H%M'
      - '%H%M hours'
      - '%H%M%S'
      - '%H:%M:%S'
      title: TimeFormat
    CadSystem:
      type: string
      enum:
      - CentralSquare CAD Pro
      - Mark43 CAD
      - Hexagon I/CAD
      - Versaterm CAD
      - Caliber CAD NG
      - RIMS CAD
      title: CadSystem
    NarrativeAffidavit:
      type: string
      enum:
      - NONE
      - AFFIDAVIT
      - AFFIDAVIT_WITH_RECORDS
      title: NarrativeAffidavit
    GetAgencyInfo:
      properties:
        agency_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Name
          description: Agency name
          examples:
          - Abel Police Test Agency
        created_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At Utc
          description: Agency creation date in Abel system (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        updated_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At Utc
          description: Agency last update date in Abel system (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        agency_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Agency Enabled
          description: Agency enabled
          examples:
          - true
        agency_handle:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Handle
          description: Agency handle
          examples:
          - marin_central_ca
        agency_type:
          anyOf:
          - $ref: '#/components/schemas/AgencyType'
          - type: 'null'
          description: Agency type
          examples:
          - demo
          - live
        partner_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Partner Id
          description: Partner ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        public_phone_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Public Phone Number
          description: Agency public phone number
          examples:
          - '+14155552671'
        agency_address:
          anyOf:
          - $ref: '#/components/schemas/AgencyAddressResponse'
          - type: 'null'
          description: Agency headquarters address information
        agency_contract:
          anyOf:
          - $ref: '#/components/schemas/AgencyContractResponse'
          - type: 'null'
          description: Agency contract and seat information
        agency_settings:
          anyOf:
          - $ref: '#/components/schemas/AgencySettingsResponse'
          - type: 'null'
          description: Agency configuration settings
        originating_agency_identifier:
          anyOf:
          - type: string
          - type: 'null'
          title: Originating Agency Identifier
          description: Originating agency identifier
          examples:
          - ABEL-123
        agency_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Id
          description: Agency ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
      type: object
      title: GetAgencyInfo
    DateFormat:
      type: string
      enum:
      - '%b %d, %Y'
      - '%B %d, %Y'
      - '%m/%d/%y'
      - '%m/%d/%Y'
      - '%Y/%m/%d'
      - '%m-%d-%y'
      - '%m-%d-%Y'
      - '%Y-%m-%d'
      - '%d %b %Y'
      - '%d %B %Y'
      - '%d %b, %Y'
      - '%Y %b %d'
      - '%Y-%m-%d'
      title: DateFormat
    BasicReportInfoResponse:
      properties:
        report_id:
          type: string
          title: Report Id
          description: Report UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        agency_id:
          type: string
          title: Agency Id
          description: Agency UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        user_id:
          type: string
          title: User Id
          description: User UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        user_email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: User Email
          description: User email
          examples:
          - officer@agency.com
        user_first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: User First Name
          description: User first name
          examples:
          - John
        user_last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: User Last Name
          description: User last name
          examples:
          - McClane
        user_badge_number:
          anyOf:
          - type: string
          - type: 'null'
          title: User Badge Number
          description: User badge number
          examples:
          - '881'
        user_title:
          anyOf:
          - type: string
          - type: 'null'
          title: User Title
          description: User title
          examples:
          - Captain
        chat_id:
          type: string
          title: Chat Id
          description: Associated Partner chat UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        event_occurred_at_utc:
          type: string
          format: date-time
          title: Event Occurred At Utc
          description: Event occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        report_created_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Created At Utc
          description: Report created at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        report_updated_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Updated At Utc
          description: Report updated at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        report_expiration_at_utc:
          type: string
          format: date-time
          title: Report Expiration At Utc
          description: Report expires at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        cad_event_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Cad Event Id
          description: CAD event ID
          examples:
          - '123456'
        combined_from_reports:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Combined From Reports
          description: Reports that were combined to create this report
          examples:
          - - 123e4567-e89b-12d3-a456-426614174000
            - 123e4567-e89b-12d3-a456-426614174001
        superceded_by_report_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Superceded By Report Id
          description: Report ID of the report that superceded this report
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        is_restricted:
          type: boolean
          title: Is Restricted
          description: Whether any evidence attached to the report is restricted in
            the DEMS
          examples:
          - false
        is_archived:
          type: boolean
          title: Is Archived
          description: Whether the report is archived
          examples:
          - true
        report_status:
          anyOf:
          - $ref: '#/components/schemas/ReportStatus'
          - type: 'null'
          description: Report status
          examples:
          - completed
        report_type:
          anyOf:
          - $ref: '#/components/schemas/ReportType'
          - type: 'null'
          description: Report type
          examples:
          - BURGLARY
          - THEFT
          - MISSING PERSON
        report_category:
          anyOf:
          - $ref: '#/components/schemas/ReportCategory'
          - type: 'null'
          description: Report category
          examples:
          - PROPERTY
          - PERSON
          - TRAFFIC
        videos:
          items:
            $ref: '#/components/schemas/GetVideoResponse'
          type: array
          title: Videos
          description: Videos in the report
        audios:
          items:
            $ref: '#/components/schemas/GetAudioResponse'
          type: array
          title: Audios
          description: Audios in the report
        photos:
          items:
            $ref: '#/components/schemas/GetPhotoResponse'
          type: array
          title: Photos
          description: Photos in the report
      type: object
      required:
      - report_id
      - agency_id
      - user_id
      - chat_id
      - event_occurred_at_utc
      - report_expiration_at_utc
      - is_restricted
      - is_archived
      title: BasicReportInfoResponse
    ListUsersResponse:
      properties:
        users:
          items:
            $ref: '#/components/schemas/ListSingleUserResponse'
          type: array
          title: Users
        metadata:
          $ref: '#/components/schemas/APIMetadataResponse'
      type: object
      required:
      - users
      - metadata
      title: ListUsersResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    APIMetadataResponse:
      properties:
        offset:
          type: integer
          title: Offset
        limit:
          type: integer
          title: Limit
        total_records:
          type: integer
          title: Total Records
        total_pages:
          type: integer
          title: Total Pages
        current_page:
          type: integer
          title: Current Page
        has_next_page:
          type: boolean
          title: Has Next Page
        has_previous_page:
          type: boolean
          title: Has Previous Page
        records_in_page:
          type: integer
          title: Records In Page
      type: object
      required:
      - offset
      - limit
      - total_records
      - total_pages
      - current_page
      - has_next_page
      - has_previous_page
      - records_in_page
      title: APIMetadataResponse
    GetAudioResponse:
      properties:
        occurred_at_utc:
          type: string
          format: date-time
          title: Occurred At Utc
          description: File event occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        uploaded_at_utc:
          type: string
          format: date-time
          title: Uploaded At Utc
          description: File uploaded at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
          description: File created in Abel at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        presigned_url:
          type: string
          title: Presigned Url
          description: Presigned URL for the file (lasts 1 hour)
          examples:
          - https://bucket.s3-fips.us-gov-west-1.amazonaws.com/key
        dems_id:
          type: string
          title: Dems Id
          description: DEMS ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        locker_info:
          anyOf:
          - $ref: '#/components/schemas/LockerInfo'
          - type: 'null'
          description: Locker information
        audio_id:
          type: string
          title: Audio Id
          description: Audio UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        duration_seconds:
          anyOf:
          - type: number
          - type: 'null'
          title: Duration Seconds
          description: Audio length in seconds
          examples:
          - 120
      type: object
      required:
      - occurred_at_utc
      - uploaded_at_utc
      - created_at_utc
      - presigned_url
      - dems_id
      - audio_id
      title: GetAudioResponse
    SingleReportResponse:
      properties:
        report_id:
          type: string
          title: Report Id
          description: Report UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        agency_id:
          type: string
          title: Agency Id
          description: Agency UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        user_id:
          type: string
          title: User Id
          description: User UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        user_email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: User Email
          description: User email
          examples:
          - officer@agency.com
        user_first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: User First Name
          description: User first name
          examples:
          - John
        user_last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: User Last Name
          description: User last name
          examples:
          - McClane
        user_badge_number:
          anyOf:
          - type: string
          - type: 'null'
          title: User Badge Number
          description: User badge number
          examples:
          - '881'
        user_title:
          anyOf:
          - type: string
          - type: 'null'
          title: User Title
          description: User title
          examples:
          - Captain
        event_occurred_at_utc:
          type: string
          format: date-time
          title: Event Occurred At Utc
          description: Report occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        report_created_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Created At Utc
          description: Report created at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        report_updated_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Report Updated At Utc
          description: Report updated at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        report_expiration_at_utc:
          type: string
          format: date-time
          title: Report Expiration At Utc
          description: Report expires at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        report_type:
          anyOf:
          - $ref: '#/components/schemas/ReportType'
          - type: 'null'
          description: Report type
          examples:
          - ROBBERY
          - TRAFFIC CITATION
          - MISSING PERSON
        report_category:
          anyOf:
          - $ref: '#/components/schemas/ReportCategory'
          - type: 'null'
          description: Report category
          examples:
          - PROPERTY
          - PERSON
          - GENERAL
        sixteen_word_title:
          anyOf:
          - type: string
          - type: 'null'
          title: Sixteen Word Title
          description: Sixteen word title
          examples:
          - A sixteen word title
        eight_word_title:
          anyOf:
          - type: string
          - type: 'null'
          title: Eight Word Title
          description: Eight word title
          examples:
          - An eight word title
        four_word_title:
          anyOf:
          - type: string
          - type: 'null'
          title: Four Word Title
          description: Four word title
          examples:
          - A four word title
        cad_event_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Cad Event Id
          description: CAD event ID
          examples:
          - '123456'
        combined_from_reports:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Combined From Reports
          description: Reports that were combined to create this report
          examples:
          - - 123e4567-e89b-12d3-a456-426614174000
            - 123e4567-e89b-12d3-a456-426614174001
        is_restricted:
          type: boolean
          title: Is Restricted
          description: Whether any evidence attached to the report is restricted in
            the DEMS
          examples:
          - false
        is_archived:
          type: boolean
          title: Is Archived
          description: Whether the report is archived
          examples:
          - true
        report_status:
          anyOf:
          - $ref: '#/components/schemas/ReportStatus'
          - type: 'null'
          description: Report status
          examples:
          - completed
        report_skipped_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Report Skipped Reason
          description: Reason for skipping report generation, if applicable
          examples:
          - No speech detected in audio files
        videos:
          items:
            $ref: '#/components/schemas/ListVideoResponse'
          type: array
          title: Videos
          description: Videos in the report
        audios:
          items:
            $ref: '#/components/schemas/ListAudioResponse'
          type: array
          title: Audios
          description: Audios in the report
        photos:
          items:
            $ref: '#/components/schemas/ListPhotoResponse'
          type: array
          title: Photos
          description: Photos in the report
        key_frames:
          anyOf:
          - type: string
          - type: 'null'
          title: Key Frames
          description: Presigned URL for key frames spritesheet collage
      type: object
      required:
      - report_id
      - agency_id
      - user_id
      - event_occurred_at_utc
      - report_expiration_at_utc
      - is_restricted
      - is_archived
      title: SingleReportResponse
    GetUserSettings:
      properties:
        narrative_signature:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          title: Narrative Signature
          description: The signature to use for report narratives
          examples:
          - Officer Daniel Francis, Badge No. 1107
        narrative_include_ts:
          type: boolean
          title: Narrative Include Ts
          description: Whether to include citation timestamps in report narratives
          default: true
          examples:
          - true
        narrative_header:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          title: Narrative Header
          description: The header to use for report narratives
          examples:
          - Officer Daniel Francis Badge No. 1107
        narrative_remove_spacing:
          type: boolean
          title: Narrative Remove Spacing
          description: Whether to remove spacing between paragraphs in report narratives
          default: false
          examples:
          - false
        narrative_include_officer_name:
          type: boolean
          title: Narrative Include Officer Name
          description: Whether to include the officer's name in report narratives
          default: true
          examples:
          - false
        show_dems_locker_info:
          type: boolean
          title: Show Dems Locker Info
          description: Whether to show DEMS locker info with the user's reports
          default: false
          examples:
          - true
        enable_investigator_mode:
          type: boolean
          title: Enable Investigator Mode
          description: Whether to enable investigator mode for the user
          default: false
          examples:
          - true
        mfa_type:
          $ref: '#/components/schemas/UserMFAType'
          description: The MFA type for the user
          default: email
          examples:
          - email
          - sms
        title:
          $ref: '#/components/schemas/UserTitle'
          description: The title/rank of the user in the agency and how they are referred
            to in reports
          default: Officer
          examples:
          - Officer
          - Chief
          - Detective
        electronic_signature_consent:
          type: boolean
          title: Electronic Signature Consent
          description: Whether the user has consented to electronic signature for
            reports
          default: false
          examples:
          - true
        client_notification_sounds:
          type: boolean
          title: Client Notification Sounds
          description: Whether to play audible noises in the browser when client notifications
            are received
          default: true
          examples:
          - true
        allow_style_guide:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Allow Style Guide
          description: 'Feature flag: whether style guide is enabled for this user'
          default: false
          examples:
          - true
        narrative_ordering_mode:
          $ref: '#/components/schemas/NarrativeOrderingMode'
          description: Optional narrative ordering style preference
          default: in_order_occurred
          examples:
          - in_order_occurred
          - in_order_described
        thumbnail_view:
          type: boolean
          title: Thumbnail View
          description: Whether to display the report list as thumbnails instead of
            a list view
          default: true
          examples:
          - true
        voice_tagging_available:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Voice Tagging Available
          description: Whether the user has voice tagging available
          default: true
          examples:
          - true
        voice_tagging_datetime_processed_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Voice Tagging Datetime Processed Utc
          description: The datetime when we processed the user's voice tagging file
          examples:
          - '2023-10-01T12:00:00'
        searching_for_voice_tagging:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Searching For Voice Tagging
          description: Whether the user is searching for voice tagging
          examples:
          - true
        style_guide_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Style Guide Id
          description: Applied style guide UUID for this user
      type: object
      title: GetUserSettings
    ListAgenciesResponse:
      properties:
        agencies:
          items:
            $ref: '#/components/schemas/ListSingleAgencyResponse'
          type: array
          title: Agencies
        metadata:
          $ref: '#/components/schemas/APIMetadataResponse'
      type: object
      required:
      - agencies
      - metadata
      title: ListAgenciesResponse
    ListSingleUserResponse:
      properties:
        user_id:
          type: string
          title: User Id
          description: User UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        agency_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Id
          description: Agency UUID
          examples:
          - 41db4476-f346-4e7b-a83d-a3a5a5d5d832
        agency_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Name
          description: Agency name
          examples:
          - New York Police Department
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
          description: User email
          examples:
          - john.mcclane@nyc.gov
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: User first name
          examples:
          - John
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: User last name
          examples:
          - McClane
        phone_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone Number
          description: User phone number
          examples:
          - '+1234567890'
        badge_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Badge Number
          description: User badge number
          examples:
          - '881'
        last_login_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Login At Utc
          description: User last login date and time
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At Utc
          description: User created date and time
          examples:
          - '2021-01-01T00:00:00Z'
        updated_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At Utc
          description: User updated date and time
          examples:
          - '2021-01-01T00:00:00Z'
        writer_seat_assigned:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Writer Seat Assigned
          description: Whether the user is assigned to a writer seat
          examples:
          - false
        writer_seat_assigned_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Writer Seat Assigned At Utc
          description: User writer seat assigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        writer_seat_unassigned_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Writer Seat Unassigned At Utc
          description: User writer seat unassigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        chat_seat_assigned:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Chat Seat Assigned
          description: Whether the user is assigned to a chat seat
          examples:
          - false
        chat_seat_assigned_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Chat Seat Assigned At Utc
          description: User chat seat assigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        chat_seat_unassigned_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Chat Seat Unassigned At Utc
          description: User chat seat unassigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        global_admin:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Global Admin
          description: Whether the user is a global admin
          examples:
          - false
        is_onboarded:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Onboarded
          description: Whether the user is onboarded
          examples:
          - false
        role_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Role Name
          description: User role name
          examples:
          - officer
        voice_tagging_enabled:
          type: boolean
          title: Voice Tagging Enabled
          description: Whether the user has voice tagging enabled
          default: false
          examples:
          - false
      type: object
      required:
      - user_id
      title: ListSingleUserResponse
    ReportStatus:
      type: string
      enum:
      - merging_evidence
      - validating_evidence
      - queued
      - running
      - downloading_video
      - generating_transcript
      - processing_transcript
      - matching_cad
      - detecting_location
      - retrieving_weather
      - gathering_entities
      - generating_narrative
      - formatting_report
      - completed
      - error
      - skipped
      - voice_tagging
      title: ReportStatus
    LockerInfo:
      properties:
        locker_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Locker Id
          description: Locker ID
          examples:
          - '123456'
        locker_title:
          anyOf:
          - type: string
          - type: 'null'
          title: Locker Title
          description: Locker title
          examples:
          - Locker 1
        locker_categories:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Locker Categories
          description: Locker categories
          examples:
          - - category1
            - category2
      type: object
      title: LockerInfo
    Info:
      properties:
        global_admin:
          type: boolean
          title: Global Admin
          description: Requester is a global admin
          examples:
          - 'true'
        chat_visible:
          type: boolean
          title: Chat Visible
          description: Requester can see Abel Chat
          examples:
          - 'true'
        chat_seat_assigned:
          type: boolean
          title: Chat Seat Assigned
          description: Requester has a chat seat assigned
          examples:
          - 'true'
        writer_visible:
          type: boolean
          title: Writer Visible
          description: Requester can see Abel Writer
          examples:
          - 'true'
        writer_seat_assigned:
          type: boolean
          title: Writer Seat Assigned
          description: Requester has a writer seat assigned
          examples:
          - 'true'
        citizen_visible:
          type: boolean
          title: Citizen Visible
          description: Requester can see Citizen Reports
          examples:
          - 'true'
        partner_visible:
          type: boolean
          title: Partner Visible
          description: Requester can use Abel Partner
          examples:
          - 'true'
        agency_ids:
          items:
            anyOf:
            - type: string
            - type: 'null'
          type: array
          title: Agency Ids
          description: The list of agency IDs requester is associated with
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        role:
          anyOf:
          - $ref: '#/components/schemas/UserRoles'
          - type: 'null'
          description: Requester's role at Abel
          examples:
          - officer
        last_login_utc:
          type: string
          format: date-time
          title: Last Login Utc
          description: The last login time of the requester
          examples:
          - '2023-10-01T12:00:00Z'
      type: object
      required:
      - global_admin
      - chat_visible
      - chat_seat_assigned
      - writer_visible
      - writer_seat_assigned
      - citizen_visible
      - partner_visible
      - agency_ids
      - last_login_utc
      title: Info
    PostCadResponse:
      properties:
        agency_id:
          type: string
          title: Agency Id
      type: object
      required:
      - agency_id
      title: PostCadResponse
    MentionPersonNames:
      type: string
      enum:
      - ALWAYS
      - FIRST_OCCURRENCE
      - NEVER
      title: MentionPersonNames
    GetAgencyResponse:
      properties:
        agency:
          $ref: '#/components/schemas/GetSingleAgencyResponse'
          description: Agency information
      type: object
      required:
      - agency
      title: GetAgencyResponse
    UserMFAType:
      type: string
      enum:
      - email
      - sms
      title: UserMFAType
    UserRoles:
      type: string
      enum:
      - officer
      - citizen_reviewer
      - agency_admin
      - partner_admin
      - sales
      title: UserRoles
    ListPhotoResponse:
      properties:
        occurred_at_utc:
          type: string
          format: date-time
          title: Occurred At Utc
          description: File event occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        uploaded_at_utc:
          type: string
          format: date-time
          title: Uploaded At Utc
          description: File uploaded at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
          description: File created in Abel at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        dems_id:
          type: string
          title: Dems Id
          description: DEMS ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        locker_info:
          anyOf:
          - $ref: '#/components/schemas/LockerInfo'
          - type: 'null'
          description: Locker information
        photo_id:
          type: string
          title: Photo Id
          description: Photo UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
      type: object
      required:
      - occurred_at_utc
      - uploaded_at_utc
      - created_at_utc
      - dems_id
      - photo_id
      title: ListPhotoResponse
    GetReportResponse:
      properties:
        report:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Report
          description: Report
        report_info:
          $ref: '#/components/schemas/BasicReportInfoResponse'
          description: Additional report information
      type: object
      required:
      - report_info
      title: GetReportResponse
    CreateAnalyticsEventsExternalRequest:
      properties:
        events:
          items:
            oneOf:
            - $ref: '#/components/schemas/ReportViewEvent'
            - $ref: '#/components/schemas/CopyNarrativeEvent'
            discriminator:
              propertyName: event_type
              mapping:
                copy_narrative: '#/components/schemas/CopyNarrativeEvent'
                report_view: '#/components/schemas/ReportViewEvent'
          type: array
          title: Events
      type: object
      required:
      - events
      title: CreateAnalyticsEventsExternalRequest
    ListAudioResponse:
      properties:
        occurred_at_utc:
          type: string
          format: date-time
          title: Occurred At Utc
          description: File event occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        uploaded_at_utc:
          type: string
          format: date-time
          title: Uploaded At Utc
          description: File uploaded at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
          description: File created in Abel at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        dems_id:
          type: string
          title: Dems Id
          description: DEMS ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        locker_info:
          anyOf:
          - $ref: '#/components/schemas/LockerInfo'
          - type: 'null'
          description: Locker information
        audio_id:
          type: string
          title: Audio Id
          description: Audio UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        duration_seconds:
          anyOf:
          - type: number
          - type: 'null'
          title: Duration Seconds
          description: Audio length in seconds
          examples:
          - 120
      type: object
      required:
      - occurred_at_utc
      - uploaded_at_utc
      - created_at_utc
      - dems_id
      - audio_id
      title: ListAudioResponse
    NarrativeOrderingMode:
      type: string
      enum:
      - in_order_occurred
      - in_order_described
      title: NarrativeOrderingMode
    GetInfoResponse:
      properties:
        requester_id:
          type: string
          title: Requester Id
          description: The UUID of the requester
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        requester_type:
          type: string
          title: Requester Type
          description: The type of the requester
          examples:
          - user
        info:
          $ref: '#/components/schemas/Info'
          description: Detailed information about the requester
        user_info:
          $ref: '#/components/schemas/GetSingleUserResponse'
          description: Detailed information about the requester
        agency_info:
          $ref: '#/components/schemas/GetAgencyInfo'
          description: Detailed information about the requester
      type: object
      required:
      - requester_id
      - requester_type
      - info
      - user_info
      - agency_info
      title: GetInfoResponse
    MentionLocationNames:
      type: string
      enum:
      - BOTH
      - ONLY_ADDRESS
      title: MentionLocationNames
    GetSingleUserResponse:
      properties:
        user_id:
          type: string
          title: User Id
          description: User UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        agency_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Id
          description: Agency UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        agency_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Name
          description: Agency name
          examples:
          - Agency Name
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
          description: User e-mail
          examples:
          - user@abelpolice.com
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: User first name
          examples:
          - John
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: User last name
          examples:
          - McClane
        phone_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone Number
          description: User phone number
          examples:
          - '+1234567890'
        badge_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Badge Number
          description: User badge number
          examples:
          - '881'
        last_login_at_utc:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Login At Utc
          description: Last login date and time
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          anyOf:
          - type: string
          - type: 'null'
          title: Created At Utc
          description: User creation date and time
          examples:
          - '2021-01-01T00:00:00Z'
        updated_at_utc:
          anyOf:
          - type: string
          - type: 'null'
          title: Updated At Utc
          description: User last update date and time
          examples:
          - '2021-01-01T00:00:00Z'
        writer_seat_assigned:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Writer Seat Assigned
          description: Whether the user is assigned to a writer seat
          examples:
          - false
        writer_seat_assigned_at_utc:
          anyOf:
          - type: string
          - type: 'null'
          title: Writer Seat Assigned At Utc
          description: User writer seat assigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        writer_seat_unassigned_at_utc:
          anyOf:
          - type: string
          - type: 'null'
          title: Writer Seat Unassigned At Utc
          description: User writer seat unassigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        chat_seat_assigned:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Chat Seat Assigned
          description: Whether the user is assigned to a chat seat
          examples:
          - false
        chat_seat_assigned_at_utc:
          anyOf:
          - type: string
          - type: 'null'
          title: Chat Seat Assigned At Utc
          description: User chat seat assigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        chat_seat_unassigned_at_utc:
          anyOf:
          - type: string
          - type: 'null'
          title: Chat Seat Unassigned At Utc
          description: User chat seat unassigned date and time
          examples:
          - '2021-01-01T00:00:00Z'
        global_admin:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Global Admin
          description: Whether the user is a global admin
          examples:
          - false
        is_onboarded:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Onboarded
          description: Whether the user is onboarded
          examples:
          - false
        role_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Role Name
          description: User role name
          examples:
          - Admin
        user_settings:
          anyOf:
          - $ref: '#/components/schemas/GetUserSettings'
          - type: 'null'
          description: User settings
        user_cognito_attributes:
          anyOf:
          - $ref: '#/components/schemas/GetUserCognitoAttributes'
          - type: 'null'
          description: User Cognito attributes
      type: object
      required:
      - user_id
      title: GetSingleUserResponse
    ReportViewEvent:
      properties:
        event_type:
          type: string
          const: report_view
          title: Event Type
        user_id:
          type: string
          format: uuid
          title: User Id
        agency_id:
          type: string
          format: uuid
          title: Agency Id
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
        report_id:
          type: string
          format: uuid
          title: Report Id
      type: object
      required:
      - event_type
      - user_id
      - agency_id
      - created_at_utc
      - report_id
      title: ReportViewEvent
    GetPhotoResponse:
      properties:
        occurred_at_utc:
          type: string
          format: date-time
          title: Occurred At Utc
          description: File event occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        uploaded_at_utc:
          type: string
          format: date-time
          title: Uploaded At Utc
          description: File uploaded at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
          description: File created in Abel at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        presigned_url:
          type: string
          title: Presigned Url
          description: Presigned URL for the file (lasts 1 hour)
          examples:
          - https://bucket.s3-fips.us-gov-west-1.amazonaws.com/key
        dems_id:
          type: string
          title: Dems Id
          description: DEMS ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        locker_info:
          anyOf:
          - $ref: '#/components/schemas/LockerInfo'
          - type: 'null'
          description: Locker information
        photo_id:
          type: string
          title: Photo Id
          description: Photo UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
      type: object
      required:
      - occurred_at_utc
      - uploaded_at_utc
      - created_at_utc
      - presigned_url
      - dems_id
      - photo_id
      title: GetPhotoResponse
    CognitoUserStatus:
      type: string
      enum:
      - UNCONFIRMED
      - CONFIRMED
      - ARCHIVED
      - COMPROMISED
      - UNKNOWN
      - RESET_REQUIRED
      - FORCE_CHANGE_PASSWORD
      title: CognitoUserStatus
    AgencySettingsResponse:
      properties:
        day_of_week_format:
          anyOf:
          - $ref: '#/components/schemas/DayOfWeekFormat'
          - type: 'null'
          description: Agency day of week format
          examples:
          - '%A'
        date_format:
          anyOf:
          - $ref: '#/components/schemas/DateFormat'
          - type: 'null'
          description: Agency date format
          examples:
          - '%m/%d/%Y'
        time_format:
          anyOf:
          - $ref: '#/components/schemas/TimeFormat'
          - type: 'null'
          description: Agency time format
          examples:
          - '%H:%M'
        narrative_disclaimer:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Narrative Disclaimer
          description: Agency narrative disclaimer
          examples:
          - true
        narrative_affidavit:
          anyOf:
          - $ref: '#/components/schemas/NarrativeAffidavit'
          - type: 'null'
          description: Agency narrative affidavit
          examples:
          - AFFIDAVIT
        random_sentences:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Random Sentences
          description: Add random sentences to the narrative
          examples:
          - true
        num_narrative_edits:
          anyOf:
          - type: integer
          - type: 'null'
          title: Num Narrative Edits
          description: Number of narrative edits required to copy
          examples:
          - 3
        unrestricted_data_retention:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Unrestricted Data Retention
          description: Unrestricted data retention
          examples:
          - false
        one_hour_session:
          anyOf:
          - type: boolean
          - type: 'null'
          title: One Hour Session
          description: One hour session enabled
          examples:
          - false
        data_retention_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Data Retention Days
          description: Agency data retention days
          examples:
          - 7
        include_synopsis:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Include Synopsis
          description: Include synopsis in reports
          examples:
          - true
        narrative_include_race:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Narrative Include Race
          description: Include race in narrative
          examples:
          - true
        mention_person_names:
          anyOf:
          - $ref: '#/components/schemas/MentionPersonNames'
          - type: 'null'
          description: Mention person names
          examples:
          - ALWAYS
          - FIRST_OCCURRENCE
          - NEVER
        mention_location_names:
          anyOf:
          - $ref: '#/components/schemas/MentionLocationNames'
          - type: 'null'
          description: Mention location names
          examples:
          - BOTH
          - ONLY_ADDRESS
        created_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At Utc
          description: Settings creation date (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        updated_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At Utc
          description: Settings last update date (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        citizen_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Citizen Enabled
          description: Citizen reports enabled for the agency
          examples:
          - true
        citizen_website_timeout_seconds:
          anyOf:
          - type: integer
          - type: 'null'
          title: Citizen Website Timeout Seconds
          description: Citizen timeout in seconds
          examples:
          - 300
        citizen_kiosk_timeout_seconds:
          anyOf:
          - type: integer
          - type: 'null'
          title: Citizen Kiosk Timeout Seconds
          description: Citizen kiosk timeout in seconds
          examples:
          - 600
        self_hosted_dems:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Self Hosted Dems
          description: Self-hosted DEMS enabled for the agency
          examples:
          - true
        dems_system_name:
          anyOf:
          - $ref: '#/components/schemas/DemsSystem'
          - type: 'null'
          description: DEMS system name
          examples:
          - Axon Evidence.com
        cad_system_name:
          anyOf:
          - $ref: '#/components/schemas/CadSystem'
          - type: 'null'
          description: CAD system name
          examples:
          - Mark43 CAD
        rms_system_name:
          anyOf:
          - $ref: '#/components/schemas/RmsSystem'
          - type: 'null'
          description: RMS system name
          examples:
          - Mark43 RMS
        allow_narrative_templates:
          type: boolean
          title: Allow Narrative Templates
          description: Allow narrative templates
          default: false
          examples:
          - false
        custom_prompting_enabled:
          type: boolean
          title: Custom Prompting Enabled
          description: Enable custom prompting for the agency
          default: false
          examples:
          - false
        allow_user_prompts:
          type: boolean
          title: Allow User Prompts
          description: Allow users to create their own narrative prompts
          default: false
          examples:
          - false
        force_extend_agency_prompt:
          type: boolean
          title: Force Extend Agency Prompt
          description: Force user prompts to extend the agency prompt
          default: true
          examples:
          - true
        citizen_enabled_languages:
          anyOf:
          - items:
              $ref: '#/components/schemas/GcpTranslatePossibleLanguages'
            type: array
          - type: 'null'
          title: Citizen Enabled Languages
          description: Citizen enabled languages
          examples:
          - - en
            - es
            - vi
            - sr
        citizen_cover_sheet_source:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Citizen Cover Sheet Source
          description: Cover sheet source JSON
          examples:
          - content: []
            type: doc
        citizen_cover_sheet_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Citizen Cover Sheet Enabled
          description: Cover sheet enabled
          examples:
          - false
      type: object
      title: AgencySettingsResponse
    USStateShort:
      type: string
      enum:
      - AL
      - AK
      - AZ
      - AR
      - CA
      - CO
      - CT
      - DE
      - FL
      - GA
      - HI
      - ID
      - IL
      - IN
      - IA
      - KS
      - KY
      - LA
      - ME
      - MD
      - MA
      - MI
      - MN
      - MS
      - MO
      - MT
      - NE
      - NV
      - NH
      - NJ
      - NM
      - NY
      - NC
      - ND
      - OH
      - OK
      - OR
      - PA
      - RI
      - SC
      - SD
      - TN
      - TX
      - UT
      - VT
      - VA
      - WA
      - WV
      - WI
      - WY
      title: USStateShort
    AgencyContractResponse:
      properties:
        max_writer_seats:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Writer Seats
          description: Maximum number of writer seats
          examples:
          - 10
        writer_seats_used:
          anyOf:
          - type: integer
          - type: 'null'
          title: Writer Seats Used
          description: Number of writer seats currently in use
          examples:
          - 5
        max_chat_seats:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Chat Seats
          description: Maximum number of chat seats
          examples:
          - 20
        chat_seats_used:
          anyOf:
          - type: integer
          - type: 'null'
          title: Chat Seats Used
          description: Number of chat seats currently in use
          examples:
          - 12
      type: object
      title: AgencyContractResponse
    UserTitle:
      type: string
      enum:
      - Officer
      - Senior Officer
      - Corporal
      - Sergeant
      - Staff Sergeant
      - Lieutenant
      - Captain
      - Major
      - Commander
      - Deputy Chief
      - Assistant Chief
      - Chief
      - Chief of Police
      - Commissioner
      - Deputy Commissioner
      - Deputy
      - Chief Deputy
      - Undersheriff
      - Sheriff
      - Trooper
      - Senior Trooper
      - Master Trooper
      - Technical Trooper
      - Trooper First Class
      - Sergeant Trooper
      - Lieutenant Trooper
      - Captain Trooper
      - Major Trooper
      - Lieutenant Colonel
      - Colonel
      - Detective
      - Detective Corporal
      - Detective Sergeant
      - Detective Lieutenant
      - Investigator
      - Inspector
      - Records Manager
      title: UserTitle
    CopyNarrativeEvent:
      properties:
        event_type:
          type: string
          const: copy_narrative
          title: Event Type
        user_id:
          type: string
          format: uuid
          title: User Id
        agency_id:
          type: string
          format: uuid
          title: Agency Id
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
        report_id:
          type: string
          format: uuid
          title: Report Id
        word_count:
          anyOf:
          - type: integer
            exclusiveMinimum: 0.0
          - type: 'null'
          title: Word Count
      type: object
      required:
      - event_type
      - user_id
      - agency_id
      - created_at_utc
      - report_id
      title: CopyNarrativeEvent
    DemsSystem:
      type: string
      enum:
      - Axon Evidence.com
      - Motorola Command Central
      - Motorola Video Manager EL
      - Versaterm Visual Labs
      title: DemsSystem
    ListVideoResponse:
      properties:
        occurred_at_utc:
          type: string
          format: date-time
          title: Occurred At Utc
          description: File event occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        uploaded_at_utc:
          type: string
          format: date-time
          title: Uploaded At Utc
          description: File uploaded at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
          description: File created in Abel at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        dems_id:
          type: string
          title: Dems Id
          description: DEMS ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        locker_info:
          anyOf:
          - $ref: '#/components/schemas/LockerInfo'
          - type: 'null'
          description: Locker information
        video_id:
          type: string
          title: Video Id
          description: Video UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        duration_seconds:
          anyOf:
          - type: number
          - type: 'null'
          title: Duration Seconds
          description: Video length in seconds
          examples:
          - 120
      type: object
      required:
      - occurred_at_utc
      - uploaded_at_utc
      - created_at_utc
      - dems_id
      - video_id
      title: ListVideoResponse
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
      type: object
      required:
      - detail
      title: ErrorResponse
    CreateAnalyticsEventsExternalResponse:
      properties:
        created_count:
          type: integer
          title: Created Count
          examples:
          - 2
      type: object
      required:
      - created_count
      title: CreateAnalyticsEventsExternalResponse
    GetSingleAgencyResponse:
      properties:
        agency_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Name
          description: Agency name
          examples:
          - Abel Police Test Agency
        created_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At Utc
          description: Agency creation date in Abel system (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        updated_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At Utc
          description: Agency last update date in Abel system (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        agency_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Agency Enabled
          description: Agency enabled
          examples:
          - true
        agency_handle:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Handle
          description: Agency handle
          examples:
          - marin_central_ca
        agency_type:
          anyOf:
          - $ref: '#/components/schemas/AgencyType'
          - type: 'null'
          description: Agency type
          examples:
          - demo
          - live
        partner_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Partner Id
          description: Partner ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        public_phone_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Public Phone Number
          description: Agency public phone number
          examples:
          - '+14155552671'
        agency_address:
          anyOf:
          - $ref: '#/components/schemas/AgencyAddressResponse'
          - type: 'null'
          description: Agency headquarters address information
        agency_contract:
          anyOf:
          - $ref: '#/components/schemas/AgencyContractResponse'
          - type: 'null'
          description: Agency contract and seat information
        agency_settings:
          anyOf:
          - $ref: '#/components/schemas/AgencySettingsResponse'
          - type: 'null'
          description: Agency configuration settings
        originating_agency_identifier:
          anyOf:
          - type: string
          - type: 'null'
          title: Originating Agency Identifier
          description: Originating agency identifier
          examples:
          - ABEL-123
        agency_id:
          type: string
          title: Agency Id
      type: object
      required:
      - agency_id
      title: GetSingleAgencyResponse
    GetVideoResponse:
      properties:
        occurred_at_utc:
          type: string
          format: date-time
          title: Occurred At Utc
          description: File event occurred at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        uploaded_at_utc:
          type: string
          format: date-time
          title: Uploaded At Utc
          description: File uploaded at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        created_at_utc:
          type: string
          format: date-time
          title: Created At Utc
          description: File created in Abel at (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        presigned_url:
          type: string
          title: Presigned Url
          description: Presigned URL for the file (lasts 1 hour)
          examples:
          - https://bucket.s3-fips.us-gov-west-1.amazonaws.com/key
        dems_id:
          type: string
          title: Dems Id
          description: DEMS ID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        locker_info:
          anyOf:
          - $ref: '#/components/schemas/LockerInfo'
          - type: 'null'
          description: Locker information
        video_id:
          type: string
          title: Video Id
          description: Video UUID
          examples:
          - 123e4567-e89b-12d3-a456-426614174000
        duration_seconds:
          anyOf:
          - type: number
          - type: 'null'
          title: Duration Seconds
          description: Video length in seconds
          examples:
          - 120
      type: object
      required:
      - occurred_at_utc
      - uploaded_at_utc
      - created_at_utc
      - presigned_url
      - dems_id
      - video_id
      title: GetVideoResponse
    USTimeZone:
      type: string
      enum:
      - America/New_York
      - America/Detroit
      - America/Kentucky/Louisville
      - America/Kentucky/Monticello
      - America/Indiana/Indianapolis
      - America/Indiana/Vincennes
      - America/Indiana/Winamac
      - America/Indiana/Marengo
      - America/Indiana/Petersburg
      - America/Indiana/Vevay
      - America/Chicago
      - America/Indiana/Tell_City
      - America/Menominee
      - America/North_Dakota/Center
      - America/North_Dakota/New_Salem
      - America/North_Dakota/Beulah
      - America/Denver
      - America/Phoenix
      - America/Boise
      - America/Los_Angeles
      - America/Metlakatla
      - America/Juneau
      - America/Sitka
      - America/Yakutat
      - America/Anchorage
      - America/Nome
      - America/Adak
      - Pacific/Honolulu
      title: USTimeZone
    GetUserCognitoAttributes:
      properties:
        cognito_user_create_date:
          type: string
          format: date-time
          title: Cognito User Create Date
          description: The date and time when the user was created in Cognito
        cognito_user_last_modified_date:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Cognito User Last Modified Date
          description: The date and time when the user was last modified in Cognito
        enabled:
          type: boolean
          title: Enabled
          description: Whether the user is enabled in Cognito
          default: true
          examples:
          - true
        user_status:
          $ref: '#/components/schemas/CognitoUserStatus'
          description: The status of the user in Cognito
          default: FORCE_CHANGE_PASSWORD
          examples:
          - FORCE_CHANGE_PASSWORD
          - CONFIRMED
        email_verified:
          type: boolean
          title: Email Verified
          description: Whether the user's email is verified in Cognito
          default: false
          examples:
          - true
        phone_number_verified:
          type: boolean
          title: Phone Number Verified
          description: Whether the user's phone number is verified in Cognito
          default: false
          examples:
          - true
      type: object
      required:
      - cognito_user_create_date
      title: GetUserCognitoAttributes
    ReportType:
      type: string
      enum:
      - BURGLARY
      - VEHICLE BURGLARY
      - SHOPLIFTING
      - TRESPASSING
      - VANDALISM
      - THEFT
      - STOLEN VEHICLE
      - RECOVERED VEHICLE
      - FRAUD
      - STOLEN PROPERTY
      - ARSON
      - LOST PROPERTY
      - FOUND PROPERTY
      - ASSAULT/BATTERY
      - DOMESTIC VIOLENCE
      - ROBBERY
      - SEXUAL ASSAULT
      - CHILD ABUSE
      - ELDER ABUSE
      - KIDNAPPING
      - HOMICIDE
      - DEATH INVESTIGATION
      - MENTAL HEALTH HOLD
      - WELFARE CHECK
      - MISSING PERSON
      - WARRANT ARREST
      - DUI
      - TRAFFIC COLLISION
      - TRAFFIC CITATION
      - HATE CRIME
      - SUPPLEMENTAL REPORT
      - CONTACT ATTEMPT
      - EVIDENCE LOG
      - WEAPONS VIOLATION
      - DRUGS VIOLATION
      - PAROLE VIOLATION
      - PROBATION VIOLATION
      - RESTRAINING ORDER VIOLATION
      - PUBLIC INTOXICATION
      - WITNESS INTERVIEW
      - VICTIM INTERVIEW
      - SUSPECT INTERROGATION
      - GENERAL
      title: ReportType
    GetTokenResponse:
      properties:
        partner_id:
          type: string
          title: Partner Id
        token:
          type: string
          title: Token
      type: object
      required:
      - partner_id
      - token
      title: GetTokenResponse
    DayOfWeekFormat:
      type: string
      enum:
      - ''
      - '%a'
      - '%A'
      title: DayOfWeekFormat
    AgencyAddressResponse:
      properties:
        address_1:
          anyOf:
          - type: string
          - type: 'null'
          title: Address 1
          description: Agency HQ address line 1
          examples:
          - 188 King Street
        address_2:
          anyOf:
          - type: string
          - type: 'null'
          title: Address 2
          description: Agency HQ address line 2
          examples:
          - Apt 2
        city:
          anyOf:
          - type: string
          - type: 'null'
          title: City
          description: Agency HQ city
          examples:
          - San Francisco
        county:
          anyOf:
          - type: string
          - type: 'null'
          title: County
          description: Agency HQ county
          examples:
          - San Francisco County
        zip:
          anyOf:
          - type: string
          - type: 'null'
          title: Zip
          description: Agency HQ zip code
          examples:
          - '94158'
        state:
          anyOf:
          - $ref: '#/components/schemas/USStateShort'
          - type: 'null'
          description: Agency HQ state
          examples:
          - CA
        country:
          anyOf:
          - type: string
          - type: 'null'
          title: Country
          description: Agency HQ country
          examples:
          - US
        latitude:
          anyOf:
          - type: number
          - type: 'null'
          title: Latitude
          description: Agency HQ latitude
          examples:
          - 37.774929
        longitude:
          anyOf:
          - type: number
          - type: 'null'
          title: Longitude
          description: Agency HQ longitude
          examples:
          - -122.419418
        timezone:
          anyOf:
          - $ref: '#/components/schemas/USTimeZone'
          - type: 'null'
          description: Agency HQ timezone
          examples:
          - America/Los_Angeles
      type: object
      title: AgencyAddressResponse
    GetUserResponse:
      properties:
        user:
          $ref: '#/components/schemas/GetSingleUserResponse'
      type: object
      required:
      - user
      title: GetUserResponse
    RmsSystem:
      type: string
      enum:
      - Mark43 RMS
      - Versaterm RMS
      - Caliber Online RMS
      - RIMS RMS
      title: RmsSystem
    AgencyType:
      type: string
      enum:
      - demo
      - test
      - live
      title: AgencyType
    ListSingleAgencyResponse:
      properties:
        agency_id:
          type: string
          title: Agency Id
        agency_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Name
          description: Agency name
          examples:
          - Abel Police Test Agency
        agency_handle:
          anyOf:
          - type: string
          - type: 'null'
          title: Agency Handle
          description: Agency handle
          examples:
          - abel-police-test-agency
        created_at_utc:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At Utc
          description: Agency creation date in Abel system (UTC)
          examples:
          - '2021-01-01T00:00:00Z'
        agency_type:
          anyOf:
          - $ref: '#/components/schemas/AgencyType'
          - type: 'null'
          description: Agency type
          examples:
          - demo
          - live
      type: object
      required:
      - agency_id
      title: ListSingleAgencyResponse
    ReportCategory:
      type: string
      enum:
      - PROPERTY
      - PERSON
      - TRAFFIC
      - VIOLATION
      - INTERVIEW
      - GENERAL
      - OTHER
      title: ReportCategory
    ListReportsResponse:
      properties:
        reports:
          items:
            $ref: '#/components/schemas/SingleReportResponse'
          type: array
          title: Reports
        metadata:
          $ref: '#/components/schemas/APIMetadataResponse'
      type: object
      required:
      - reports
      - metadata
      title: ListReportsResponse
