openapi: 3.0.0
info:
  title: 'Rock Gym Pro API'
  version: '0.1'
paths:
  '/v1/bookings/facility/{facilityCode}':
    get:
      tags:
        - Bookings
      summary: 'Get bookings for a specific facility'
      operationId: 4654f2844ef99fa834a040b35ca5cdb3
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: startId
          in: query
          description: 'Result set start ID'
          required: false
          style: form
          schema:
            type: integer
            default: 0
            minimum: 0
        -
          name: customerGuid
          in: query
          description: 'Customer GUID'
          required: false
          style: form
          schema:
            type: string
            pattern: '^[0-9a-z\-]{32,36}$'
        -
          name: startDateTime
          in: query
          description: 'Start date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 00:00:00'
        -
          name: endDateTime
          in: query
          description: 'End date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 23:59:59'
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/bookings/facility/{facilityCode}/{bookingId}':
    get:
      tags:
        - Bookings
      summary: 'Get booking details by ID'
      operationId: 0c8e8234fdd1b7cda6333329c1bb96f7
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: bookingId
          in: path
          description: 'Booking ID'
          required: true
          style: form
          schema:
            type: string
            pattern: '^\d{1,}$'
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
      security:
        -
          https: []
  '/v1/checkins/facility/{facilityCode}':
    get:
      tags:
        - Checkins
      summary: 'Get checkins for a specific facility'
      operationId: 0cd31fd97d0f629bf0bc7c38c1f879d8
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: startId
          in: query
          description: 'Result set start ID'
          required: false
          style: form
          schema:
            type: integer
            default: 0
            minimum: 0
        -
          name: customerGuid
          in: query
          description: 'Customer GUID'
          required: false
          style: form
          schema:
            type: string
            pattern: '^[0-9a-z\-]{32,36}$'
        -
          name: customerDetails
          in: query
          description: 'Return customer details'
          required: false
          style: form
          schema:
            type: boolean
        -
          name: remoteOnly
          in: query
          description: 'Return only remote checkins'
          required: false
          style: form
          schema:
            type: boolean
        -
          name: startDateTime
          in: query
          description: 'Start date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 00:00:00'
        -
          name: endDateTime
          in: query
          description: 'End date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 23:59:59'
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/checkins/facility/{facilityCode}/{checkinId}':
    get:
      tags:
        - Checkins
      summary: 'Get checkin details by ID'
      operationId: 9b82dfdd34becd82fdb2026c23d55acd
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: checkinId
          in: path
          description: 'Checkin ID'
          required: true
          style: form
          schema:
            type: string
            pattern: '^\d{1,}$'
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
      security:
        -
          https: []
  '/v1/checkins/active/facility/{facilityCode}':
    get:
      tags:
        - Checkins
      summary: 'Get the count of active checkins for a specific facility. Active checkins are defined as customers who have checked in but not checked out in the current day.'
      operationId: 1545b5cae92c6931064c8e98089fb5fb
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
      security:
        -
          https: []
  '/v1/customers/{customerGuid}':
    get:
      tags:
        - Customers
      summary: 'Get a single customers details by GUID'
      operationId: 3d27e47fbf631103c480951153130977
      parameters:
        -
          name: customerGuid
          in: path
          description: 'Customer GUID'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[\-a-z0-9]{32,36}$'
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
      security:
        -
          https: []
  /v1/customers:
    get:
      tags:
        - Customers
      summary: 'Get one or more customers by GUID'
      operationId: b26c4b866845047e6e45202286a2fa42
      parameters:
        -
          name: customerGuid
          in: query
          description: 'Customer GUID(s)'
          required: true
          style: simple
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/customers/facility/{facilityCode}':
    get:
      tags:
        - Customers
      summary: 'Get filtered customer data'
      operationId: 05a2e418f7144f0e209fe32872af856d
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: type
          in: query
          description: 'Return customers with a specified type'
          required: false
          style: form
          schema:
            type: string
            enum:
              - GUEST
              - 'PUNCH CARD'
              - MEMBER
              - CORPORATE
        -
          name: status
          in: query
          description: 'Return customers with a specified status'
          required: false
          style: form
          schema:
            type: string
            enum:
              - TERMINATED
              - FROZEN
              - EXPIRED
              - OK
        -
          name: waiverSigned
          in: query
          description: 'Return customers with a specified waiver signing status'
          required: false
          style: form
          schema:
            type: boolean
        -
          name: birthdayMonth
          in: query
          description: 'Return customers with a specified birth date month'
          required: false
          style: form
          schema:
            type: integer
            maximum: 12
            minimum: 1
        -
          name: birthdayUpcoming
          in: query
          description: 'Return customers with a birth date within a specified number of days'
          required: false
          style: form
          schema:
            type: integer
            maximum: 365
            minimum: 1
        -
          name: firstContactDateEnding
          in: query
          description: 'Return customers with a first contact date before or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: firstContactDateStarting
          in: query
          description: 'Return customers with a first contact date after or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: lastVisitDateEnding
          in: query
          description: 'Return customers with a last visit date date before or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: lastVisitDateStarting
          in: query
          description: 'Return customers with a last visit date after or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: lastEditDateEnding
          in: query
          description: 'Return customers with a last edit date date before or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: lastEditDateStarting
          in: query
          description: 'Return customers with a last edit date after or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: firstName
          in: query
          description: 'Return customers with a specified first name (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: middleName
          in: query
          description: 'Return customers with a specified middle name (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: lastName
          in: query
          description: 'Return customers with a specified last name (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: city
          in: query
          description: 'Return customers with a specified address city (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: state
          in: query
          description: 'Return customers with a specified address state (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: postalCode
          in: query
          description: 'Return customers with a specified address postal code (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: country
          in: query
          description: 'Return customers with a specified address country (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: ageGreaterThan
          in: query
          description: 'Return customers with an age in years greater than or equal to a specified number'
          required: false
          style: form
          schema:
            type: integer
            minimum: 1
        -
          name: ageLessThan
          in: query
          description: 'Return customers with an age in years less than or equal to a specified number'
          required: false
          style: form
          schema:
            type: integer
            minimum: 1
        -
          name: onlineAccountLinked
          in: query
          description: 'Return customers with a specified online account link status'
          required: false
          style: form
          schema:
            type: boolean
        -
          name: emailAddressPopulated
          in: query
          description: 'Return customers with a specified email address entered status'
          required: false
          style: form
          schema:
            type: boolean
        -
          name: emailAllowMarketing
          in: query
          description: 'Return customers with a specified email marketing status'
          required: false
          style: form
          schema:
            type: boolean
        -
          name: emailTouchDateEnding
          in: query
          description: 'Return customers with an email address created or updated before or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: emailTouchDateStarting
          in: query
          description: 'Return customers with an email address created or updated after or equal to the date specified (yyyy-mm-dd)'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
        -
          name: emailAddress
          in: query
          description: 'Return customers with a specified email address (% wildcard is allowed)'
          required: false
          style: form
          schema:
            type: string
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/dailynumbers/facility/{facilityCode}':
    get:
      tags:
        - 'Daily Numbers'
      summary: 'Get daily numbers for a specific facility'
      operationId: ec2432936e5623629eb408f2ffbee3f7
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: startDate
          in: query
          description: 'Start date'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
            example: '2019-01-01'
        -
          name: endDate
          in: query
          description: 'End date'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2}$'
            example: '2019-01-01'
        -
          name: tag
          in: query
          description: 'Tag Name'
          required: false
          style: form
          schema:
            type: string
            example: Members_All
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  /v1/facilities:
    get:
      tags:
        - Facilities
      summary: 'Get all available facilities'
      operationId: 14b4e6a6230d3a40df9f375e3cb5eefd
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
      security:
        -
          https: []
  '/v1/invoices/facility/{facilityCode}':
    get:
      tags:
        - Invoices
      summary: 'Get invoices for a specific facility'
      operationId: d6c08b0d5f0ed910bce351f6b79cb27d
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: startId
          in: query
          description: 'Result set start ID'
          required: false
          style: form
          schema:
            type: integer
            default: 0
            minimum: 0
        -
          name: customerGuid
          in: query
          description: 'Customer GUID'
          required: false
          style: form
          schema:
            type: string
            pattern: '^[0-9a-z\-]{32,36}$'
        -
          name: startDateTime
          in: query
          description: 'Start date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 00:00:00'
        -
          name: endDateTime
          in: query
          description: 'End date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 23:59:59'
        -
          name: includeVoidInvoices
          in: query
          description: 'Include void invoices'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            maximum: 1
            minimum: 0
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/invoices/facility/{facilityCode}/{invoiceId}':
    get:
      tags:
        - Invoices
      summary: 'Get invoice details by ID'
      operationId: 77fdfec22118a392c0b1b74d7ce37dd9
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: invoiceId
          in: path
          description: 'Invoice ID'
          required: true
          style: form
          schema:
            type: string
            pattern: '^\d{1,}$'
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
      security:
        -
          https: []
  /ping:
    get:
      tags:
        - Ping
      summary: 'Get general application ping'
      operationId: 6423cd99a296b47d6914c94a6515cd48
      responses:
        '200':
          description: Success
  /v1/ping:
    get:
      tags:
        - Ping
      summary: 'Get general application ping using standard authorization'
      operationId: be70bffbe9fcd0fe1bbb4a69c9e17514
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
      security:
        -
          https: []
  /v1/me:
    get:
      tags:
        - Ping
      summary: 'Get authentication token information'
      operationId: 29eb61f184278d1fd12d33e9bdfb9d0a
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
      security:
        -
          https: []
  '/v1/sales/facility/{facilityCode}':
    get:
      tags:
        - Sales
      summary: 'Get sales by product for a specific facility'
      operationId: 8f54d1229b32cc98fc82bf1c38817915
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: startId
          in: query
          description: 'Result set start ID'
          required: false
          style: form
          schema:
            type: integer
            minimum: 0
        -
          name: productId
          in: query
          description: 'Product ID'
          required: false
          style: form
          schema:
            type: integer
            minimum: 0
        -
          name: startDateTime
          in: query
          description: 'Start date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 00:00:00'
        -
          name: endDateTime
          in: query
          description: 'End date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 23:59:59'
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  /v1/settings:
    get:
      tags:
        - Settings
      summary: 'Get one key / value pair from the settings table'
      operationId: 6c1ba1010457e99f3a86092035599f85
      parameters:
        -
          name: facility
          in: query
          description: 'Comma separated list of facility codes to return data for'
          required: false
          style: simple
          schema:
            type: array
            items:
              type: string
        -
          name: name
          in: query
          description: 'The setting name to get'
          required: true
          style: form
          schema:
            type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/settings/facility/{facilityCode}':
    get:
      tags:
        - Settings
      summary: 'Get one key / value pair from the settings table'
      operationId: dcce50d062ebd2185cbae0ff38534360
      parameters:
        -
          name: facilityCode
          in: path
          description: 'The facility to get'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '502':
          description: 'Bad Gateway'
      security:
        -
          https: []
  /v1/versions:
    get:
      tags:
        - Versions
      summary: 'Get the last run version from the settings table'
      operationId: a22e34bffcc70422d9cd9da9915b6190
      parameters:
        -
          name: facility
          in: query
          description: 'Comma separated list of facility codes to return data for'
          required: false
          style: simple
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/versions/facility/{facilityCode}':
    get:
      tags:
        - Versions
      summary: 'Get the last run version from the settings table'
      operationId: 4aaef484a0c178df63c809bd06396e2d
      parameters:
        -
          name: facilityCode
          in: path
          description: 'The facility to get'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '502':
          description: 'Bad Gateway'
      security:
        -
          https: []
  /v1/staff:
    get:
      tags:
        - Staff
      summary: 'Get staff records'
      operationId: f4ec437dbda8816166950c0ec7764a96
      parameters:
        -
          name: startId
          in: query
          description: 'Result set start ID'
          required: false
          style: form
          schema:
            type: integer
            default: 0
            minimum: 0
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/timeclocks/facility/{facilityCode}':
    get:
      tags:
        - Timeclocks
      summary: 'Get timeclock entries for a specific facility'
      operationId: afa6537669afe89daa9e6a77e2fc5699
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: startId
          in: query
          description: 'Result set start ID'
          required: false
          style: form
          schema:
            type: integer
            default: 0
            minimum: 0
        -
          name: customerGuid
          in: query
          description: 'Customer GUID'
          required: false
          style: form
          schema:
            type: string
            pattern: '^[0-9a-z\-]{32,36}$'
        -
          name: startDateTime
          in: query
          description: 'Start date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 00:00:00'
        -
          name: endDateTime
          in: query
          description: 'End date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 23:59:59'
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/timeclocks/facility/{facilityCode}/{timeclockId}':
    get:
      tags:
        - Timeclocks
      summary: 'Get timeclock entry details by ID'
      operationId: fe21994c95f659b3f83e49915826cdf5
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: timeclockId
          in: path
          description: 'Timeclock ID'
          required: true
          style: form
          schema:
            type: string
            pattern: '^\d{1,}$'
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: 'Not found'
      security:
        -
          https: []
  '/v1/widgets/events/facility/{facilityCode}':
    get:
      tags:
        - 'Widget Events'
      summary: 'List event widget GUIDs for a specific facility'
      operationId: 3460a296316272b8b3c301484de44fe7
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: includeInactiveWidgets
          in: query
          description: 'Include inactive widgets'
          required: false
          style: form
          schema:
            type: integer
            default: 0
            maximum: 1
            minimum: 0
        -
          name: limit
          in: query
          description: 'Results per page'
          required: false
          style: form
          schema:
            type: integer
            default: 100
            maximum: 200
            minimum: 10
        -
          name: page
          in: query
          description: 'Result page'
          required: false
          style: form
          schema:
            type: integer
            default: 1
            minimum: 1
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/widgets/events/facility/{facilityCode}/{eventWidgetGuid}':
    get:
      tags:
        - 'Widget Events'
      summary: 'Get events by GUID for a specific facility'
      operationId: ad33857bb9d7bb801d2f33bddf6968c6
      parameters:
        -
          name: facilityCode
          in: path
          description: 'Facility code'
          required: true
          style: form
          schema:
            type: string
            pattern: '^[A-Z]{3}$'
        -
          name: eventWidgetGuid
          in: path
          description: 'Event Widget GUID'
          required: true
          style: form
          schema:
            type: string
        -
          name: startDateTime
          in: query
          description: 'Start date time'
          required: true
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 00:00:00'
        -
          name: endDateTime
          in: query
          description: 'End date time'
          required: true
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 23:59:59'
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
  '/v1/widgets/events/{eventWidgetGuid}':
    get:
      tags:
        - 'Widget Events'
      summary: 'Get events'
      operationId: 322bcadbe5c9432df9d38c735f25ff33
      parameters:
        -
          name: eventWidgetGuid
          in: path
          description: 'Event Widget GUID'
          required: true
          style: form
          schema:
            type: string
        -
          name: startDateTime
          in: query
          description: 'Start date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 00:00:00'
        -
          name: endDateTime
          in: query
          description: 'End date time'
          required: false
          style: form
          schema:
            type: string
            pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
            example: '2019-01-01 23:59:59'
      responses:
        '200':
          description: Success
        '400':
          description: 'Bad Request'
        '401':
          description: Unauthorized
        '422':
          description: 'Input validation failed'
      security:
        -
          https: []
components:
  securitySchemes:
    https:
      type: http
      description: 'Basic Auth'
      scheme: basic
