Laurel Timers API

The Timers API from Laurel — 11 operation(s) for timers.

OpenAPI Specification

laurel-timers-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Identity Service Ably Timers API
  description: ''
  version: '1'
  contact: {}
servers: []
security:
- ApiBearerAuth: []
tags:
- name: Timers
paths:
  /api/v1/timers:
    get:
      deprecated: true
      operationId: TimerController_findMany_v1
      parameters:
      - name: date
        required: true
        in: query
        description: the date for which timers will be returned
        schema:
          format: iso-date
          example: '2022-08-12'
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
    post:
      deprecated: true
      operationId: TimerController_createOne_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTimerDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
  /api/v1/timers/{timerId}:
    get:
      deprecated: true
      operationId: TimerController_findOne_v1
      parameters:
      - name: timerId
        required: true
        in: path
        description: identifier of the timer
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
    patch:
      deprecated: true
      operationId: TimerController_updateOne_v1
      parameters:
      - name: timerId
        required: true
        in: path
        description: identifier of the timer
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTimerDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
    delete:
      deprecated: true
      operationId: TimerController_deleteTimerById_v1
      parameters:
      - name: timerId
        required: true
        in: path
        description: identifier of the timer
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: Deletes a user Timer by Id and returns the deleted Timer
      tags:
      - Timers
  /api/v2/timers:
    post:
      operationId: V2TimerController_startTimer_v2
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2StartTimerDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2TimerResponseDto'
      tags:
      - Timers
    get:
      operationId: V2TimerController_getTimers_v2
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V2TimerResponseDto'
      tags:
      - Timers
  /api/v2/timers/{timerId}:
    patch:
      operationId: V2TimerController_updateOne_v2
      parameters:
      - name: timerId
        required: true
        in: path
        description: the identifier of v2 timer
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2TimerResponseDto'
      tags:
      - Timers
  /api/v2/timers/{timerId}/stop:
    post:
      operationId: V2TimerController_stopTimer_v2
      parameters:
      - name: timerId
        required: true
        in: path
        description: the identifier of v2 timer
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StopTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimerActivity'
      tags:
      - Timers
  /api/v3/timers:
    post:
      operationId: V3TimerController_initializeTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/V3InitializeAnonymousTimerRequestDto'
              - $ref: '#/components/schemas/V3InitializeEntryTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V3TimerDraftResponseDto'
      tags:
      - Timers
    get:
      operationId: V3TimerController_getTimers_v3
      parameters:
      - name: date
        required: true
        in: query
        schema:
          format: iso-date
          example: '2022-08-12'
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  oneOf:
                  - $ref: '#/components/schemas/V3TimerDraftResponseDto'
                  - $ref: '#/components/schemas/V3RunningTimerResponseDto'
                type: array
      tags:
      - Timers
  /api/v3/timers/start:
    post:
      operationId: V3TimerController_startTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/V3StartTimerWithDateRequestDto'
              - $ref: '#/components/schemas/V3StartTimerWithTimerDraftIdRequestDto'
              - $ref: '#/components/schemas/V3StartTimerWithEntryIdRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/V3StartTimerSuccessResponseDto'
                - $ref: '#/components/schemas/V3StartTimerNotFoundResponseDto'
      tags:
      - Timers
  /api/v3/timers/stop:
    post:
      operationId: V3TimerController_stopTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V3StopTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/V3StopTimerSuccessResponseDto'
                - $ref: '#/components/schemas/V3StopTimerNotFoundResponseDto'
      tags:
      - Timers
  /api/v3/timers/adjust:
    patch:
      operationId: V3TimerController_adjustTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/V3AdjustTimerDraftRequestDto'
              - $ref: '#/components/schemas/V3AdjustRunningTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/V3TimerDraftResponseDto'
                - $ref: '#/components/schemas/V3RunningTimerResponseDto'
      tags:
      - Timers
  /api/v3/timers/running:
    get:
      operationId: V3TimerController_getRunningTimers_v3
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V3RunningTimerResponseDto'
      tags:
      - Timers
  /api/v3/timers/{timerId}:
    delete:
      operationId: V3TimerController_deleteTimer_v3
      parameters:
      - name: timerId
        required: true
        in: path
        description: the identifier of v3 timer
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Timers
components:
  schemas:
    ReleaseSuccessLockedInfo:
      type: object
      properties:
        status:
          enum:
          - release-success-locked
          type: string
        releasedAt:
          type: string
          description: date and time entry was originally released to PMS
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        releasedBy:
          type: string
          description: the identifier of the user who released the entry
          format: objectid
        lockedAt:
          type: string
          description: date the entry became locked in the PMS billing system
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
          nullable: true
        lastLockCheckAt:
          type: string
          description: date lock status was last checked by the Boomi job
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        reReleaseFailedMessages:
          type: array
          description: entry's re-release failed messages (retained from previous release-success state)
          minItems: 1
          items:
            $ref: '#/components/schemas/ReleaseFailedError'
          nullable: true
      required:
      - status
      - releasedAt
      - releasedBy
      - lastLockCheckAt
    ReleaseSuccessInfo:
      type: object
      properties:
        status:
          enum:
          - release-success
          type: string
        releasedAt:
          type: string
          description: date and time entry was released
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        releasedBy:
          type: string
          description: the identifier of the user who released the entry
          format: objectid
        reReleaseFailedMessages:
          type: array
          description: entry's re-release failed messages
          minItems: 1
          items:
            $ref: '#/components/schemas/ReleaseFailedError'
          nullable: true
      required:
      - status
      - releasedAt
      - releasedBy
    UserInitiativeDto:
      type: object
      properties:
        _id:
          type: string
          description: initiative's id
          format: objectid
        billingType:
          description: initiative's billing type
          enum:
          - billable
          - non-billable
          type: string
        callSign:
          type: string
          description: a short name or abbreviation that identifies this initiative
        createdAt:
          type: string
          description: date and time this initiative was created
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        locale:
          type: string
          description: BCP-47 locale for this initiative (e.g. en-US, fr-CA)
          enum:
          - da-DK
          - de-DE
          - en-CA
          - en-GB
          - en-US
          - es-ES
          - es-MX
          - fi-FI
          - fr-CA
          - fr-FR
          - is-IS
          - it-IT
          - ko-KR
          - nl-NL
          - no-NO
          - pt-PT
          - sv-SE
          nullable: true
        status:
          description: initiative's status
          enum:
          - active
          - inactive
          type: string
        unitIncrements:
          type: number
          description: unit of billing increments for this initiative
          format: double
        updatedAt:
          type: string
          description: date and time this initiative was last updated
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        name:
          type: string
          description: a name that identifies this initiative for the user
        type:
          type: string
          enum:
          - user
        props:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/UserInitiativePropsDto'
      required:
      - _id
      - billingType
      - callSign
      - createdAt
      - status
      - unitIncrements
      - updatedAt
      - name
      - type
    CodeTypeDigest:
      type: object
      properties:
        _id:
          type: string
          description: code type's id
          format: objectid
        externalId:
          type: string
          description: code type's external id
        name:
          type: string
          description: code type's name
        semanticType:
          type: string
          description: code type's semantic type
          enum:
          - action
          - activity
          - location
          - phase
          - task
          nullable: true
        orderingSequence:
          type: string
          description: ordering sequence for UI sorting (alphanumeric)
          nullable: true
      required:
      - _id
      - externalId
      - name
    ExternalSource:
      type: object
      properties:
        sourceSystem:
          enum:
          - 3e
          - workday
          type: string
        externalId:
          type: string
        linkedAt:
          type: string
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
      required:
      - sourceSystem
      - externalId
      - linkedAt
    V3StopTimerNotFoundResponseDto:
      type: object
      properties:
        result:
          type: string
          enum:
          - not found
        stopped:
          type: object
          additionalProperties: true
          nullable: true
        othersStopped:
          type: array
          items:
            $ref: '#/components/schemas/V3StoppedTimerInfo'
      required:
      - result
      - stopped
      - othersStopped
    TimerActivity:
      type: object
      properties:
        _id:
          type: string
          description: activity's id
          format: objectid
        customerId:
          type: string
          description: id of customer who owns this activity
          format: objectid
        userId:
          type: string
          description: id of user who owns this activity
          format: objectid
        creationMethod:
          description: the creation method of the activity
          enum:
          - timer
          type: string
        initiativeProps:
          description: if set, is activity's initiative, otherwise activity is unassigned
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/PmsInitiativePropsDigest'
          - $ref: '#/components/schemas/UserInitiativePropsDigest'
        isLocked:
          type: boolean
          description: if true, this activity is locked and cannot be updated
        category:
          type: string
          description: category of this activity, if any
          nullable: true
        technology:
          type: string
          description: technology of this activity, if any
          nullable: true
        source:
          type: string
          description: source of this activity (e.g. 'macos', 'windows'), if any
          nullable: true
        mechanism:
          type: string
          description: mechanism of this activity (e.g. browser used to access web app), if any
          nullable: true
        title:
          type: string
          description: activity's title
        detail:
          type: string
          description: activity's detail
        startedAt:
          type: string
          description: date and time this activity started
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        stoppedAt:
          type: string
          description: date and time this activity stopped
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        externalId:
          type: string
          description: activity's external id
          nullable: true
        assignedBy:
          description: how the activity's initiative was assigned
          enum:
          - none
          - user
          - ml
          type: string
        createdAt:
          type: string
          description: date and time activity was created
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        updatedAt:
          type: string
          description: date and time activity was last updated
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        schemaVersion:
          type: string
          description: activities's schemaVersion
        threadId:
          type: string
          description: activity's thread id
          nullable: true
        enhancedByAi:
          type: boolean
          description: indicates if this activity was enhanced by AI
          nullable: true
        isCopiedByAdmin:
          type: boolean
          description: indicates if this activity was copied by admin
          nullable: true
        isSeeded:
          type: boolean
          description: indicates if this activity was created via seeding
          nullable: true
        deletedForRetentionAt:
          type: string
          description: date and time activity data was deleted for retention
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
          nullable: true
        isDeleted:
          type: boolean
          description: 'If true, this activity has been soft-deleted (e.g. it was the source of a

            split). Soft-deleted activities are excluded from the unassigned tray but

            remain restorable, which is what keeps a split reversible (undo/merge).'
          nullable: true
        disableThreading:
          type: boolean
          description: if true, disables threading for this activity
          nullable: true
        sessionIds:
          description: The session ids that were used to create this Activity
          nullable: true
          type: array
          items:
            type: string
            format: objectid
        splitFromActivityId:
          type: string
          description: 'If set, the id of the activity this one was split from. Child activities

            created by a split carry their source''s id here; it is the sibling key and

            the seam for a future undo/merge.'
          format: objectid
          nullable: true
      required:
      - _id
      - customerId
      - userId
      - creationMethod
      - isLocked
      - title
      - detail
      - startedAt
      - stoppedAt
      - assignedBy
      - createdAt
      - updatedAt
      - schemaVersion
    UpdateTimerDto:
      type: object
      properties:
        codeIds:
          description: if set, will update the codes assigned to this timer
          type: array
          items:
            type: string
            format: objectid
        durationInSeconds:
          type: number
          description: if set, will update the duration in seconds that this timer has been active
          format: double
        initiativeId:
          type: string
          description: if set, will update the initiative assigned to this timer. passing null will unassign this timer
          format: objectid
        summary:
          type: string
          description: if set, will updated the summary for this timer, can be empty
    NestedTimerSource:
      type: object
      properties:
        _id:
          type: string
          description: source's id
          format: objectid
        type:
          description: type of entry source
          enum:
          - timer
          type: string
          default: timer
        durationInSeconds:
          type: number
          description: the duration in seconds that this timer has been active
          format: double
        summary:
          type: string
          description: the summary assigned to this timer, can be empty
      required:
      - _id
      - type
      - durationInSeconds
      - summary
    StopTimerRequestDto:
      type: object
      properties:
        stoppedAt:
          type: string
          description: the date and time at which the timer is being stopped
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
          nullable: true
    UserInitiativePropsDigest:
      type: object
      properties:
        type:
          description: type of the initiative for these props
          enum:
          - user
          type: string
        colorHex:
          type: string
          description: the hex color code for this initiative's display to the user
          example: fec828
          format: color-hex
        tags:
          type: array
          description: initiative prop's tags
          items:
            type: string
            enum:
            - pinned
        initiative:
          description: the user initiative that is represented by these initiative props
          allOf:
          - $ref: '#/components/schemas/UserInitiativeDigest'
      required:
      - type
      - colorHex
      - tags
      - initiative
    V3AdjustRunningTimerRequestDto:
      type: object
      properties:
        timerId:
          type: string
          description: The ID of the running timer to adjust
          format: objectid
        now:
          type: string
          description: The "now" time from the client (as UTC), we use the client's now to prevent clock drift issues
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        summary:
          type: string
          description: Optionally provide a summary, set to null to void existing summary
          nullable: true
        manualAdjustmentMs:
          type: number
          description: Optionally include a manual adjustment (Will clip to value that makes now - startedAt at 0 if more negative)
          format: double
          nullable: true
      required:
      - timerId
      - now
    ReleaseValidationPendingInfo:
      type: object
      properties:
        status:
          enum:
          - release-validation-pending
          type: string
        releasePendedAt:
          type: string
          description: date and time entry was changed to release pending
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        releasePendedBy:
          type: string
          description: the identifier of the user who change the entry to release pending
          format: objectid
      required:
      - status
      - releasePendedAt
      - releasePendedBy
    NestedActivitySource:
      type: object
      properties:
        _id:
          type: string
          description: source's id
          format: objectid
        type:
          description: type of entry source
          enum:
          - activity
          type: string
          default: activity
        creationMethod:
          description: the creation method of the activity
          enum:
          - timer
          - tracked
          - user
          type: string
        category:
          type: string
          description: category of this activity, if any
          nullable: true
        technology:
          type: string
          description: technology of this activity, if any
          nullable: true
        source:
          type: string
          description: source of this activity (e.g. 'macos', 'windows'), if any
          nullable: true
        mechanism:
          type: string
          description: mechanism of this activity (e.g. browser used to access web app), if any
          nullable: true
        title:
          type: string
          description: activity's title
        detail:
          type: string
          description: activity's detail
        startedAt:
          type: string
          description: date and time this activity started
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        stoppedAt:
          type: string
          description: date and time this activity stopped
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        clusterId:
          type: string
          description: activity's clusterId
          nullable: true
        fromSuggestions:
          type: boolean
          description: whether this activity source was added from suggestions
          nullable: true
        fromThemes:
          type: boolean
          description: whether this activity source was added from themes
          nullable: true
        hasOverlap:
          type: boolean
          description: activity's overlap state
          nullable: true
        overlapTimeInSeconds:
          type: number
          description: activity's overlap time in seconds
          format: int64
          nullable: true
        threadId:
          type: string
          description: activity's thread id
          nullable: true
        disableThreading:
          type: boolean
          description: if true, disables threading for this activity
          nullable: true
        assignedAt:
          type: string
          description: 'Datetime this activity was assigned to the entry it currently belongs to.

            Unset on entries that predate the field; never back-filled.'
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
          nullable: true
      required:
      - _id
      - type
      - creationMethod
      - title
      - detail
      - startedAt
      - stoppedAt
    V3StartTimerNotFoundResponseDto:
      type: object
      properties:
        result:
          type: string
          enum:
          - not found
        started:
          type: object
          additionalProperties: true
          nullable: true
        stopped:
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/V3StoppedTimerInfo'
      required:
      - result
      - started
      - stopped
    V2StartTimerDto:
      type: object
      properties:
        date:
          type: string
          description: the date on which the timer is being started
          example: '2022-08-12'
          format: iso-date
        timerDraftId:
          type: string
          description: the identifier of the timer draft for which a timer is being started. cannot be set if entryId or initiativeId is already set
          format: objectid
          nullable: true
        initiativeId:
          type: string
          description: the identifier of the initiative for which a timer is being started. cannot be set if entryId or timerDraftId is already set
          format: objectid
          nullable: true
        entryId:
          type: string
          description: the identifier of the entry for which a timer is being started. cannot be set if initiativeId or timerDraftId is already set
          format: objectid
          nullable: true
        timezone:
          type: string
          description: the timezone in which the timer is being started
          enum:
          - Africa/Abidjan
          - Africa/Accra
          - America/Adak
          - Africa/Addis_Ababa
          - Australia/Adelaide
          - Asia/Aden
          - Africa/Algiers
          - Asia/Almaty
          - Asia/Amman
          - Europe/Amsterdam
          - America/Anchorage
          - Europe/Andorra
          - America/Anguilla
          - Indian/Antananarivo
          - America/Antigua
          - Pacific/Apia
          - America/Aruba
          - Asia/Ashgabat
          - Africa/Asmara
          - America/Asuncion
          - Europe/Athens
          - America/Atikokan
          - Pacific/Auckland
          - Atlantic/Azores
          - Asia/Baghdad
          - Asia/Bahrain
          - Asia/Baku
          - Africa/Bamako
          - Asia/Bangkok
          - Africa/Bangui
          - Africa/Banjul
          - America/Barbados
          - Asia/Beirut
          - Europe/Belgrade
          - America/Belize
          - Europe/Berlin
          - Atlantic/Bermuda
          - Asia/Bishkek
          - Africa/Bissau
          - America/Blanc-Sablon
          - Africa/Blantyre
          - America/Bogota
          - Pacific/Bougainville
          - Europe/Bratislava
          - Africa/Brazzaville
          - Australia/Brisbane
          - Asia/Brunei
          - Europe/Brussels
          - Europe/Bucharest
          - Europe/Budapest
          - America/Argentina/Buenos_Aires
          - Africa/Bujumbura
          - Africa/Cairo
          - Atlantic/Canary
          - America/Cancun
          - Atlantic/Cape_Verde
          - America/Caracas
          - Africa/Casablanca
          - Antarctica/Casey
          - America/Cayenne
          - America/Cayman
          - Indian/Chagos
          - Pacific/Chatham
          - America/Chicago
          - Europe/Chisinau
          - Asia/Chita
          - Indian/Christmas
          - Pacific/Chuuk
          - Indian/Cocos
          - Asia/Colombo
          - Indian/Comoro
          - Africa/Conakry
          - Europe/Copenhagen
          - America/Costa_Rica
          - America/Curacao
          - Africa/Dakar
          - Asia/Damascus
          - America/Danmarkshavn
          - Africa/Dar_es_Salaam
          - Australia/Darwin
          - Antarctica/Davis
          - America/Denver
          - Asia/Dhaka
          - Asia/Dili
          - Africa/Djibouti
          - America/Dominica
          - Africa/Douala
          - Asia/Dubai
          - Europe/Dublin
          - Antarctica/DumontDUrville
          - Asia/Dushanbe
          - Pacific/Easter
          - America/Edmonton
          - Pacific/Efate
          - Africa/El_Aaiun
          - America/El_Salvador
          - Australia/Eucla
          - Pacific/Fakaofo
          - Atlantic/Faroe
          - Pacific/Fiji
          - Africa/Freetown
          - Pacific/Funafuti
          - Africa/Gaborone
          - Pacific/Galapagos
          - Pacific/Gambier
          - Europe/Gibraltar
          - America/Grand_Turk
          - America/Grenada
          - Pacific/Guadalcanal
          - America/Guadeloupe
          - Pacific/Guam
          - America/Guatemala
          - America/Guayaquil
          - Europe/Guernsey
          - America/Guyana
          - America/Halifax
          - Africa/Harare
          - America/Havana
          - Asia/Hebron
          - Europe/Helsinki
          - America/Hermosillo
          - Asia/Ho_Chi_Minh
          - Asia/Hong_Kong
          - Pacific/Honolulu
          - Asia/Hovd
          - Asia/Irkutsk
          - Europe/Isle_of_Man
          - Europe/Istanbul
          - Asia/Jakarta
          - America/Jamaica
          - Asia/Jayapura
          - Europe/Jersey
          - Asia/Jerusalem
          - Africa/Johannesburg
          - Africa/Juba
          - Asia/Kabul
          - Europe/Kaliningrad
          - Asia/Kamchatka
          - Africa/Kampala
          - Pacific/Kanton
          - Asia/Karachi
          - Asia/Kathmandu
          - Indian/Kerguelen
          - Africa/Khartoum
          - Africa/Kigali
          - Africa/Kinshasa
          - Pacific/Kiritimati
          - Asia/Kolkata
          - Pacific/Kosrae
          - America/Kralendijk
          - Asia/Kuala_Lumpur
          - Asia/Kuwait
          - Europe/Kyiv
          - America/La_Paz
          - Africa/Lagos
          - Africa/Libreville
          - America/Lima
          - Europe/Lisbon
          - Europe/Ljubljana
          - Africa/Lome
          - Europe/London
          - Arctic/Longyearbyen
          - Australia/Lord_Howe
  

# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/openapi/laurel-timers-api-openapi.yml