Breezin Access Control UAT GraphQL API Docs

Welcome to the Breezin Access Control GraphQL API documentation for the UAT Test Environment. Here you will find the available queries, mutations and types to interact with our system using API Integration.

API Endpoints
# UAT:
https://ams-gateway-yn4vzaspqq-nw.a.run.app/query
Headers
# Bearer token used to authenticate API integration
Authorization: Bearer <YOUR_TOKEN_HERE>

What Is GQL?

GQL (Graph Query Language) is a technology that helps solve the problems of over and under-fetching data which frequently happens with REST services. It's easy to install, with a large number of supported libraries for many programming languages. If you're just dipping your toes into the GQL lake, it's recommended to read the GQL documentation available here.

Can I just use REST?

Please find the Breezin Access Control REST API documentation for the UAT environment here.

Where do I find my API Token?

Coming Soon!

Queries

fetchAccessUserBySerial

Description

fetchAccessUserBySerial will attempt to fetch a AccessUser record from the Cloud DB based on a provided Serial Number value.

Response

Returns an AccessUser!

Arguments
Name Description
input - FetchAccessUserBySerialRequest

Example

Query
query FetchAccessUserBySerial($input: FetchAccessUserBySerialRequest) {
  fetchAccessUserBySerial(input: $input) {
    accountID
    created
    creator
    dateOfBirth
    externalReferenceID
    firstName
    homeSite
    latestJoinDate
    lastModified
    lastName
    lastImageSyncTimestamp
    lastPictureNotification
    modifier
    packageName
    packageCategory
    phoneNumber
    emailAddress
    postCode
    hasProfilePicture
    serialNumberList
    serialNumberIntList
    serialNumberDetails {
      serialNumber
      created
      expiryDate
    }
  }
}
Variables
{"input": FetchAccessUserBySerialRequest}
Response
{
  "data": {
    "fetchAccessUserBySerial": {
      "accountID": "xyz789",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "dateOfBirth": "xyz789",
      "externalReferenceID": "ab12cd34ef56",
      "firstName": "xyz789",
      "homeSite": "xyz789",
      "latestJoinDate": "xyz789",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastName": "xyz789",
      "lastImageSyncTimestamp": "2024-03-23T17:21:00Z",
      "lastPictureNotification": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "packageName": "xyz789",
      "packageCategory": "xyz789",
      "phoneNumber": "xyz789",
      "emailAddress": "example@email.com",
      "postCode": "xyz789",
      "hasProfilePicture": false,
      "serialNumberList": ["xyz789"],
      "serialNumberIntList": [42],
      "serialNumberDetails": [SerialNumberDetails]
    }
  }
}

fetchBatchRequestByID

Description

fetchBatchRequestByID will attempt to retrieve the details of BatchRequest document from the Cloud DB.

Response

Returns a BatchRequest!

Arguments
Name Description
input - FetchBatchRequestByIdRequest

Example

Query
query FetchBatchRequestByID($input: FetchBatchRequestByIdRequest) {
  fetchBatchRequestByID(input: $input) {
    batchCount
    failureResults
    failureCount
    jobIssuer
    status
    successCount
    successResults
    type
    emailAddresses
    uploadTimestamp
  }
}
Variables
{"input": FetchBatchRequestByIdRequest}
Response
{
  "data": {
    "fetchBatchRequestByID": {
      "batchCount": 10,
      "failureResults": "https://www.somelinktofile.com/",
      "failureCount": 1,
      "jobIssuer": "example@email.com",
      "status": "active",
      "successCount": 9,
      "successResults": "https://www.somelinktofile.com/",
      "type": "Some type",
      "emailAddresses": ["xyz789"],
      "uploadTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchCarParkSettingsForSite

Description

fetchCarParkSettingsForSite will attempt to fetch the latest Car Park settings configured for an Organisation's Site.

Response

Returns a CarParkSettings!

Arguments
Name Description
input - FetchCarParkSettingsForSiteRequest

Example

Query
query FetchCarParkSettingsForSite($input: FetchCarParkSettingsForSiteRequest) {
  fetchCarParkSettingsForSite(input: $input) {
    created
    creator
    lastModified
    modifier
    carParkTimeLimit
    maximumCarParkSpaces
    parkingNotificationEmailAddresses
  }
}
Variables
{"input": FetchCarParkSettingsForSiteRequest}
Response
{
  "data": {
    "fetchCarParkSettingsForSite": {
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "carParkTimeLimit": 42,
      "maximumCarParkSpaces": 42,
      "parkingNotificationEmailAddresses": [
        "xyz789"
      ]
    }
  }
}

fetchPaginatedAccessUserRecords

Description

fetchPaginatedAccessUserRecords will attempt to fetch a paginated list of AccessUser records from the Cloud DB for an Organisation.

Response

Returns a PaginatedAccessUserResponse!

Arguments
Name Description
input - FetchPaginatedAccessUsersRequest

Example

Query
query FetchPaginatedAccessUserRecords($input: FetchPaginatedAccessUsersRequest) {
  fetchPaginatedAccessUserRecords(input: $input) {
    accessUserRecords {
      accountID
      created
      creator
      dateOfBirth
      externalReferenceID
      firstName
      homeSite
      latestJoinDate
      lastModified
      lastName
      lastImageSyncTimestamp
      lastPictureNotification
      modifier
      packageName
      packageCategory
      phoneNumber
      emailAddress
      postCode
      hasProfilePicture
      serialNumberList
      serialNumberIntList
      serialNumberDetails {
        ...SerialNumberDetailsFragment
      }
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": FetchPaginatedAccessUsersRequest}
Response
{
  "data": {
    "fetchPaginatedAccessUserRecords": {
      "accessUserRecords": [AccessUser],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPaginatedCardReaderErrors

Description

fetchPaginatedCardReaderErrors will attempt to fetch a paginated list of errors reported for a specific Card Reader instance.

Arguments
Name Description
input - FetchPaginatedCardReaderErrorsRequest

Example

Query
query FetchPaginatedCardReaderErrors($input: FetchPaginatedCardReaderErrorsRequest) {
  fetchPaginatedCardReaderErrors(input: $input) {
    readerErrors {
      timestamp
      errorCode
      errorReason
    }
    lastUploadTimestamp
    lastDocID
  }
}
Variables
{"input": FetchPaginatedCardReaderErrorsRequest}
Response
{
  "data": {
    "fetchPaginatedCardReaderErrors": {
      "readerErrors": [DetailedReaderError],
      "lastUploadTimestamp": "2024-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

fetchPaginatedCardReaders

Description

fetchPaginatedCardReaders will attempt to fetch a paginated list of Card Reader records from the Cloud DB.

Response

Returns a PaginatedReaderResponse!

Arguments
Name Description
input - PaginatedCardReaderRequest

Example

Query
query FetchPaginatedCardReaders($input: PaginatedCardReaderRequest) {
  fetchPaginatedCardReaders(input: $input) {
    cardReaderRecords {
      accessToken
      accessZoneName
      created
      creator
      direction
      lastModified
      lastUpdateTime
      modifier
      pulseTime
      siteID
      title
      lastHealthCheck
      readerMacAddress
      readerSerial
      esp32IdfVersion
      esp32AppVersion
      pnNpxFwVersion
      pnAppVersion
      lastReboot
      status
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": PaginatedCardReaderRequest}
Response
{
  "data": {
    "fetchPaginatedCardReaders": {
      "cardReaderRecords": [Reader],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPaginatedInvoices

Description

fetchPaginatedInvoices will attempt to fetch a paginated list of an Organisation's Invoices from the Cloud DB.

Response

Returns a PaginatedInvoicesResponse!

Arguments
Name Description
input - PaginatedInvoicesRequest

Example

Query
query FetchPaginatedInvoices($input: PaginatedInvoicesRequest) {
  fetchPaginatedInvoices(input: $input) {
    invoices {
      amount
      anprSiteCharge
      anprSiteCount
      anprSitePrice
      apiCharge
      billingPeriod
      dateOfInvoice
      dueDate
      invoiceNumber
      invoiceURL
      lastModified
      paymentCurrency
      paymentDate
      paymentReminderPeriod
      paymentReminderTaskName
      paymentTerms
      payments
      platformCharge
      overdueInvoiceTaskName
      siteCharge
      siteCount
      sitePrice
      shutoffPeriod
      shutOffTaskName
      startOfInvoice
      status
      supportCharge
      supportPackage
      vatAmount
    }
    lastStartDate
    lastDocID
  }
}
Variables
{"input": PaginatedInvoicesRequest}
Response
{
  "data": {
    "fetchPaginatedInvoices": {
      "invoices": [Invoice],
      "lastStartDate": "2024-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

fetchPaginatedOnSiteServers

Description

fetchPaginatedOnSiteServers will attempt to fetch a paginated list of On-Site Servers from the Cloud DB.

Response

Returns a PaginatedServerResponse!

Arguments
Name Description
input - PaginatedServerRequest

Example

Query
query FetchPaginatedOnSiteServers($input: PaginatedServerRequest) {
  fetchPaginatedOnSiteServers(input: $input) {
    serverRecords {
      accessToken
      apiAccessToken
      created
      creator
      lastModified
      lastUpdateTime
      lastReportedVersion
      modifier
      siteID
      serverMode
      title
      ipAddress
      lastHealthCheck
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": PaginatedServerRequest}
Response
{
  "data": {
    "fetchPaginatedOnSiteServers": {
      "serverRecords": [Server],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPaginatedPayments

Description

fetchPaginatedPayments will attempt to get a paginated list of Payments for an Organisation's account.

Response

Returns a PaginatedPaymentsResponse!

Arguments
Name Description
input - GetPaginatedPaymentsRequest

Example

Query
query FetchPaginatedPayments($input: GetPaginatedPaymentsRequest) {
  fetchPaginatedPayments(input: $input) {
    paymentDocs {
      amountPaid
      dateOfPayment
      invoiceNumber
      reporter
    }
    lastPaymentDate
    lastDocID
  }
}
Variables
{"input": GetPaginatedPaymentsRequest}
Response
{
  "data": {
    "fetchPaginatedPayments": {
      "paymentDocs": [Payment],
      "lastPaymentDate": "2024-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

fetchPaginatedSites

Description

fetchPaginatedSites will attempt to retrieve a paginated list of Site records from the Cloud DB

Response

Returns a PaginatedSiteResponse!

Arguments
Name Description
input - FetchPaginatedSitesRequest

Example

Query
query FetchPaginatedSites($input: FetchPaginatedSitesRequest) {
  fetchPaginatedSites(input: $input) {
    siteRecords {
      id
      siteAccessZones
      created
      creator
      lastModified
      modifier
      displayName
      siteAccessLevelList
      isAccessControlEnabled
      isAnprEnabled
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": FetchPaginatedSitesRequest}
Response
{
  "data": {
    "fetchPaginatedSites": {
      "siteRecords": [Site],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPaginatedTabletUsers

Description

fetchPaginatedTabletUsers will attempt to retrieve a paginated list of Tablet User records from the Cloud DB.

Response

Returns a PaginatedTabletUserResponse!

Arguments
Name Description
input - PaginatedTabletUserRequest

Example

Query
query FetchPaginatedTabletUsers($input: PaginatedTabletUserRequest) {
  fetchPaginatedTabletUsers(input: $input) {
    tabletUserRecords {
      created
      creator
      emailAddress
      isLocked
      lastModified
      modifier
      siteID
      username
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": PaginatedTabletUserRequest}
Response
{
  "data": {
    "fetchPaginatedTabletUsers": {
      "tabletUserRecords": [TabletUserDetails],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPaginatedUserAccessLogs

Description

fetchPaginatedUserAccessLogs will attempt to retrieve a paginated batch of Access Logs for a specified User.

Arguments
Name Description
input - PaginatedUserAccessLogsRequest

Example

Query
query FetchPaginatedUserAccessLogs($input: PaginatedUserAccessLogsRequest) {
  fetchPaginatedUserAccessLogs(input: $input) {
    accessLogRecords {
      accessZoneName
      dwellDuration
      entryTime
      exitTime
      externalReferenceID
      firstName
      lastName
      serialNumber
      siteID
      uploaded
      uploadedTimestamp
    }
    lastDocID
    lastUploadedTimestamp
  }
}
Variables
{"input": PaginatedUserAccessLogsRequest}
Response
{
  "data": {
    "fetchPaginatedUserAccessLogs": {
      "accessLogRecords": [AccessLog],
      "lastDocID": "some-doc-id",
      "lastUploadedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPaginatedUserPassRecords

Description

fetchPaginatedUserPassRecords will attempt to fetch a paginated list of UserPass records from the Cloud DB for an Organisation.

Response

Returns a PaginatedUserPassResponse!

Arguments
Name Description
input - FetchPaginatedUserPassRecordsRequest

Example

Query
query FetchPaginatedUserPassRecords($input: FetchPaginatedUserPassRecordsRequest) {
  fetchPaginatedUserPassRecords(input: $input) {
    userPassRecords {
      accessZones
      activationDate
      created
      creator
      expiryDate
      externalReferenceID
      firstName
      lastModified
      lastName
      modifier
      passType
      hasProfilePicture
      serialNumber
      serialNumberInt
      accessLevelList
      allowedSites
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": FetchPaginatedUserPassRecordsRequest}
Response
{
  "data": {
    "fetchPaginatedUserPassRecords": {
      "userPassRecords": [UserPass],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPaginatedUserSwipeLogs

Description

fetchPaginatedUserSwipeLogs will attempt to retrieve a paginated batch of Swipe Logs for a specified User.

Response

Returns a PaginatedUserSwipeLogsResponse!

Arguments
Name Description
input - PaginatedUserSwipeLogsRequest

Example

Query
query FetchPaginatedUserSwipeLogs($input: PaginatedUserSwipeLogsRequest) {
  fetchPaginatedUserSwipeLogs(input: $input) {
    swipeLogRecords {
      accessGranted
      denialReason
      externalReferenceID
      firstName
      gateDirection
      lastName
      manualOpen
      readerAccessZone
      readerID
      reentryWarning
      serialNumber
      serverName
      siteID
      uploaded
      uploadedTimestamp
      usageDay
      usageMonth
      usageYear
      usageTimestamp
    }
    lastDocID
    lastUploadedTimestamp
  }
}
Variables
{"input": PaginatedUserSwipeLogsRequest}
Response
{
  "data": {
    "fetchPaginatedUserSwipeLogs": {
      "swipeLogRecords": [SwipeLog],
      "lastDocID": "some-doc-id",
      "lastUploadedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchPictureBatchRequestByID

Description

fetchPictureBatchRequestByID will attempt to retrieve the details of BatchPictureRequest document from the Cloud DB.

Response

Returns a BatchPictureRequest!

Arguments
Name Description
input - FetchPictureBatchRequestByIdRequest

Example

Query
query FetchPictureBatchRequestByID($input: FetchPictureBatchRequestByIdRequest) {
  fetchPictureBatchRequestByID(input: $input) {
    batchCount
    failureResults
    failureCount
    jobIssuer
    status
    successCount
    successResults
    emailAddresses
    uploadTimestamp
  }
}
Variables
{"input": FetchPictureBatchRequestByIdRequest}
Response
{
  "data": {
    "fetchPictureBatchRequestByID": {
      "batchCount": 10,
      "failureResults": "https://www.somelinktofile.com/",
      "failureCount": 1,
      "jobIssuer": "example@email.com",
      "status": "active",
      "successCount": 9,
      "successResults": "https://www.somelinktofile.com/",
      "emailAddresses": ["xyz789"],
      "uploadTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

fetchReadersByAccessZone

Description

fetchReadersByAccessZone will attempt to fetch Reader Details assigned for an Access Zone.

Arguments
Name Description
input - FetchReadersByAccessZoneRequest

Example

Query
query FetchReadersByAccessZone($input: FetchReadersByAccessZoneRequest) {
  fetchReadersByAccessZone(input: $input) {
    cardReaderRecords {
      accessToken
      accessZoneName
      created
      creator
      direction
      lastModified
      lastUpdateTime
      modifier
      pulseTime
      siteID
      title
      lastHealthCheck
      readerMacAddress
      readerSerial
      esp32IdfVersion
      esp32AppVersion
      pnNpxFwVersion
      pnAppVersion
      lastReboot
      status
    }
  }
}
Variables
{"input": FetchReadersByAccessZoneRequest}
Response
{
  "data": {
    "fetchReadersByAccessZone": {
      "cardReaderRecords": [Reader]
    }
  }
}

fetchUserAccessBySerial

Description

DEPRECATED: fetchUserAccessBySerial will attempt to fetch a UserAccess record from the Cloud DB based on a provided Serial Number value. This API Endpoint will now query the new AccessUser, UserPass and ProfilePicture structures to retrieve the data as per the old UserAccess structure. Please migrate integration to the new API flow.

Response

Returns a UserAccess!

Arguments
Name Description
input - FetchUserAccessBySerialRequest

Example

Query
query FetchUserAccessBySerial($input: FetchUserAccessBySerialRequest) {
  fetchUserAccessBySerial(input: $input) {
    accessZones
    accountID
    activationDate
    created
    creator
    dateOfBirth
    expiryDate
    externalReferenceID
    firstName
    homeSite
    latestJoinDate
    lastModified
    lastName
    lastImageSyncTimestamp
    modifier
    packageName
    packageCategory
    passType
    postCode
    profilePicture
    serialNumber
    serialNumberInt
    accessLevelList
    allowedSites
  }
}
Variables
{"input": FetchUserAccessBySerialRequest}
Response
{
  "data": {
    "fetchUserAccessBySerial": {
      "accessZones": {"some_key": "Some Value", "another_key": "Another Value"},
      "accountID": "xyz789",
      "activationDate": "2024-03-23T17:21:00Z",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "dateOfBirth": "xyz789",
      "expiryDate": "2024-03-23T17:21:00Z",
      "externalReferenceID": "ab12cd34ef56",
      "firstName": "xyz789",
      "homeSite": "abc123",
      "latestJoinDate": "xyz789",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastName": "abc123",
      "lastImageSyncTimestamp": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "packageName": "abc123",
      "packageCategory": "abc123",
      "passType": "xyz789",
      "postCode": "xyz789",
      "profilePicture": "xyz789",
      "serialNumber": "110100000001",
      "serialNumberInt": 42,
      "accessLevelList": ["xyz789"],
      "allowedSites": ["abc123"]
    }
  }
}

fetchUserPassRecordBySerial

Description

fetchUserPassRecordBySerial will attempt to fetch a UserPass record from the Cloud DB based on a provided Serial Number value.

Response

Returns a UserPass!

Arguments
Name Description
input - FetchUserPassRecordBySerialRequest

Example

Query
query FetchUserPassRecordBySerial($input: FetchUserPassRecordBySerialRequest) {
  fetchUserPassRecordBySerial(input: $input) {
    accessZones
    activationDate
    created
    creator
    expiryDate
    externalReferenceID
    firstName
    lastModified
    lastName
    modifier
    passType
    hasProfilePicture
    serialNumber
    serialNumberInt
    accessLevelList
    allowedSites
  }
}
Variables
{"input": FetchUserPassRecordBySerialRequest}
Response
{
  "data": {
    "fetchUserPassRecordBySerial": {
      "accessZones": {"some_key": "Some Value", "another_key": "Another Value"},
      "activationDate": "2024-03-23T17:21:00Z",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "expiryDate": "2024-03-23T17:21:00Z",
      "externalReferenceID": "ab12cd34ef56",
      "firstName": "xyz789",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastName": "xyz789",
      "modifier": "example@email.com",
      "passType": "xyz789",
      "hasProfilePicture": false,
      "serialNumber": "110100000001",
      "serialNumberInt": 42,
      "accessLevelList": ["xyz789"],
      "allowedSites": ["abc123"]
    }
  }
}

generateAccessLogReportForAllSites

Description

generateAccessLogReportForAllSites will attempt to generate an Access Log report for all Sites based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateAccessLogReportForAllSitesRequest

Example

Query
query GenerateAccessLogReportForAllSites($input: GenerateAccessLogReportForAllSitesRequest) {
  generateAccessLogReportForAllSites(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateAccessLogReportForAllSitesRequest}
Response
{
  "data": {
    "generateAccessLogReportForAllSites": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateAccessLogReportForSite

Description

generateAccessLogReportForSite will attempt to generate an Access Log report for a Site based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateSiteAccessLogReportRequest

Example

Query
query GenerateAccessLogReportForSite($input: GenerateSiteAccessLogReportRequest) {
  generateAccessLogReportForSite(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateSiteAccessLogReportRequest}
Response
{
  "data": {
    "generateAccessLogReportForSite": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateAccessLogReportForUser

Description

generateAccessLogReportForUser will attempt to generate an Access Log report for a User based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateUserAccessLogReportRequest

Example

Query
query GenerateAccessLogReportForUser($input: GenerateUserAccessLogReportRequest) {
  generateAccessLogReportForUser(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateUserAccessLogReportRequest}
Response
{
  "data": {
    "generateAccessLogReportForUser": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateSiteVehicleAccessLogReport

Description

generateSiteVehicleAccessLogReport will attempt to generate a Vehicle Access Log report for a site based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateSiteVehicleAccessLogReportRequest

Example

Query
query GenerateSiteVehicleAccessLogReport($input: GenerateSiteVehicleAccessLogReportRequest) {
  generateSiteVehicleAccessLogReport(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateSiteVehicleAccessLogReportRequest}
Response
{
  "data": {
    "generateSiteVehicleAccessLogReport": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateSiteVehicleSwipeLogReport

Description

generateSiteVehicleSwipeLogReport will attempt to generate a Vehicle Swipe Log report for a site based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateSiteVehicleSwipeLogReportRequest

Example

Query
query GenerateSiteVehicleSwipeLogReport($input: GenerateSiteVehicleSwipeLogReportRequest) {
  generateSiteVehicleSwipeLogReport(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateSiteVehicleSwipeLogReportRequest}
Response
{
  "data": {
    "generateSiteVehicleSwipeLogReport": {
      "message": "Response message containing results of API request",
      "reportID": "xyz789"
    }
  }
}

generateSwipeLogReportForAllSites

Description

generateSwipeLogReportForAllSites will attempt to generate a Swipe Log report for all sites based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateSwipeLogReportForAllSitesRequest

Example

Query
query GenerateSwipeLogReportForAllSites($input: GenerateSwipeLogReportForAllSitesRequest) {
  generateSwipeLogReportForAllSites(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateSwipeLogReportForAllSitesRequest}
Response
{
  "data": {
    "generateSwipeLogReportForAllSites": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateSwipeLogReportForSite

Description

generateSwipeLogReportForSite will attempt to generate a Swipe Log report for a site based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateSiteSwipeLogReportRequest

Example

Query
query GenerateSwipeLogReportForSite($input: GenerateSiteSwipeLogReportRequest) {
  generateSwipeLogReportForSite(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateSiteSwipeLogReportRequest}
Response
{
  "data": {
    "generateSwipeLogReportForSite": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateSwipeLogReportForUser

Description

generateSwipeLogReportForUser will attempt to generate a Swipe Log report for a User based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateUserSwipeLogReportRequest

Example

Query
query GenerateSwipeLogReportForUser($input: GenerateUserSwipeLogReportRequest) {
  generateSwipeLogReportForUser(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateUserSwipeLogReportRequest}
Response
{
  "data": {
    "generateSwipeLogReportForUser": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateVehicleAccessLogReportForAllSites

Description

generateVehicleAccessLogReportForAllSites will attempt to generate a Vehicle Access Log report for all sites based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateVehicleAccessLogReportForAllSitesRequest

Example

Query
query GenerateVehicleAccessLogReportForAllSites($input: GenerateVehicleAccessLogReportForAllSitesRequest) {
  generateVehicleAccessLogReportForAllSites(input: $input) {
    message
    reportID
  }
}
Variables
{
  "input": GenerateVehicleAccessLogReportForAllSitesRequest
}
Response
{
  "data": {
    "generateVehicleAccessLogReportForAllSites": {
      "message": "Response message containing results of API request",
      "reportID": "abc123"
    }
  }
}

generateVehicleSwipeLogReportForAllSites

Description

generateVehicleSwipeLogReportForAllSites will attempt to generate a Vehicle Swipe Log report for all sites based on provided filter options.

Response

Returns a ReportingResponse!

Arguments
Name Description
input - GenerateVehicleSwipeLogReportForAllSitesRequest

Example

Query
query GenerateVehicleSwipeLogReportForAllSites($input: GenerateVehicleSwipeLogReportForAllSitesRequest) {
  generateVehicleSwipeLogReportForAllSites(input: $input) {
    message
    reportID
  }
}
Variables
{"input": GenerateVehicleSwipeLogReportForAllSitesRequest}
Response
{
  "data": {
    "generateVehicleSwipeLogReportForAllSites": {
      "message": "Response message containing results of API request",
      "reportID": "xyz789"
    }
  }
}

getAccessLevelByTitle

Description

getAccessLevelByTitle will attempt to fetch an Access Level record by Title from the Cloud DB.

Response

Returns an AccessLevel!

Arguments
Name Description
input - GetAccessLevelByTitleRequest

Example

Query
query GetAccessLevelByTitle($input: GetAccessLevelByTitleRequest) {
  getAccessLevelByTitle(input: $input) {
    title
    description
    created
    creator
    lastModified
    modifier
    displayName
  }
}
Variables
{"input": GetAccessLevelByTitleRequest}
Response
{
  "data": {
    "getAccessLevelByTitle": {
      "title": "Some Title",
      "description": "Some description",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "displayName": "xyz789"
    }
  }
}

getAccessUserByExternalReferenceID

Description

getAccessUserByExternalReferenceID will attempt to AccessUser record which matches on a provided ExternalReferenceID value.

Response

Returns an AccessUser!

Arguments
Name Description
input - GetAccessUserByExternalRefIdRequest

Example

Query
query GetAccessUserByExternalReferenceID($input: GetAccessUserByExternalRefIdRequest) {
  getAccessUserByExternalReferenceID(input: $input) {
    accountID
    created
    creator
    dateOfBirth
    externalReferenceID
    firstName
    homeSite
    latestJoinDate
    lastModified
    lastName
    lastImageSyncTimestamp
    lastPictureNotification
    modifier
    packageName
    packageCategory
    phoneNumber
    emailAddress
    postCode
    hasProfilePicture
    serialNumberList
    serialNumberIntList
    serialNumberDetails {
      serialNumber
      created
      expiryDate
    }
  }
}
Variables
{"input": GetAccessUserByExternalRefIdRequest}
Response
{
  "data": {
    "getAccessUserByExternalReferenceID": {
      "accountID": "abc123",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "dateOfBirth": "abc123",
      "externalReferenceID": "ab12cd34ef56",
      "firstName": "abc123",
      "homeSite": "abc123",
      "latestJoinDate": "abc123",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastName": "xyz789",
      "lastImageSyncTimestamp": "2024-03-23T17:21:00Z",
      "lastPictureNotification": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "packageName": "xyz789",
      "packageCategory": "abc123",
      "phoneNumber": "xyz789",
      "emailAddress": "example@email.com",
      "postCode": "xyz789",
      "hasProfilePicture": true,
      "serialNumberList": ["xyz789"],
      "serialNumberIntList": [42],
      "serialNumberDetails": [SerialNumberDetails]
    }
  }
}

getCameraBySerial

Description

getCameraBySerial will attempt to retrieve the details of an Organisation's ANPR Camera which matches on a provided serial number.

Response

Returns a Camera!

Arguments
Name Description
input - GetCameraBySerialRequest

Example

Query
query GetCameraBySerial($input: GetCameraBySerialRequest) {
  getCameraBySerial(input: $input) {
    created
    creator
    direction
    serial
    title
    lastModified
    modifier
    siteID
  }
}
Variables
{"input": GetCameraBySerialRequest}
Response
{
  "data": {
    "getCameraBySerial": {
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "direction": "abc123",
      "serial": "xyz789",
      "title": "Some Title",
      "lastModified": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "siteID": "xyz789"
    }
  }
}

getCameraServerByTitle

Description

getCameraServerByTitle will attempt to retrieve an Organisation's ANPR Camera Server record which matches on a provided title field.

Response

Returns a CameraServer!

Arguments
Name Description
input - GetCameraServerByTitleRequest

Example

Query
query GetCameraServerByTitle($input: GetCameraServerByTitleRequest) {
  getCameraServerByTitle(input: $input) {
    accessToken
    apiAccessToken
    created
    creator
    ipAddress
    lastHealthCheck
    lastModified
    lastReportedVersion
    modifier
    siteID
    title
  }
}
Variables
{"input": GetCameraServerByTitleRequest}
Response
{
  "data": {
    "getCameraServerByTitle": {
      "accessToken": "xyz789",
      "apiAccessToken": "xyz789",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "ipAddress": "xyz789",
      "lastHealthCheck": "2024-03-23T17:21:00Z",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastReportedVersion": "xyz789",
      "modifier": "example@email.com",
      "siteID": "abc123",
      "title": "Some Title"
    }
  }
}

getCameraServerDetailsForServer

Description

getCameraServerDetailsForServer will attempt to retrieve the latest details for an Organisation's ANPR Camera Server when syncing with the Cloud.

Response

Returns a CameraServer!

Example

Query
query GetCameraServerDetailsForServer {
  getCameraServerDetailsForServer {
    accessToken
    apiAccessToken
    created
    creator
    ipAddress
    lastHealthCheck
    lastModified
    lastReportedVersion
    modifier
    siteID
    title
  }
}
Response
{
  "data": {
    "getCameraServerDetailsForServer": {
      "accessToken": "abc123",
      "apiAccessToken": "abc123",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "ipAddress": "xyz789",
      "lastHealthCheck": "2024-03-23T17:21:00Z",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastReportedVersion": "abc123",
      "modifier": "example@email.com",
      "siteID": "xyz789",
      "title": "Some Title"
    }
  }
}

getCamerasForSite

Description

getCamerasForSite will attempt to retrieve a list of an Organisation's ANPR Camera records for a provided Site.

Response

Returns a GetCamerasForSiteResponse!

Arguments
Name Description
input - GetCamerasForSiteRequest

Example

Query
query GetCamerasForSite($input: GetCamerasForSiteRequest) {
  getCamerasForSite(input: $input) {
    cameraRecords {
      created
      creator
      direction
      serial
      title
      lastModified
      modifier
      siteID
    }
  }
}
Variables
{"input": GetCamerasForSiteRequest}
Response
{
  "data": {
    "getCamerasForSite": {"cameraRecords": [Camera]}
  }
}

getCamerasForSiteForServer

Description

getCamerasForSiteForServer will attempt to retrieve a list of an Organisation's ANPR Camera records for a CameraServer running on site.

Response

Returns a GetCamerasForSiteResponse!

Example

Query
query GetCamerasForSiteForServer {
  getCamerasForSiteForServer {
    cameraRecords {
      created
      creator
      direction
      serial
      title
      lastModified
      modifier
      siteID
    }
  }
}
Response
{
  "data": {
    "getCamerasForSiteForServer": {
      "cameraRecords": [Camera]
    }
  }
}

getOnSiteServerByTitle

Description

getOnSiteServerByTitle will attempt to retrieve an existing On-Site Server record from the Cloud DB by searching by server name.

Response

Returns a Server!

Arguments
Name Description
input - GetServerByTitleRequest

Example

Query
query GetOnSiteServerByTitle($input: GetServerByTitleRequest) {
  getOnSiteServerByTitle(input: $input) {
    accessToken
    apiAccessToken
    created
    creator
    lastModified
    lastUpdateTime
    lastReportedVersion
    modifier
    siteID
    serverMode
    title
    ipAddress
    lastHealthCheck
  }
}
Variables
{"input": GetServerByTitleRequest}
Response
{
  "data": {
    "getOnSiteServerByTitle": {
      "accessToken": "xyz789",
      "apiAccessToken": "xyz789",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastUpdateTime": "2024-03-23T17:21:00Z",
      "lastReportedVersion": "xyz789",
      "modifier": "example@email.com",
      "siteID": "abc123",
      "serverMode": "xyz789",
      "title": "Some Title",
      "ipAddress": "xyz789",
      "lastHealthCheck": "2024-03-23T17:21:00Z"
    }
  }
}

getPaginatedAccessLevels

Description

getPaginatedAccessLevels will attempt to fetch a paginated list of an Organisation's Access Levels from the Cloud DB.

Response

Returns a PaginatedAccessLevelsResponse!

Arguments
Name Description
input - PaginatedAccessLevelsRequest

Example

Query
query GetPaginatedAccessLevels($input: PaginatedAccessLevelsRequest) {
  getPaginatedAccessLevels(input: $input) {
    accessLevels {
      title
      description
      created
      creator
      lastModified
      modifier
      displayName
    }
    lastModifiedDate
    lastDocID
  }
}
Variables
{"input": PaginatedAccessLevelsRequest}
Response
{
  "data": {
    "getPaginatedAccessLevels": {
      "accessLevels": [AccessLevel],
      "lastModifiedDate": "2024-03-23T17:21:00Z",
      "lastDocID": "some-doc-id"
    }
  }
}

getPaginatedReportingRequests

Description

getPaginatedReportingRequests will attempt to get paginated reporting requests.

Arguments
Name Description
input - GetPaginatedReportingRequestsRequest

Example

Query
query GetPaginatedReportingRequests($input: GetPaginatedReportingRequestsRequest) {
  getPaginatedReportingRequests(input: $input) {
    reportingRequestList {
      reportType
      status
      created
      requester
      lastModified
      downloadURL
    }
    lastDocID
    lastModifiedTimestamp
  }
}
Variables
{"input": GetPaginatedReportingRequestsRequest}
Response
{
  "data": {
    "getPaginatedReportingRequests": {
      "reportingRequestList": [ReportingRequest],
      "lastDocID": "some-doc-id",
      "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
    }
  }
}

getProfilePicForExternalRefID

Description

getProfilePicForExternalRefID will attempt to fetch a Profile Picture for a Access User record which matches on the provided Serial Number value.

Response

Returns a ProfilePicture!

Arguments
Name Description
input - GetProfilePicForExternalRefIdRequest

Example

Query
query GetProfilePicForExternalRefID($input: GetProfilePicForExternalRefIdRequest) {
  getProfilePicForExternalRefID(input: $input) {
    aHash
    dHash
    externalReferenceID
    imageAccepted
    lastModified
    modifier
    pHash
    profilePicture
    source
  }
}
Variables
{"input": GetProfilePicForExternalRefIdRequest}
Response
{
  "data": {
    "getProfilePicForExternalRefID": {
      "aHash": "xyz789",
      "dHash": "xyz789",
      "externalReferenceID": "ab12cd34ef56",
      "imageAccepted": false,
      "lastModified": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "pHash": "abc123",
      "profilePicture": "abc123",
      "source": "xyz789"
    }
  }
}

getProfilePicForSerialNumber

Description

getProfilePicForSerialNumber will attempt to fetch a Profile Picture for a Access User record which matches on the provided Serial Number value.

Response

Returns a ProfilePicture!

Arguments
Name Description
input - GetProfilePicForSerialRequest

Example

Query
query GetProfilePicForSerialNumber($input: GetProfilePicForSerialRequest) {
  getProfilePicForSerialNumber(input: $input) {
    aHash
    dHash
    externalReferenceID
    imageAccepted
    lastModified
    modifier
    pHash
    profilePicture
    source
  }
}
Variables
{"input": GetProfilePicForSerialRequest}
Response
{
  "data": {
    "getProfilePicForSerialNumber": {
      "aHash": "xyz789",
      "dHash": "xyz789",
      "externalReferenceID": "ab12cd34ef56",
      "imageAccepted": false,
      "lastModified": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "pHash": "abc123",
      "profilePicture": "abc123",
      "source": "xyz789"
    }
  }
}

getReaderByTitle

Description

getReaderByTitle will attempt to retrieve a Card Reader record from the Cloud DB based on a specified Card Reader Title.

Response

Returns a Reader!

Arguments
Name Description
input - GetReaderByTitleRequest

Example

Query
query GetReaderByTitle($input: GetReaderByTitleRequest) {
  getReaderByTitle(input: $input) {
    accessToken
    accessZoneName
    created
    creator
    direction
    lastModified
    lastUpdateTime
    modifier
    pulseTime
    siteID
    title
    lastHealthCheck
    readerMacAddress
    readerSerial
    esp32IdfVersion
    esp32AppVersion
    pnNpxFwVersion
    pnAppVersion
    lastReboot
    status
  }
}
Variables
{"input": GetReaderByTitleRequest}
Response
{
  "data": {
    "getReaderByTitle": {
      "accessToken": "abc123",
      "accessZoneName": "abc123",
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "direction": "abc123",
      "lastModified": "2024-03-23T17:21:00Z",
      "lastUpdateTime": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "pulseTime": 42,
      "siteID": "abc123",
      "title": "Some Title",
      "lastHealthCheck": "2024-03-23T17:21:00Z",
      "readerMacAddress": "abc123",
      "readerSerial": "xyz789",
      "esp32IdfVersion": "abc123",
      "esp32AppVersion": "xyz789",
      "pnNpxFwVersion": "xyz789",
      "pnAppVersion": "xyz789",
      "lastReboot": "2024-03-23T17:21:00Z",
      "status": "active"
    }
  }
}

getReportingRequestByReportID

Description

getReportingRequestByReportID will attempt to get the reporting request for provided Report ID.

Response

Returns a ReportingRequest!

Arguments
Name Description
input - GetReportingRequestByReportIDRequest

Example

Query
query GetReportingRequestByReportID($input: GetReportingRequestByReportIDRequest) {
  getReportingRequestByReportID(input: $input) {
    reportType
    status
    created
    requester
    lastModified
    downloadURL
  }
}
Variables
{"input": GetReportingRequestByReportIDRequest}
Response
{
  "data": {
    "getReportingRequestByReportID": {
      "reportType": "abc123",
      "status": "active",
      "created": "2024-03-23T17:21:00Z",
      "requester": "xyz789",
      "lastModified": "2024-03-23T17:21:00Z",
      "downloadURL": "xyz789"
    }
  }
}

getSiteByID

Description

getSiteByID will attempt to retrieve a Site record from the Cloud DB by searching on Site title.

Response

Returns a Site!

Arguments
Name Description
input - GetSiteByIdRequest

Example

Query
query GetSiteByID($input: GetSiteByIdRequest) {
  getSiteByID(input: $input) {
    id
    siteAccessZones
    created
    creator
    lastModified
    modifier
    displayName
    siteAccessLevelList
    isAccessControlEnabled
    isAnprEnabled
  }
}
Variables
{"input": GetSiteByIdRequest}
Response
{
  "data": {
    "getSiteByID": {
      "id": "some-id",
      "siteAccessZones": {
        "some_key": "Some Value",
        "another_key": "Another Value"
      },
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "lastModified": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "displayName": "abc123",
      "siteAccessLevelList": ["xyz789"],
      "isAccessControlEnabled": false,
      "isAnprEnabled": false
    }
  }
}

getTabletUserByUsername

Description

getTabletUserByUsername will attempt to fetch a tablet user from the Cloud DB based on a provided username.

Response

Returns a TabletUserDetails!

Arguments
Name Description
input - GetTabletUserByUsernameRequest

Example

Query
query GetTabletUserByUsername($input: GetTabletUserByUsernameRequest) {
  getTabletUserByUsername(input: $input) {
    created
    creator
    emailAddress
    isLocked
    lastModified
    modifier
    siteID
    username
  }
}
Variables
{"input": GetTabletUserByUsernameRequest}
Response
{
  "data": {
    "getTabletUserByUsername": {
      "created": "2024-03-23T17:21:00Z",
      "creator": "example@email.com",
      "emailAddress": "example@email.com",
      "isLocked": true,
      "lastModified": "2024-03-23T17:21:00Z",
      "modifier": "example@email.com",
      "siteID": "abc123",
      "username": "xyz789"
    }
  }
}

getUserAccessByExternalReferenceID

Description

DEPRECATED: getUserAccessByExternalReferenceID will attempt to fetch a list of User Access records which match on a provided ExternalReferenceID value. This API Endpoint will now query the new AccessUser, UserPass and ProfilePicture structures to retrieve the data as per the old UserAccess structure. Please migrate integration to the new API flow.

Arguments
Name Description
input - GetUserAccessByExternalRefIdRequest

Example

Query
query GetUserAccessByExternalReferenceID($input: GetUserAccessByExternalRefIdRequest) {
  getUserAccessByExternalReferenceID(input: $input) {
    userAccessRecords {
      accessZones
      accountID
      activationDate
      created
      creator
      dateOfBirth
      expiryDate
      externalReferenceID
      firstName
      homeSite
      latestJoinDate
      lastModified
      lastName
      lastImageSyncTimestamp
      modifier
      packageName
      packageCategory
      passType
      postCode
      profilePicture
      serialNumber
      serialNumberInt
      accessLevelList
      allowedSites
    }
  }
}
Variables
{"input": GetUserAccessByExternalRefIdRequest}
Response
{
  "data": {
    "getUserAccessByExternalReferenceID": {
      "userAccessRecords": [UserAccess]
    }
  }
}

getUserPassesByExternalReferenceID

Description

getUserPassesByExternalReferenceID will attempt to UserPass records which match on a provided ExternalReferenceID value.

Arguments
Name Description
input - GetUserPassesByExternalRefIdRequest

Example

Query
query GetUserPassesByExternalReferenceID($input: GetUserPassesByExternalRefIdRequest) {
  getUserPassesByExternalReferenceID(input: $input) {
    userPassRecords {
      accessZones
      activationDate
      created
      creator
      expiryDate
      externalReferenceID
      firstName
      lastModified
      lastName
      modifier
      passType
      hasProfilePicture
      serialNumber
      serialNumberInt
      accessLevelList
      allowedSites
    }
  }
}
Variables
{"input": GetUserPassesByExternalRefIdRequest}
Response
{
  "data": {
    "getUserPassesByExternalReferenceID": {
      "userPassRecords": [UserPass]
    }
  }
}

regenerateCameraServerAccessToken

Description

regenerateCameraServerAccessToken will attempt to regenerate the access token for an Oraganisation's ANPR Camera Server.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RegenerateCameraServerAccessTokenRequest

Example

Query
query RegenerateCameraServerAccessToken($input: RegenerateCameraServerAccessTokenRequest) {
  regenerateCameraServerAccessToken(input: $input) {
    message
  }
}
Variables
{"input": RegenerateCameraServerAccessTokenRequest}
Response
{
  "data": {
    "regenerateCameraServerAccessToken": {
      "message": "Response message containing results of API request"
    }
  }
}

Mutations

createAccessLevel

Description

createAccessLevel will attempt to create a new Access Level record for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateAccessLevelRequest

Example

Query
mutation CreateAccessLevel($input: CreateAccessLevelRequest) {
  createAccessLevel(input: $input) {
    message
  }
}
Variables
{"input": CreateAccessLevelRequest}
Response
{
  "data": {
    "createAccessLevel": {
      "message": "Response message containing results of API request"
    }
  }
}

createAccessUserRecord

Description

createAccessUserRecord will attempt to create a new AccessUser record within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateAccessUserRequest

Example

Query
mutation CreateAccessUserRecord($input: CreateAccessUserRequest) {
  createAccessUserRecord(input: $input) {
    message
  }
}
Variables
{"input": CreateAccessUserRequest}
Response
{
  "data": {
    "createAccessUserRecord": {
      "message": "Response message containing results of API request"
    }
  }
}

createCamera

Description

createCamera will attempt to create a new ANPR Camera in the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateCameraRequest

Example

Query
mutation CreateCamera($input: CreateCameraRequest) {
  createCamera(input: $input) {
    message
  }
}
Variables
{"input": CreateCameraRequest}
Response
{
  "data": {
    "createCamera": {
      "message": "Response message containing results of API request"
    }
  }
}

createCameraServer

Description

createCameraServer will attempt to create a new ANPR Camera Server in the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateCameraServerRequest

Example

Query
mutation CreateCameraServer($input: CreateCameraServerRequest) {
  createCameraServer(input: $input) {
    message
  }
}
Variables
{"input": CreateCameraServerRequest}
Response
{
  "data": {
    "createCameraServer": {
      "message": "Response message containing results of API request"
    }
  }
}

createCardReader

Description

createCardReader mutation will attempt to create a new Card Reader in the Cloud DB for an organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateCardReaderRequest

Example

Query
mutation CreateCardReader($input: CreateCardReaderRequest) {
  createCardReader(input: $input) {
    message
  }
}
Variables
{"input": CreateCardReaderRequest}
Response
{
  "data": {
    "createCardReader": {
      "message": "Response message containing results of API request"
    }
  }
}

createNewSite

Description

createNewSite will attempt to create a new site within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateSiteRequest

Example

Query
mutation CreateNewSite($input: CreateSiteRequest) {
  createNewSite(input: $input) {
    message
  }
}
Variables
{"input": CreateSiteRequest}
Response
{
  "data": {
    "createNewSite": {
      "message": "Response message containing results of API request"
    }
  }
}

createOnSiteServer

Description

createOnSiteServer will attempt to create a new On-Site Server record within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateOnSiteServerRequest

Example

Query
mutation CreateOnSiteServer($input: CreateOnSiteServerRequest) {
  createOnSiteServer(input: $input) {
    message
  }
}
Variables
{"input": CreateOnSiteServerRequest}
Response
{
  "data": {
    "createOnSiteServer": {
      "message": "Response message containing results of API request"
    }
  }
}

createTabletUser

Description

createTabletUser will attempt to create a new Tablet App user in the Cloud DB for an Organisation's Site.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateTabletUserRequest

Example

Query
mutation CreateTabletUser($input: CreateTabletUserRequest) {
  createTabletUser(input: $input) {
    message
  }
}
Variables
{"input": CreateTabletUserRequest}
Response
{
  "data": {
    "createTabletUser": {
      "message": "Response message containing results of API request"
    }
  }
}

createUserAccessRecord

Description

createUserAccessRecord will attempt to create a new UserAccess record within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateUserAccessRequest

Example

Query
mutation CreateUserAccessRecord($input: CreateUserAccessRequest) {
  createUserAccessRecord(input: $input) {
    message
  }
}
Variables
{"input": CreateUserAccessRequest}
Response
{
  "data": {
    "createUserAccessRecord": {
      "message": "Response message containing results of API request"
    }
  }
}

createUserPassRecord

Description

createUserPassRecord will attempt to create a new UserPass record within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - CreateUserPassRequest

Example

Query
mutation CreateUserPassRecord($input: CreateUserPassRequest) {
  createUserPassRecord(input: $input) {
    message
  }
}
Variables
{"input": CreateUserPassRequest}
Response
{
  "data": {
    "createUserPassRecord": {
      "message": "Response message containing results of API request"
    }
  }
}

expireUserAccessRecord

Description

DEPRECATED expireUserAccessRecord will attempt to update an existing UserAccess record to set an expiry date for the users access permissions. This API Endpoint will now redirect to the new ExpireUserPass API Endpoint. Please migrate integration to the new ExpireUserPass API flow.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ExpireUserAccessRequest

Example

Query
mutation ExpireUserAccessRecord($input: ExpireUserAccessRequest) {
  expireUserAccessRecord(input: $input) {
    message
  }
}
Variables
{"input": ExpireUserAccessRequest}
Response
{
  "data": {
    "expireUserAccessRecord": {
      "message": "Response message containing results of API request"
    }
  }
}

expireUserPass

Description

expireUserPass will attempt to update an existing UserPass record to set an expiry date.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - ExpireUserPassRequest

Example

Query
mutation ExpireUserPass($input: ExpireUserPassRequest) {
  expireUserPass(input: $input) {
    message
  }
}
Variables
{"input": ExpireUserPassRequest}
Response
{
  "data": {
    "expireUserPass": {
      "message": "Response message containing results of API request"
    }
  }
}

regenerateApiToken

Description

regenerateApiToken will attempt to regenerate an API Token for an Organisation within the Cloud DB.

Response

Returns a RegenerateApiTokenResponse!

Arguments
Name Description
input - RegenerateApiTokenRequest

Example

Query
mutation RegenerateApiToken($input: RegenerateApiTokenRequest) {
  regenerateApiToken(input: $input) {
    apiToken
  }
}
Variables
{"input": RegenerateApiTokenRequest}
Response
{
  "data": {
    "regenerateApiToken": {
      "apiToken": "xyz789"
    }
  }
}

regenerateCameraServerApiAccessToken

Description

regenerateCameraServerApiAccessToken will attempt to regenerate an API Access Token for an Organisation's On-Site ANPR Camera Server.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RegenerateCameraServerApiAccessTokenRequest

Example

Query
mutation RegenerateCameraServerApiAccessToken($input: RegenerateCameraServerApiAccessTokenRequest) {
  regenerateCameraServerApiAccessToken(input: $input) {
    message
  }
}
Variables
{"input": RegenerateCameraServerApiAccessTokenRequest}
Response
{
  "data": {
    "regenerateCameraServerApiAccessToken": {
      "message": "Response message containing results of API request"
    }
  }
}

regenerateCardReaderAccessToken

Description

regenerateCardReaderAccessToken will attempt to regenerate the access token for a Card Reader.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RegenerateReaderTokenRequest

Example

Query
mutation RegenerateCardReaderAccessToken($input: RegenerateReaderTokenRequest) {
  regenerateCardReaderAccessToken(input: $input) {
    message
  }
}
Variables
{"input": RegenerateReaderTokenRequest}
Response
{
  "data": {
    "regenerateCardReaderAccessToken": {
      "message": "Response message containing results of API request"
    }
  }
}

regenerateOnSiteServerAccessToken

Description

regenerateOnSiteServerAccessToken will attempt to regenerate the access token for an On-Site Server.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RegenerateServerTokenRequest

Example

Query
mutation RegenerateOnSiteServerAccessToken($input: RegenerateServerTokenRequest) {
  regenerateOnSiteServerAccessToken(input: $input) {
    message
  }
}
Variables
{"input": RegenerateServerTokenRequest}
Response
{
  "data": {
    "regenerateOnSiteServerAccessToken": {
      "message": "Response message containing results of API request"
    }
  }
}

regenerateServerApiAccessToken

Description

regenerateServerApiAccessToken will attempt to regenerate an API Access Token for an On-Site Server.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RegenerateServerApiAccessTokenRequest

Example

Query
mutation RegenerateServerApiAccessToken($input: RegenerateServerApiAccessTokenRequest) {
  regenerateServerApiAccessToken(input: $input) {
    message
  }
}
Variables
{"input": RegenerateServerApiAccessTokenRequest}
Response
{
  "data": {
    "regenerateServerApiAccessToken": {
      "message": "Response message containing results of API request"
    }
  }
}

removeCardReader

Description

removeCardReader will attempt to remove an existing Card Reader record from the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RemoveCardReaderRequest

Example

Query
mutation RemoveCardReader($input: RemoveCardReaderRequest) {
  removeCardReader(input: $input) {
    message
  }
}
Variables
{"input": RemoveCardReaderRequest}
Response
{
  "data": {
    "removeCardReader": {
      "message": "Response message containing results of API request"
    }
  }
}

removeOnSiteServer

Description

removeOnSiteServer will attempt to remove an existing On-Site Server record within the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RemoveOnSiteServerRequest

Example

Query
mutation RemoveOnSiteServer($input: RemoveOnSiteServerRequest) {
  removeOnSiteServer(input: $input) {
    message
  }
}
Variables
{"input": RemoveOnSiteServerRequest}
Response
{
  "data": {
    "removeOnSiteServer": {
      "message": "Response message containing results of API request"
    }
  }
}

removeTabletUser

Description

removeTabletUser will attempt to delete a Tablet User account for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RemoveTabletUserRequest

Example

Query
mutation RemoveTabletUser($input: RemoveTabletUserRequest) {
  removeTabletUser(input: $input) {
    message
  }
}
Variables
{"input": RemoveTabletUserRequest}
Response
{
  "data": {
    "removeTabletUser": {
      "message": "Response message containing results of API request"
    }
  }
}

removeUserProfilePicture

Description

removeUserProfilePicture will attempt to remove the Profile Picture for a specified Access User record of an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - RemoveUserProfilePictureRequest

Example

Query
mutation RemoveUserProfilePicture($input: RemoveUserProfilePictureRequest) {
  removeUserProfilePicture(input: $input) {
    message
  }
}
Variables
{"input": RemoveUserProfilePictureRequest}
Response
{
  "data": {
    "removeUserProfilePicture": {
      "message": "Response message containing results of API request"
    }
  }
}

updateAccessLevel

Description

updateAccessLevel will attempt to update an Existing AccessLevel record in the Cloud DB to set an updated description field for the usage of the Access Level.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateAccessLevelRequest

Example

Query
mutation UpdateAccessLevel($input: UpdateAccessLevelRequest) {
  updateAccessLevel(input: $input) {
    message
  }
}
Variables
{"input": UpdateAccessLevelRequest}
Response
{
  "data": {
    "updateAccessLevel": {
      "message": "Response message containing results of API request"
    }
  }
}

updateAccessUserDetails

Description

updateAccessUserDetails will attempt to update an existing AccessUser record within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateAccessUserDetailsRequest

Example

Query
mutation UpdateAccessUserDetails($input: UpdateAccessUserDetailsRequest) {
  updateAccessUserDetails(input: $input) {
    message
  }
}
Variables
{"input": UpdateAccessUserDetailsRequest}
Response
{
  "data": {
    "updateAccessUserDetails": {
      "message": "Response message containing results of API request"
    }
  }
}

updateCamera

Description

updateCamera will attempt to update the details of an ANPR Camera for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateCameraRequest

Example

Query
mutation UpdateCamera($input: UpdateCameraRequest) {
  updateCamera(input: $input) {
    message
  }
}
Variables
{"input": UpdateCameraRequest}
Response
{
  "data": {
    "updateCamera": {
      "message": "Response message containing results of API request"
    }
  }
}

updateCameraServer

Description

updateCameraServer will attempt to update the details of an ANPR Camera Server for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateCameraServerRequest

Example

Query
mutation UpdateCameraServer($input: UpdateCameraServerRequest) {
  updateCameraServer(input: $input) {
    message
  }
}
Variables
{"input": UpdateCameraServerRequest}
Response
{
  "data": {
    "updateCameraServer": {
      "message": "Response message containing results of API request"
    }
  }
}

updateCardReader

Description

updateCardReader will attempt to update an existing Card Reader record from the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateCardReaderRequest

Example

Query
mutation UpdateCardReader($input: UpdateCardReaderRequest) {
  updateCardReader(input: $input) {
    message
  }
}
Variables
{"input": UpdateCardReaderRequest}
Response
{
  "data": {
    "updateCardReader": {
      "message": "Response message containing results of API request"
    }
  }
}

updateExistingSite

Description

updateExistingSite will attempt to update an existing Site record within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateSiteRequest

Example

Query
mutation UpdateExistingSite($input: UpdateSiteRequest) {
  updateExistingSite(input: $input) {
    message
  }
}
Variables
{"input": UpdateSiteRequest}
Response
{
  "data": {
    "updateExistingSite": {
      "message": "Response message containing results of API request"
    }
  }
}

updateOnSiteServer

Description

updateOnSiteServer will attempt to update an existing On-Site Server record within the Cloud DB.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateOnSiteServerRequest

Example

Query
mutation UpdateOnSiteServer($input: UpdateOnSiteServerRequest) {
  updateOnSiteServer(input: $input) {
    message
  }
}
Variables
{"input": UpdateOnSiteServerRequest}
Response
{
  "data": {
    "updateOnSiteServer": {
      "message": "Response message containing results of API request"
    }
  }
}

updateOrgAccessZones

Description

updateOrgAccessZones will attempt to update an Organisation list of available Access Zones. Please note that this endpoint will add any new items to the existing list of Access Zones for the Organisation, and will not overwrite any existing values. Please provide only new Access Zone values with a request.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateOrgAccessZonesRequest

Example

Query
mutation UpdateOrgAccessZones($input: UpdateOrgAccessZonesRequest) {
  updateOrgAccessZones(input: $input) {
    message
  }
}
Variables
{"input": UpdateOrgAccessZonesRequest}
Response
{
  "data": {
    "updateOrgAccessZones": {
      "message": "Response message containing results of API request"
    }
  }
}

updateTabletUserDetails

Description

updateTabletUserDetails will attempt to update an existing Tablet App user in the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateTabletUserDetailsRequest

Example

Query
mutation UpdateTabletUserDetails($input: UpdateTabletUserDetailsRequest) {
  updateTabletUserDetails(input: $input) {
    message
  }
}
Variables
{"input": UpdateTabletUserDetailsRequest}
Response
{
  "data": {
    "updateTabletUserDetails": {
      "message": "Response message containing results of API request"
    }
  }
}

updateTabletUserPassword

Description

updateTabletUserPassword will attempt to update an existing Tablet App user's password in the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateTabletUserPasswordRequest

Example

Query
mutation UpdateTabletUserPassword($input: UpdateTabletUserPasswordRequest) {
  updateTabletUserPassword(input: $input) {
    message
  }
}
Variables
{"input": UpdateTabletUserPasswordRequest}
Response
{
  "data": {
    "updateTabletUserPassword": {
      "message": "Response message containing results of API request"
    }
  }
}

updateUserPassAccessPermissions

Description

updateUserPassAccessPermissions will attempt to update an existing UserPassAccessPermissions within the Cloud DB for an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateUserPassAccessPermissionsRequest

Example

Query
mutation UpdateUserPassAccessPermissions($input: UpdateUserPassAccessPermissionsRequest) {
  updateUserPassAccessPermissions(input: $input) {
    message
  }
}
Variables
{"input": UpdateUserPassAccessPermissionsRequest}
Response
{
  "data": {
    "updateUserPassAccessPermissions": {
      "message": "Response message containing results of API request"
    }
  }
}

updateUserProfilePicture

Description

updateUserProfilePicture will attempt to update the Profile Picture for a specified Access User record of an Organisation.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateUserProfilePictureRequest

Example

Query
mutation UpdateUserProfilePicture($input: UpdateUserProfilePictureRequest) {
  updateUserProfilePicture(input: $input) {
    message
  }
}
Variables
{"input": UpdateUserProfilePictureRequest}
Response
{
  "data": {
    "updateUserProfilePicture": {
      "message": "Response message containing results of API request"
    }
  }
}

updateUserProfilePictureForTablet

Description

updateUserProfilePictureForTablet will attempt to update the Profile Picture for a specified Access User record of an Organisation from the Tablet app.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UpdateUserProfilePictureForTabletRequest

Example

Query
mutation UpdateUserProfilePictureForTablet($input: UpdateUserProfilePictureForTabletRequest) {
  updateUserProfilePictureForTablet(input: $input) {
    message
  }
}
Variables
{"input": UpdateUserProfilePictureForTabletRequest}
Response
{
  "data": {
    "updateUserProfilePictureForTablet": {
      "message": "Response message containing results of API request"
    }
  }
}

uploadCarParkSettingsForSite

Description

uploadCarParkSettingsForSite will attempt to upload new Car Park settings for an Organisation's Site.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UploadCarParkSettingsForSiteRequest

Example

Query
mutation UploadCarParkSettingsForSite($input: UploadCarParkSettingsForSiteRequest) {
  uploadCarParkSettingsForSite(input: $input) {
    message
  }
}
Variables
{"input": UploadCarParkSettingsForSiteRequest}
Response
{
  "data": {
    "uploadCarParkSettingsForSite": {
      "message": "Response message containing results of API request"
    }
  }
}

uploadOrgPurchaseOrderNumber

Description

uploadOrgPurchaseOrderNumber will attempt to upload a new Purchase Order Number for including within an Organisation's Invoices.

Response

Returns a ResponseMessage!

Arguments
Name Description
input - UploadOrgPurchaseOrderNumberRequest

Example

Query
mutation UploadOrgPurchaseOrderNumber($input: UploadOrgPurchaseOrderNumberRequest) {
  uploadOrgPurchaseOrderNumber(input: $input) {
    message
  }
}
Variables
{"input": UploadOrgPurchaseOrderNumberRequest}
Response
{
  "data": {
    "uploadOrgPurchaseOrderNumber": {
      "message": "Response message containing results of API request"
    }
  }
}

uploadProfilePictureCSV

Description

uploadProfilePictureCSV will attempt to handle a CSV file upload of Profile Picture records for uploading to the Cloud DB. Please note that there is a 32mb limit on CSV files, this will result in a maximum cap of around 213 profile pictures which can be uploaded in a single CSV (presuming all images are based on the max image size of 150kb). If the base64 images are smaller than 150kb, you will be able to upload more than 213 records per CSV.

Response

Returns an UploadPictureCSVResponse!

Arguments
Name Description
input - UploadPictureCSV

Example

Query
mutation UploadProfilePictureCSV($input: UploadPictureCSV) {
  uploadProfilePictureCSV(input: $input) {
    message
    batchID
  }
}
Variables
{"input": UploadPictureCSV}
Response
{
  "data": {
    "uploadProfilePictureCSV": {
      "message": "Response message containing results of API request",
      "batchID": "xyz789"
    }
  }
}

uploadUserAccessCSV

Description

uploadUserAccessCSV will attempt to handle a CSV file upload of User Access records for upserting to the Cloud DB. Please note that this endpoint will update any existing User Access records when a match is found on a provided Serial Number field, else this endpoint will create a new User Access record. Please note that when updating an existing record, all values should be populated as this will overwrite the existing details.

Response

Returns an UploadUserAccessCSVResponse!

Arguments
Name Description
input - UploadUserAccessCSV

Example

Query
mutation UploadUserAccessCSV($input: UploadUserAccessCSV) {
  uploadUserAccessCSV(input: $input) {
    message
    batchID
  }
}
Variables
{"input": UploadUserAccessCSV}
Response
{
  "data": {
    "uploadUserAccessCSV": {
      "message": "Response message containing results of API request",
      "batchID": "abc123"
    }
  }
}

Types

AccessLevel

Description

AccessLevel will control the structure of an AccessLevel record in the Cloud DB.

Fields
Field Name Description
title - String! The title of the Access Level record.
description - String! A description to explain the usage of an Access Level within the platform.
created - Time! Timestamp to record when the Access Level was first created within the platform
creator - String! Email address of the user account who first created the Access Level record.
lastModified - Time! Timestamp to record when the Access Level record was last updated within the platform.
modifier - String! Email address of the user account who last update the Access Level record within the platform.
displayName - String! Human-readable Display name for the Access Level.
Example
{
  "title": "Some Title",
  "description": "Some description",
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "displayName": "xyz789"
}

AccessLog

Description

AccessLog will handle the structure of an Access Log record from the Cloud DB.

Fields
Field Name Description
accessZoneName - String! The name of the Access Zone for which the Access Log is reporting on.
dwellDuration - Int64! The time elapsed, in milliseconds, between the entry and exit swipes for an end-user at an Access Zone.
entryTime - Time! Timestamp to record when an end-user has swiped into an Access Zone.
exitTime - Time! Timestamp to record when an end-user has swiped out of an Access Zone.
externalReferenceID - String! The External Reference ID for the end-user who has scanned their pass. Please set this value to the unique customer ID in your external systems.
firstName - String! The First Name of the end-user. Please note that this will be set to an Empty String ('') if the Organisation does not set this value as part of the User Access record.
lastName - String! The Last Name of the end-user. Please note that this will be set to an Empty String ('') if the Organisation does not set this value as part of the User Access record.
serialNumber - String! The unique Serial Number of the end-user's pass.
siteID - String! The ID of the Site where the Access Log was generated.
uploaded - Boolean! Boolean flag to record whether an Access Log record has been uploaded to the Cloud. This value will be overwritten by the cloud endpoint before inserting Access Log to database.
uploadedTimestamp - Time! Timestamp to record when an Access Log record was uploaded to the Cloud. This value will be overwritten by the cloud endpoint before inserting Access Log to database.
Example
{
  "accessZoneName": "abc123",
  "dwellDuration": Int64,
  "entryTime": "2024-03-23T17:21:00Z",
  "exitTime": "2024-03-23T17:21:00Z",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "xyz789",
  "lastName": "abc123",
  "serialNumber": "110100000001",
  "siteID": "xyz789",
  "uploaded": false,
  "uploadedTimestamp": "2024-03-23T17:21:00Z"
}

AccessUser

Description

AccessUser will handle the structure of an access record for an end-user account.

Fields
Field Name Description
accountID - String Optional Account ID field to record the end-users account details against their AccessUser record for reporting purposes (EG Membership Number, Account Number, etc). This value may be left blank if not required by Organisation.
created - Time! Created timestamp of when the AccessUser record was first registered within the platform.
creator - String! The email address of the system user who first created the AccessUser record within the platform.
dateOfBirth - String Optional field to record the end-users date of birth against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
externalReferenceID - String! Field to record the end-users External Reference ID against their AccessUser record for reporting purposes. If set, this value will represent the unique Customer ID value as defined by your organisations external system.
firstName - String! Field to record the end-users first name against their AccessUser record for reporting purposes.
homeSite - String Optional field to record the end-users home site against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation. If setting this value, this will be verified against Site ID values configured for the Organisation.
latestJoinDate - String Optional field to record the end-users Latest Join Date against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
lastModified - Time Last Modified timestamp of when the AccessUser record was last updated within the platform.
lastName - String! Field to record the end-users last name against their AccessUser record for reporting purposes.
lastImageSyncTimestamp - Time Optional field to record when the record last synced the most recent profile picture for the AccessUser record.
lastPictureNotification - Time Optional field to record when the last profile picture notification was sent for the AccessUser record.
modifier - String! The email address of the system user who last modified the AccessUser record within the platform.
packageName - String Optional field to record the end-users package name against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
packageCategory - String Optional field to record the end-users package category against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
phoneNumber - String Optional field to record the end-users phone number against their AccessUser record. This value may be left blank if not required by Organisation.
emailAddress - String Optional field to record the end-users email address against their AccessUser record. This value may be left blank if not required by Organisation.
postCode - String Optional field to record the end-users post code against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
hasProfilePicture - Boolean Optional field for recording a if a User Pass record has a Profile Picture. This will be used to display a profile picture against an end-user within the Tablet Application. Please note that there is a 150kb max size limit on profile pictures.
serialNumberList - [String] The list of unique serial number generated for one or more user-pass(s) which relates to their AccessUser record.
serialNumberIntList - [Int] The list of unique serial number generated for one or more user-pass(s) which has been converted to an integer. This value is used by systems with variable card number lengths.
serialNumberDetails - [SerialNumberDetails!]! The list of details of the end-users associated passes.
Example
{
  "accountID": "abc123",
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "dateOfBirth": "xyz789",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "abc123",
  "homeSite": "xyz789",
  "latestJoinDate": "abc123",
  "lastModified": "2024-03-23T17:21:00Z",
  "lastName": "xyz789",
  "lastImageSyncTimestamp": "2024-03-23T17:21:00Z",
  "lastPictureNotification": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "packageName": "xyz789",
  "packageCategory": "xyz789",
  "phoneNumber": "abc123",
  "emailAddress": "example@email.com",
  "postCode": "xyz789",
  "hasProfilePicture": true,
  "serialNumberList": ["xyz789"],
  "serialNumberIntList": [42],
  "serialNumberDetails": [SerialNumberDetails]
}

BatchPictureRequest

Description

BatchPictureRequest will control the structure of a BatchPictureRequest from the Cloud DB.

Fields
Field Name Description
batchCount - Int! Count of items included in batch request.
failureResults - String! URL of CSV results file for failed items within batch.
failureCount - Int! Count of failure items within batch.
jobIssuer - String! Email address of the user account which issued the batch.
status - String! Current status of the batch request, EG: 'in-progress' or 'completed'
successCount - Int! Count of success items within batch.
successResults - String! URL of CSV results file for success items within batch.
emailAddresses - [String!]! Email Address list for sending results via email.
uploadTimestamp - Time Timestamp of when the batch request was uploaded to the system.
Example
{
  "batchCount": 10,
  "failureResults": "https://www.somelinktofile.com/",
  "failureCount": 1,
  "jobIssuer": "example@email.com",
  "status": "active",
  "successCount": 9,
  "successResults": "https://www.somelinktofile.com/",
  "emailAddresses": ["abc123"],
  "uploadTimestamp": "2024-03-23T17:21:00Z"
}

BatchRequest

Description

BatchRequest will control the structure of a BatchRequest from the Cloud DB.

Fields
Field Name Description
batchCount - Int! Count of items included in batch request.
failureResults - String! URL of CSV results file for failed items within batch.
failureCount - Int! Count of failure items within batch.
jobIssuer - String! Email address of the user account which issued the batch.
status - String! Current status of the batch request, EG: 'in-progress' or 'completed'
successCount - Int! Count of success items within batch.
successResults - String! URL of CSV results file for success items within batch.
type - String! Type of batch request, EG: 'BatchUserAccessUpload'
emailAddresses - [String!]! Email Address list for sending results via email.
uploadTimestamp - Time Timestamp of when the batch request was uploaded to the system.
Example
{
  "batchCount": 10,
  "failureResults": "https://www.somelinktofile.com/",
  "failureCount": 1,
  "jobIssuer": "example@email.com",
  "status": "active",
  "successCount": 9,
  "successResults": "https://www.somelinktofile.com/",
  "type": "Some type",
  "emailAddresses": ["xyz789"],
  "uploadTimestamp": "2024-03-23T17:21:00Z"
}

Boolean

Description

The Boolean scalar type represents true or false.

Camera

Description

Camera will control the response structure when searching for an Organisation's ANPR Camera record.

Fields
Field Name Description
created - Time! Timestamp of when the ANPR Camera record was first created within the platform.
creator - String! The email address of the system user which first created the ANPR Camera within the platform.
direction - String! The gate direction in which the ANPR Camera is setup on-site.
serial - String! MAC Address of the On-Site ANPR Camera recorded in DB.
title - String! The name of the On-Site ANPR Camera recorded in the Cloud DB.
lastModified - Time! Timestamp of when the ANPR Camera record was last updated within the platform.
modifier - String! The email address of the system user which last modified the ANPR Camera within the platform.
siteID - String! The ID of the Site where the On-Site ANPR Camera is located.
Example
{
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "direction": "xyz789",
  "serial": "abc123",
  "title": "Some Title",
  "lastModified": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "siteID": "abc123"
}

CameraServer

Description

CameraServer will control the response structure when searching for an Organisation's ANPR Camera Server record.

Fields
Field Name Description
accessToken - String! The JWT Access Token for the On-Site ANPR Camera Server record to communicate with the Cloud.
apiAccessToken - String! The API Access Token for the On-Site Server ANPR Camera Server to verify API requests against.
created - Time! Timestamp of when the ANPR Camera Server record was first created within the platform.
creator - String! The email address of the system user which first created the ANPR Camera Server within the platform.
ipAddress - String IP Address of the On-Site ANPR Camera Server on the local network.
lastHealthCheck - Time Timestamp to record when an On-Site ANPR Camera Server last reported a successful health check to the Cloud.
lastModified - Time! Timestamp of when the ANPR Camera Server record was last updated within the platform.
lastReportedVersion - String The version number of the application which the ANPR Camera Server is currently running.
modifier - String! The email address of the system user which last modified the ANPR Camera Server within the platform.
siteID - String! The ID of the Site where the On-Site ANPR Camera Server is located.
title - String! The name of the On-Site ANPR Camera Server recorded in the Cloud DB.
Example
{
  "accessToken": "xyz789",
  "apiAccessToken": "abc123",
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "ipAddress": "abc123",
  "lastHealthCheck": "2024-03-23T17:21:00Z",
  "lastModified": "2024-03-23T17:21:00Z",
  "lastReportedVersion": "abc123",
  "modifier": "example@email.com",
  "siteID": "xyz789",
  "title": "Some Title"
}

CarParkSettings

Description

CarParkSettings will handle the structure of a Car Park settings record for a specified Site with the platform.

Fields
Field Name Description
created - Time! Created timestamp of when the Car Park settings where first configured within the platform for the specified Site.
creator - String! The email address of the system user who first configured the Car Park settings for the specified Site.
lastModified - Time! Last Modified timestamp of when the Car Park settings where last updated for the specified Site.
modifier - String! The email address of the system user who last modified the Car Park settings within the platform for the specified Site.
carParkTimeLimit - Int! The number of minutes that a vehicle is allowed to park for free in the car park for the specified site.
maximumCarParkSpaces - Int! The total number of car parking spaces located with the car park for the specified Site.
parkingNotificationEmailAddresses - [String!]! Array of email addresses for sending out parking notifications when a vehicle has exceeded the free Car Parking Time Limit. Please note that there is a maximum limit of 10 email addresses that can be configured for this.
Example
{
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "carParkTimeLimit": 42,
  "maximumCarParkSpaces": 42,
  "parkingNotificationEmailAddresses": [
    "abc123"
  ]
}

CreateAccessLevelRequest

Description

CreateAccessLevelRequest will control the input structure for requesting to create a new AccessLevel record for an Organisation.

Fields
Input Field Description
title - String! Title of the AccessLevel record to be created in the Cloud DB.
description - String! Description of the usage of an AccessLevel record within the platform.
displayName - String! Human-readable Display name for the Access Level.
Example
{
  "title": "Some Title",
  "description": "Some description",
  "displayName": "abc123"
}

CreateAccessUserRequest

Description

CreateAccessUserRequest will handle the input structure for creating a new AccessUser record for an organisation.

Fields
Input Field Description
accountID - String Optional Account ID field to record the end-users account details against their AccessUser record for reporting purposes (EG Membership Number, Account Number, etc). This value may be left blank if not required by Organisation.
dateOfBirth - String Optional field to record the end-users date of birth against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
externalReferenceID - String! Field to record the end-users External Reference ID against their AccessUser record for reporting purposes. This value will represent the unique Customer ID value as defined by your organisations external system.
firstName - String Optional field to record the end-users first name against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
homeSite - String Optional field to record the end-users home site against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation. If setting this value, this will be verified against Site ID values configured for the Organisation.
latestJoinDate - String Optional field to record the end-users Latest Join Date against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
lastName - String Optional field to record the end-users last name against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
packageName - String Optional field to record the end-users package name against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
packageCategory - String Optional field to record the end-users package category against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
phoneNumber - String Optional field to record the end-users phone number against their AccessUser record. This value may be left blank if not required by Organisation.
emailAddress - String Optional field to record the end-users email address against their AccessUser record. This value may be left blank if not required by Organisation.
postCode - String Optional field to record the end-users post code against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
Example
{
  "accountID": "xyz789",
  "dateOfBirth": "xyz789",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "abc123",
  "homeSite": "xyz789",
  "latestJoinDate": "abc123",
  "lastName": "abc123",
  "packageName": "abc123",
  "packageCategory": "xyz789",
  "phoneNumber": "xyz789",
  "emailAddress": "example@email.com",
  "postCode": "abc123"
}

CreateCameraRequest

Description

CreateCameraRequest will handle the input structure for requesting to create new ANPR Camera for an Organisation.

Fields
Input Field Description
title - String! The unique title associated with the Organisation's new ANPR Camera.
direction - String! The car park barrier direction for which the new ANPR camera will monitor (EG entry / exit).
serial - String! The unique serial number (same as mac address) of the new ANPR Camera.
siteID - String! The ID of the Site where the new ANPR Camera will be located.
Example
{
  "title": "Some Title",
  "direction": "xyz789",
  "serial": "xyz789",
  "siteID": "abc123"
}

CreateCameraServerRequest

Description

CreateCameraServerRequest will handle the input structure for requesting to create new ANPR Camera Server for an Organisation.

Fields
Input Field Description
cameraServerName - String! A title for the new ANPR Camera Server record to be created for an Organisation.
ipAddress - String Optional value to set the IP Address for the On-Site Camera Server record. If this value is not known at creation time, then please omit the value from the request and update once the camera server is setup.
siteID - String! The ID of the Site where the new ANPR Camera Server will be located.
Example
{
  "cameraServerName": "xyz789",
  "ipAddress": "abc123",
  "siteID": "abc123"
}

CreateCardReaderRequest

Description

CreateCardReaderRequest will handle the input values for creating a new Card Reader for an Organisation.

Fields
Input Field Description
accessZoneName - String! The name of the Access Zone which the Reader should be associated with at a particular site.
direction - String! The direction of swipe events associated with the Reader record (EG entry or exit).
pulseTime - Int! The number of seconds for which the Reader should trigger the relay to stay open for when a successful swipe event occurs.
readerName - String! The title of the new Reader record to be created for an Organisation.
siteID - String! The ID of the Site which the new Reader record should be associated with.
Example
{
  "accessZoneName": "abc123",
  "direction": "xyz789",
  "pulseTime": 42,
  "readerName": "xyz789",
  "siteID": "abc123"
}

CreateOnSiteServerRequest

Description

CreateOnSiteServerRequest will handle the input values for creating a new On-Site Server for an Organisation.

Fields
Input Field Description
serverName - String! The title of the new On-Site Server record to be created for an Organisation.
siteID - String! The ID of the Site which the new Reader record should be associated with.
serverMode - String! The mode value to control how the On-Site Server will communicate with Card Readers. Available options are nortech_rs232, usb and ethernet for now.
ipAddress - String Optional value to set the IP Address for the On-Site Server record. Please note that this value will be used to allow the tablet application to communicate with the server on site. If this value is not known at creation time, then please omit the value from the request and update once the server is setup.
Example
{
  "serverName": "xyz789",
  "siteID": "abc123",
  "serverMode": "abc123",
  "ipAddress": "abc123"
}

CreateSiteRequest

Description

CreateSiteRequest will handle the input structure for requesting that a new Site is created for an organisation.

Fields
Input Field Description
siteAccessZones - Map! A map of the Access Zones situated within the new site. This will contain the configuration details for each access zone.
id - String! The ID of the new Site to be created. Please note that once set, this value cannot be updated.
displayName - String! Display name of the new site to be created. Please note that this value must be unique amongst organisation Sites, and this value can be updated at any time.
isAccessControlEnabled - Boolean! Flag to record whether a Site record is setup to accept access control events at the Site. When set to true, the Site will be enabled for configuring Access Zones, and will also be enabled in monthly billing. Please note that if this value is set to false, the system will reject configured Access Zones for the site and the site will also not be included in monthly billing.
isAnprEnabled - Boolean! Flag to record whether a Site record is setup to accept ANPR events at the Site. When set to true, the Site will be enabled for configuring ANPR Settings, and will also be enabled in monthly billing. Please note that if this value is set to false, the site will not be included in monthly billing for ANPR.
Example
{
  "siteAccessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "id": "some-id",
  "displayName": "abc123",
  "isAccessControlEnabled": true,
  "isAnprEnabled": false
}

CreateTabletUserRequest

Description

CreateTabletUserRequest will handle the input structure for creating a new tablet app user for an Organisation's Site.

Fields
Input Field Description
username - String! The username of the tablet app user. This will be used for logging into the Breezin Tablet Application.
siteID - String! The ID of the Site which the tablet app user will be associated with.
emailAddress - String! Email Address to be associated with the Tablet User account. Please note that this email will be used for receiving initial login password for Tablet User, and for any reset password operations on the account.
Example
{
  "username": "abc123",
  "siteID": "abc123",
  "emailAddress": "example@email.com"
}

CreateUserAccessRequest

Description

CreateUserAccessRequest will handle the input structure for creating a new User Access record for an organisation.

Fields
Input Field Description
accessZones - Map! A Map of access zones for the UserAccess record to grant / deny the end-user access. Please note that setting 'all' within the Readers / AccessLevels lists will grant the user access record access to all sites / readers. If reader verification is not required (EG Nortech panel use-case) then you may omit this value from the request. AccessLevels may also be omitted from the request if the user should not be granted entry at any site.
accountID - String! Optional Account ID field to record the end-users account details against their UserAccess record for reporting purposes (EG Membership Number, Account Number, etc). If this value is not required, then please provide this as an empty string.
activationDate - Time Optional activation date to allow you to specify what point in time should the UserAccess record should be granted access to your facilities. Please omit this value from the request if you do not wish to set an activation time for the User Access record (EG access granted immediately).
dateOfBirth - String! Optional field to record the end-users Date of Birth against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string.
expiryDate - Time Optional expiry date to allow you to automatically revoke access from the UserAccess record after a specific point in time. Please omit this value from the request if you do not wish to set an expiry time for the User Access record.
externalReferenceID - String! Required field to record the end-users External Reference ID against their UserAccess record for reporting purposes. This value should be set to the Unique ID of the user within your external system.
firstName - String! Optional field to record the end-users first name against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string.
homeSite - String! Optional field to record the end-users Home Site against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string. If setting this value, this will be verified against Site ID values configured for the Organisation.
latestJoinDate - String! Optional field to record the end-users Latest Join Date against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string.
lastName - String! Optional field to record the end-users last name against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string.
packageName - String! Optional field to record the end-users Package against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string.
packageCategory - String! Optional field to record the end-users package category against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string.
passType - String! Field to record the type of pass associated with this User Access record. This value can be set to 'digital', 'plastic', 'band' or 'card'.
postCode - String! Optional field to record the end-users post code against their UserAccess record for reporting purposes. If this value is not required, then please provide this as an empty string.
profilePicture - String Optional field for recording a Profile Picture against a User Access record. This will be used to display a profile picture against an end-user within the Tablet Application. Please note that there is a 150kb max size limit on profile pictures. If pictures are not required, then you may omit this value from the request, or set to an empty string ('').
serialNumber - String! The unique serial number of the end-users pass which should be related to the new UserAccess record.
allowedSites - [String] Optional whitelist to restrict user access to particular sites. Please note that if these restrictions are not required, then you can omit the value from the request, set to an empty array ([]) or set to all access (['all']). If setting this value, please provide the Site ID value which matches an existing Organisation Site record.
Example
{
  "accessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "accountID": "abc123",
  "activationDate": "2024-03-23T17:21:00Z",
  "dateOfBirth": "abc123",
  "expiryDate": "2024-03-23T17:21:00Z",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "abc123",
  "homeSite": "xyz789",
  "latestJoinDate": "xyz789",
  "lastName": "abc123",
  "packageName": "xyz789",
  "packageCategory": "xyz789",
  "passType": "abc123",
  "postCode": "xyz789",
  "profilePicture": "abc123",
  "serialNumber": "110100000001",
  "allowedSites": ["abc123"]
}

CreateUserPassRequest

Description

CreateUserPassRequest will handle the input structure for creating a new User Pass record for an organisation.

Fields
Input Field Description
accessZones - Map! A Map of access zones for the UserPass record to grant / deny the end-user access. Please note that setting 'all' within the Readers / AccessLevels lists will grant the UserPass record access to all sites / readers. If reader verification is not required (EG Nortech panel use-case) then you may omit this value from the request. AccessLevels may also be omitted from the request if the user should not be granted entry at any site.
activationDate - Time Optional activation date to allow you to specify what point in time should the UserPass record should be granted access to your facilities. Please omit this value from the request if you do not wish to set an activation time for the User Access record (EG access granted immediately).
expiryDate - Time Optional expiry date to allow you to automatically revoke access from the UserPass record after a specific point in time. Please omit this value from the request if you do not wish to set an expiry time for the User Access record.
externalReferenceID - String! Required field to record the end-users External Reference ID against their UserPass record for reporting purposes. This value should be set to the Unique ID of the user within your external system.
passType - String! Field to record the type of pass associated with this UserPass record. This value can be set to 'digital', 'plastic', 'band' or 'card'.
serialNumber - String! The unique serial number of the end-users pass which should be related to the new UserPass record.
allowedSites - [String] Optional whitelist to restrict user access to particular sites. Please note that if these restrictions are not required, then you can omit the value from the request, set to an empty array ([]) or set to all access (['all']). If setting this value, please provide the Site ID value which matches an existing Organisation Site record.
Example
{
  "accessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "activationDate": "2024-03-23T17:21:00Z",
  "expiryDate": "2024-03-23T17:21:00Z",
  "externalReferenceID": "ab12cd34ef56",
  "passType": "abc123",
  "serialNumber": "110100000001",
  "allowedSites": ["abc123"]
}

DetailedReaderError

Description

DetailedReaderError will control the structure of a specific error reported by a Card Reader instance.

Fields
Field Name Description
timestamp - Time! Timestamp of when the error occurred on the Card Reader instance.
errorCode - String! Error code reported by the Card Reader instance.
errorReason - String The related error message based on the error code reported by the Card Reader instance.
Example
{
  "timestamp": "2024-03-23T17:21:00Z",
  "errorCode": "abc123",
  "errorReason": "xyz789"
}

ExpireUserAccessRequest

Description

ExpireUserAccessRequest will handle the input structure for requesting an expiry timestamp is applied to an User Access record.

Fields
Input Field Description
expiryDate - Time! The timestamp of when the user access record should be expired. If the record should be expired immediately then please set this value to current time, or a timestamp slightly earlier than current time.
serialNumber - String! The Serial Number associated with the User Access record to be updated with the provided expiry date.
Example
{
  "expiryDate": "2024-03-23T17:21:00Z",
  "serialNumber": "110100000001"
}

ExpireUserPassRequest

Description

ExpireUserPassRequest will handle the input structure for requesting an expiry timestamp is applied to an User Pass record.

Fields
Input Field Description
expiryDate - Time! The timestamp of when the user pass record should be expired. If the record should be expired immediately then please set this value to current time, or a timestamp slightly earlier than current time.
serialNumber - String! The Serial Number associated with the User Pass record to be updated with the provided expiry date.
Example
{
  "expiryDate": "2024-03-23T17:21:00Z",
  "serialNumber": "110100000001"
}

FetchAccessUserBySerialRequest

Description

FetchAccessUserBySerialRequest will handle the input structure for attempting to retrieve a AccessUser record which has a UserPass that matches on a provided serial number.

Fields
Input Field Description
serialNumber - String! The unique serial number of the end-users UserPass which is allocated to a AccessUser record that should be fetched from the Cloud DB.
Example
{"serialNumber": "110100000001"}

FetchBatchRequestByIdRequest

Description

FetchBatchRequestByIdRequest will control the input structure when requesting to fetch a BatchRequest from the Cloud DB.

Fields
Input Field Description
batchID - String! Unique ID of the BatchRequest to fetch from the Cloud DB.
Example
{"batchID": "abc123"}

FetchCarParkSettingsForSiteRequest

Description

FetchCarParkSettingsForSiteRequest will handle the input structure for requesting to fetch the Car Park settings configured for an Organisation's Site.

Fields
Input Field Description
siteID - String! The ID of the Site where the new ANPR Camera Server will be located.
Example
{"siteID": "xyz789"}

FetchPaginatedAccessUsersRequest

Description

FetchPaginatedAccessUsersRequest will handle the input structure for attempting to retrieve a paginated list of AccessUser records for an organisation.

Fields
Input Field Description
startTime - Time! Start Time timestamp for filtering DB records. This value will be compared against the LastModified timestamp of the AccessUser records and the query will return any records updated after this point in time.
endTime - Time! End Time timestamp for filtering DB records. This value will be compared against the LastModified timestamp of the AccessUser records and the query will return any records updated before this point in time.
packageName - String Optional Package Name value for filtering DB records. If this is not required, then please set the value to an empty string ('') or to 'all'.
homeSite - String Optional Home Site value for filtering DB records. If this is not required, then please set the value to an empty string ('') or to 'all'.
lastDocID - String Last Doc ID value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastDocID value returned from the previous call.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastModifiedTimestamp value returned from the previous call.
batchSize - Int! Batch size value to control the number of records returned in the pagination batch.
Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "packageName": "xyz789",
  "homeSite": "abc123",
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z",
  "batchSize": 10
}

FetchPaginatedCardReaderErrorsRequest

Description

FetchPaginatedCardReaderErrorsRequest will control the input structure of a request to retrieve a paginated list of Card Reader errors.

Fields
Input Field Description
readerTitle - String! The title of the Card Reader instance to retrieve a paginated list of errors.
lastDocID - String Last Doc ID value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastDocID value returned from the previous call.
lastUploadTimestamp - Time Last Upload Timestamp value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastUploadTimestamp value returned from the previous call.
batchSize - Int! Batch size value to control the number of records returned in the pagination batch.
Example
{
  "readerTitle": "abc123",
  "lastDocID": "some-doc-id",
  "lastUploadTimestamp": "2024-03-23T17:21:00Z",
  "batchSize": 10
}

FetchPaginatedCardReaderErrorsResponse

Description

FetchPaginatedCardReaderErrorsResponse will control the structure of the response when a request is received to fetch a paginated list of Card Reader errors.

Fields
Field Name Description
readerErrors - [DetailedReaderError!]! Paginated list of Errors reported by the Card Reader instance.
lastUploadTimestamp - Time LastUploadTimestamp of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String LastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
Example
{
  "readerErrors": [DetailedReaderError],
  "lastUploadTimestamp": "2024-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

FetchPaginatedSitesRequest

Description

FetchPaginatedSitesRequest will handle the input structure for requesting a paginated list of Sites for an organisation.

Fields
Input Field Description
startTime - Time! Start time for pagination filtering. This will be compared against the LastModified timestamp of a Site record and will be used to return any sites updates after the specified start time. If you are looking to fetch all records, then set Start Time to a time in the past (EG Jan 2020).
endTime - Time! End time for pagination filtering. This will be compared against the LastModified timestamp of a Site record and will be used to return any sites updates before the specified end time. If you are looking to fetch all records, then set End Time to current time / some time in the future.
batchSize - Int! Batch size for controlling the number of items which will be returned in the pagination request. EG 10
lastDocID - String The Document ID of the last Site record returned within pagination batch. If requesting the first batch, then please omit this value from request. For subsequent requests, this value should be populated with the response value from the previous call to this endpoint to ensure results are returned in the correct order.
lastModifiedTimestamp - Time The LastModified timestamp of the last Site record returned within pagination batch. If requesting the first batch, then please omit this value from request. For subsequent requests, this value should be populated with the response value from the previous call to this endpoint to ensure results are returned in the correct order.
Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "batchSize": 10,
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

FetchPaginatedUserPassRecordsRequest

Description

FetchPaginatedUserPassRecordsRequest will handle the input structure for attempting to retrieve a paginated list of UserPass records for an organisation.

Fields
Input Field Description
startTime - Time! Start Time timestamp for filtering DB records. This value will be compared against the LastModified timestamp of the UserPass records and the query will return any records updated after this point in time.
endTime - Time! End Time timestamp for filtering DB records. This value will be compared against the LastModified timestamp of the UserPass records and the query will return any records updated before this point in time.
accessLevel - String! Value to specify the AccessLevel of the User Access records to be synced from the Cloud. Please note that all can be provided when searching for users with all sites access.
lastDocID - String Last Doc ID value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastDocID value returned from the previous call.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastModifiedTimestamp value returned from the previous call.
batchSize - Int! Batch size value to control the number of records returned in the pagination batch.
Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "accessLevel": "abc123",
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z",
  "batchSize": 10
}

FetchPictureBatchRequestByIdRequest

Description

FetchPictureBatchRequestByIdRequest will control the input structure when requesting to fetch a BatchRequest from the Cloud DB.

Fields
Input Field Description
batchID - String! Unique ID of the BatchPictureRequest to fetch from the Cloud DB.
Example
{"batchID": "xyz789"}

FetchReadersByAccessZoneRequest

Description

FetchReadersByAccessZoneRequest will handle the request structure when a tablet requests a readers list assigned for a specific Access Zone.

Fields
Input Field Description
accessZones - [String!]! List of the Access Zones assigned for a User Access Record.
Example
{"accessZones": ["abc123"]}

FetchReadersByAccessZoneResponse

Description

FetchReadersByAccessZoneResponse handles the response structure when the tablet app is requesting a list of Readers assigned to a given Access Zone.

Fields
Field Name Description
cardReaderRecords - [Reader!]! Array of Readers which are assigned to a given User Access Record.
Example
{"cardReaderRecords": [Reader]}

FetchUserAccessBySerialRequest

Description

FetchUserAccessBySerialRequest will handle the input structure for attempting to retrieve a User Access record which matches on a provided serial number.

Fields
Input Field Description
serialNumber - String! The unique serial number of the end-users pass which should be fetched from the Cloud DB.
Example
{"serialNumber": "110100000001"}

FetchUserPassRecordBySerialRequest

Description

FetchUserPassRecordBySerialRequest will handle the input structure for attempting to retrieve a UserPass record which matches on a provided serial number.

Fields
Input Field Description
serialNumber - String! The unique serial number of the end-users UserPass which is allocated to a AccessUser record that should be fetched from the Cloud DB.
Example
{"serialNumber": "110100000001"}

GenerateAccessLogReportForAllSitesRequest

Description

GenerateAccessLogReportForAllSitesRequest will handle the input structure for attempting to generate Access Log reporting for all Sites.

Fields
Input Field Description
reportType - String! The type of the report to generate. Available options are: SiteDateRange, SiteDateRangeForSerialNumber, SiteDateRangeForExternalRefID, and SiteDateRangeForAccessZone.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
serialNumber - String Optional value to filter report data to a specific Serial Number for an end-users pass. Please note that this value only applies to the SiteDateRangeForSerialNumber reportType option.
externalReferenceID - String Optional value to filter report data to a specific External Reference ID for an end-users pass. Please note that this value only applies to the SiteDateRangeForExternalRefID reportType option.
accessZone - String Optional value to filter report data to a specific Access Zone. Please note that this value only applies to the SiteDateRangeForAccessZone reportType option.
Example
{
  "reportType": "xyz789",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["xyz789"],
  "serialNumber": "110100000001",
  "externalReferenceID": "ab12cd34ef56",
  "accessZone": "xyz789"
}

GenerateSiteAccessLogReportRequest

Description

GenerateSiteAccessLogReportRequest will handle the input structure for attempting to generate Access Log reporting for a specified Site.

Fields
Input Field Description
siteID - String! The ID of the Site for report generation.
reportType - String! The type of the report to generate. Available options are: SiteDateRange, SiteDateRangeForSerialNumber, SiteDateRangeForExternalRefID, and SiteDateRangeForAccessZone.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
serialNumber - String Optional value to filter report data to a specific Serial Number for an end-users pass. Please note that this value only applies to the SiteDateRangeForSerialNumber reportType option.
externalReferenceID - String Optional value to filter report data to a specific External Reference ID for an end-users pass. Please note that this value only applies to the SiteDateRangeForExternalRefID reportType option.
accessZone - String Optional value to filter report data to a specific Access Zone. Please note that this value only applies to the SiteDateRangeForAccessZone reportType option.
Example
{
  "siteID": "abc123",
  "reportType": "xyz789",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["abc123"],
  "serialNumber": "110100000001",
  "externalReferenceID": "ab12cd34ef56",
  "accessZone": "xyz789"
}

GenerateSiteSwipeLogReportRequest

Description

GenerateSiteSwipeLogReportRequest will handle the input structure for attempting to generate Swipe Log reporting for a specified Site.

Fields
Input Field Description
siteID - String! The ID of the Site for report generation.
reportType - String! The type of the report to generate. Available options are: SiteDateRange, SiteDateRangeForSerialNumber, SiteDateRangeForExternalRefID, SiteDateRangeForManualOpen, SiteDateRangeForReaderID, SiteDateRangeForAccessZone, SiteDateRangeForReaderDirection and SiteDateRangeForReentryWarning.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
accessType - String! Optional filter for filtering reports to only granted or denied swipe events. If this filter is not required, then please provide this value as an empty string (EG '') or set the value to 'all'.
serialNumber - String Optional value to filter report data to a specific Serial Number for an end-users pass. Please note that this value only applies to the SiteDateRangeForSerialNumber reportType option.
externalReferenceID - String Optional value to filter report data to a specific External Reference ID for an end-users pass. Please note that this value only applies to the SiteDateRangeForExternalRefID reportType option.
manualOpen - Boolean Optional value to filter report data to a specific Manual Open value (EG true / false). Please note that this value only applies to the SiteDateRangeForManualOpen reportType option.
readerID - String Optional value to filter report data to a specific Reader ID. Please note that this value only applies to the SiteDateRangeForReaderID reportType option.
accessZone - String Optional value to filter report data to a specific Access Zone. Please note that this value only applies to the SiteDateRangeForAccessZone reportType option.
readerDirection - String Optional value to filter report data to a specific Reader Direction (EG 'entry' or 'exit'). Please note that this value only applies to the SiteDateRangeForReaderDirection reportType option.
reentryWarning - Boolean Optional value to filter report data to a specific Re-Entry Warning value (EG true / false). Please note that this value only applies to the SiteDateRangeForReentryWarning reportType option.
Example
{
  "siteID": "xyz789",
  "reportType": "xyz789",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["xyz789"],
  "accessType": "xyz789",
  "serialNumber": "110100000001",
  "externalReferenceID": "ab12cd34ef56",
  "manualOpen": false,
  "readerID": "abc123",
  "accessZone": "xyz789",
  "readerDirection": "xyz789",
  "reentryWarning": false
}

GenerateSiteVehicleAccessLogReportRequest

Description

GenerateSiteVehicleAccessLogReportRequest will handle the input structure for attempting to generate a Vehicle Access Log report for a specified Site.

Fields
Input Field Description
siteID - String! The ID of the Site for report generation.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
registrationNumber - String Optional value to filter reports to a specific vehicle registration number. If this filter option is not required, then please omit this value from any requests.
Example
{
  "siteID": "xyz789",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["abc123"],
  "registrationNumber": "abc123"
}

GenerateSiteVehicleSwipeLogReportRequest

Description

GenerateSiteVehicleSwipeLogReportRequest will handle the input structure for attempting to generate a Vehicle Swipe Log report for a specified Site.

Fields
Input Field Description
siteID - String! The ID of the Site for report generation.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
accessLogGenerated - Boolean Optional value to filter reports to record which have been matched / unmatched for entry and exit pairs. NOTE: please set this value to false when looking for records which could not be matched. If this filter option is not required, then please omit this value from any requests.
gateDirection - String Optional value to filter reports to a specific gate direction ('entry' or 'exit'). If this filter option is not required, then please omit this value from any requests.
registrationNumber - String Optional value to filter reports to a specific vehicle registration number. If this filter option is not required, then please omit this value from any requests.
Example
{
  "siteID": "abc123",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["xyz789"],
  "accessLogGenerated": false,
  "gateDirection": "xyz789",
  "registrationNumber": "xyz789"
}

GenerateSwipeLogReportForAllSitesRequest

Description

GenerateSwipeLogReportForAllSitesRequest will handle the input structure for attempting to generate Swipe Log reporting for all Sites.

Fields
Input Field Description
reportType - String! The type of the report to generate. Available options are: SiteDateRange, SiteDateRangeForSerialNumber, SiteDateRangeForExternalRefID, SiteDateRangeForManualOpen, SiteDateRangeForReaderID, SiteDateRangeForAccessZone, SiteDateRangeForReaderDirection and SiteDateRangeForReentryWarning.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
accessType - String! Optional filter for filtering reports to only granted or denied swipe events. If this filter is not required, then please provide this value as an empty string (EG '') or set the value to 'all'.
serialNumber - String Optional value to filter report data to a specific Serial Number for an end-users pass. Please note that this value only applies to the SiteDateRangeForSerialNumber reportType option.
externalReferenceID - String Optional value to filter report data to a specific External Reference ID for an end-users pass. Please note that this value only applies to the SiteDateRangeForExternalRefID reportType option.
manualOpen - Boolean Optional value to filter report data to a specific Manual Open value (EG true / false). Please note that this value only applies to the SiteDateRangeForManualOpen reportType option.
readerID - String Optional value to filter report data to a specific Reader ID. Please note that this value only applies to the SiteDateRangeForReaderID reportType option.
accessZone - String Optional value to filter report data to a specific Access Zone. Please note that this value only applies to the SiteDateRangeForAccessZone reportType option.
readerDirection - String Optional value to filter report data to a specific Reader Direction (EG 'entry' or 'exit'). Please note that this value only applies to the SiteDateRangeForReaderDirection reportType option.
reentryWarning - Boolean Optional value to filter report data to a specific Re-Entry Warning value (EG true / false). Please note that this value only applies to the SiteDateRangeForReentryWarning reportType option.
Example
{
  "reportType": "abc123",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["abc123"],
  "accessType": "abc123",
  "serialNumber": "110100000001",
  "externalReferenceID": "ab12cd34ef56",
  "manualOpen": false,
  "readerID": "abc123",
  "accessZone": "abc123",
  "readerDirection": "xyz789",
  "reentryWarning": true
}

GenerateUserAccessLogReportRequest

Description

GenerateUserAccessLogReportRequest will handle the input structure for attempting to generate Access Log reporting for a specified User.

Fields
Input Field Description
serialNumber - String! The Serial Number of the end-users pass for report generation.
reportType - String! The type of the report to generate. Available options are: UserDateRange, UserDateRangeForSite and UserDateRangeForAccessZone.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
siteID - String Optional value to filter report data to a specific Site value. Please note that this value only applies to the UserDateRangeForSite reportType option.
accessZone - String Optional value to filter report data to a specific Access Zone. Please note that this value only applies to the UserDateRangeForAccessZone reportType option.
Example
{
  "serialNumber": "110100000001",
  "reportType": "abc123",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["abc123"],
  "siteID": "xyz789",
  "accessZone": "xyz789"
}

GenerateUserSwipeLogReportRequest

Description

GenerateUserSwipeLogReportRequest will handle the input structure for attempting to generate Swipe Log reporting for a specified User.

Fields
Input Field Description
serialNumber - String! The Serial Number of the end-users pass for report generation.
reportType - String! The type of the report to generate. Available options are: UserDateRange, UserDateRangeForSite, UserDateRangeForManualOpen, UserDateRangeForReaderID, UserDateRangeForAccessZone, UserDateRangeForReaderDirectionandUserDateRangeForReentryWarning`.
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
accessType - String! Optional filter for filtering reports to only granted or denied swipe events. If this filter is not required, then please provide this value as an empty string (EG '') or set the value to 'all'.
siteID - String Optional value to filter report data to a specific Site value. Please note that this value only applies to the UserDateRangeForSite reportType option.
manualOpen - Boolean Optional value to filter report data to a specific Manual Open value (EG true / false). Please note that this value only applies to the UserDateRangeForManualOpen reportType option.
readerID - String Optional value to filter report data to a specific Reader ID. Please note that this value only applies to the UserDateRangeForReaderID reportType option.
accessZone - String Optional value to filter report data to a specific Access Zone. Please note that this value only applies to the UserDateRangeForAccessZone reportType option.
readerDirection - String Optional value to filter report data to a specific Reader Direction (EG 'entry' or 'exit'). Please note that this value only applies to the UserDateRangeForReaderDirection reportType option.
reentryWarning - Boolean Optional value to filter report data to a specific Re-Entry Warning value (EG true / false). Please note that this value only applies to the UserDateRangeForReentryWarning reportType option.
Example
{
  "serialNumber": "110100000001",
  "reportType": "abc123",
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["xyz789"],
  "accessType": "abc123",
  "siteID": "xyz789",
  "manualOpen": true,
  "readerID": "abc123",
  "accessZone": "xyz789",
  "readerDirection": "abc123",
  "reentryWarning": false
}

GenerateVehicleAccessLogReportForAllSitesRequest

Description

GenerateVehicleAccessLogReportForAllSitesRequest will handle the input structure for attempting to generate a Vehicle Access Log report for all Sites.

Fields
Input Field Description
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
registrationNumber - String Optional value to filter reports to a specific vehicle registration number. If this filter option is not required, then please omit this value from any requests.
Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["abc123"],
  "registrationNumber": "xyz789"
}

GenerateVehicleSwipeLogReportForAllSitesRequest

Description

GenerateVehicleSwipeLogReportForAllSitesRequest will handle the input structure for attempting to generate a Vehicle Swipe Log report for all Sites.

Fields
Input Field Description
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 days between start and end time values for reporting.
emailAddresses - [String] List of email addresses to receive results of the report generation upon completion. Please note that there is a maximum limit of 10 email addresses to receive results per request. Please omit this value from request (or set this to empty array) when emails are not required.
accessLogGenerated - Boolean Optional value to filter reports to record which have been matched / unmatched for entry and exit pairs. NOTE: please set this value to false when looking for records which could not be matched. If this filter option is not required, then please omit this value from any requests.
gateDirection - String Optional value to filter reports to a specific gate direction ('entry' or 'exit'). If this filter option is not required, then please omit this value from any requests.
registrationNumber - String Optional value to filter reports to a specific vehicle registration number. If this filter option is not required, then please omit this value from any requests.
Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "emailAddresses": ["xyz789"],
  "accessLogGenerated": true,
  "gateDirection": "xyz789",
  "registrationNumber": "abc123"
}

GetAccessLevelByTitleRequest

Description

GetAccessLevelByTitleRequest will control the input structure for requesting to fetch an Access Level record by Title from the Cloud DB.

Fields
Input Field Description
title - String! Title value for searching the Cloud DB for any Access Levels created with the specified title.
Example
{"title": "Some Title"}

GetAccessUserByExternalRefIdRequest

Description

GetAccessUserByExternalRefIdRequest handles the input structure when requesting AccessUser record which match on a provided ExternalReferenceID value.

Fields
Input Field Description
externalReferenceID - String! Search value for matching AccessUser record which are assigned a specific External Reference ID value.
Example
{"externalReferenceID": "ab12cd34ef56"}

GetCameraBySerialRequest

Description

GetCameraBySerialRequest will handle the input structure for retrieving an Organisation's ANPR Camera details which match on the provided serial number.

Fields
Input Field Description
serial - String! The unique serial number (mac address) of the ANPR Camera to be retrieved from the Cloud DB.
Example
{"serial": "abc123"}

GetCameraServerByTitleRequest

Description

FetchCameraServerByTitleRequest will handle the input structure for retrieving an Organisation's ANPR Camera Server details which matches on a provided title.

Fields
Input Field Description
title - String! The name of the On-Site ANPR Camera Server to search for within the Cloud DB.
Example
{"title": "Some Title"}

GetCamerasForSiteRequest

Description

GetCamerasForSiteRequest will handle the input structure for retrieving an Organisation's ANPR Cameras which are associated with a provided SiteID.

Fields
Input Field Description
siteID - String! The ID of the Site to search and retrieve associated ANPR Camera records.
Example
{"siteID": "abc123"}

GetCamerasForSiteResponse

Description

GetCamerasForSiteResponse will handle the response structure when requesting to retrieve a list of ANPR Camera associated with a Site.

Fields
Field Name Description
cameraRecords - [Camera!]! The ANPR Camera records associated with the provided SiteID.
Example
{"cameraRecords": [Camera]}

GetPaginatedPaymentsRequest

Description

GetPaginatedPaymentsRequest will handle input values for retrieving a paginated list of Payments for an Organisation's account.

Fields
Input Field Description
batchSize - Int! batchSize controls the number of items which will be returned in the pagination request. EG 10
lastPaymentDate - Time lastPaymentDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
lastDocID - String lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
Example
{
  "batchSize": 10,
  "lastPaymentDate": "2024-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

GetPaginatedReportingRequestsRequest

Description

GetPaginatedReportingRequestsRequest will handle the input structure to get paginated Reporting Requests.

Fields
Input Field Description
reportType - String The type of the Reporting Request. You can omit this value, set to to empty string, or set to all if filter is not required. Supported reporting values: AllSitesSwipeLogsReport, SiteSwipeLogsReport, AllSitesAccessLogsReport, SiteAccessLogsReport, UserSwipeLogsReport, UserAccessLogsReport, AllSitesVehicleSwipeLogsReport, VehicleSwipeLogsReport, AllSitesVehicleAccessLogsReport or VehicleAccessLogsReport.
lastDocID - String lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
batchSize - Int! Batch size for controlling the number of items which will be returned in the pagination request. EG 10
startTime - Time! Start Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
endTime - Time! End Time timestamp for filtering DB records for report. This value will be compared against the UploadTimestamp of the Vehicle Swipe Log records and the query will return any records uploaded before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values for reporting.
Example
{
  "reportType": "xyz789",
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z",
  "batchSize": 10,
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z"
}

GetProfilePicForExternalRefIdRequest

Description

GetProfilePicForExternalRefIdRequest will handle the input structure for fetching a profile picture for a specific External Reference ID.

Fields
Input Field Description
externalReferenceID - String! The External Reference ID of the Access User record for retrieving the member's Profile Picture.
Example
{"externalReferenceID": "ab12cd34ef56"}

GetProfilePicForSerialRequest

Description

GetProfilePicForSerialRequest will handle the input structure for fetching a profile picture for a specific Serial Number.

Fields
Input Field Description
serialNumber - String! The Serial Number of the pass for the Access User record for retrieving the member's Profile Picture.
Example
{"serialNumber": "110100000001"}

GetReaderByTitleRequest

Description

GetReaderByTitleRequest will handle the input structure for fetching a specific Card Reader for an organisation.

Fields
Input Field Description
readerTitle - String! The title of the Card Reader to fetch from the Cloud DB.
Example
{"readerTitle": "abc123"}

GetReportingRequestByReportIDRequest

Description

GetReportingRequestByReportIDRequest will handle the input structure to get the Reporting Request by specified Report ID.

Fields
Input Field Description
reportID - String! The unique ID of the Reporting Request.
Example
{"reportID": "abc123"}

GetServerByTitleRequest

Description

GetServerByTitleRequest will handle the input values for fetching an On-Site Server from the Cloud DB by title.

Fields
Input Field Description
serverName - String! The title of the On-Site Server record to retrieve from the Cloud DB.
Example
{"serverName": "abc123"}

GetSiteByIdRequest

Description

GetSiteByIdRequest will handle the input values for fetching a Site's details.

Fields
Input Field Description
siteID - String! The ID of the site to retrieve details.
Example
{"siteID": "xyz789"}

GetTabletUserByUsernameRequest

Description

GetTabletUserByUsernameRequest will handle the input structure for fetching a tablet user from the Cloud DB by Username.

Fields
Input Field Description
username - String! Username provided to search for a Tablet User's account.
Example
{"username": "abc123"}

GetUserAccessByExternalRefIdRequest

Description

GetUserAccessByExternalRefIdRequest handles the input structure when requesting a list of UserAccess records which match on a provided ExternalReferenceID value.

Fields
Input Field Description
externalReferenceID - String! Search value for matching User Access records which are assigned a specific External Reference ID value.
Example
{"externalReferenceID": "ab12cd34ef56"}

GetUserAccessByExternalRefIdResponse

Description

GetUserAccessByExternalRefIdResponse handles the response structure when requesting a list of UserAccess records which match on a provided ExternalReferenceID value.

Fields
Field Name Description
userAccessRecords - [UserAccess!]! Array of User Access records which match on the provided External Reference ID value.
Example
{"userAccessRecords": [UserAccess]}

GetUserPassesByExternalRefIdRequest

Description

GetUserPassesByExternalRefIdRequest handles the input structure when requesting a list of UserPass records which match on a provided ExternalReferenceID value.

Fields
Input Field Description
externalReferenceID - String! Search value for matching UserPass records which are assigned to a AccessUser with External Reference ID value.
Example
{"externalReferenceID": "ab12cd34ef56"}

GetUserPassesByExternalRefIdResponse

Description

GetUserPassesByExternalRefIdResponse will handle the response structure when requesting a list of UserPass records from the Cloud DB.

Fields
Field Name Description
userPassRecords - [UserPass]! List of UserPass records returned which matches on the External Reference ID field.
Example
{"userPassRecords": [UserPass]}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
42

Int64

Description

Int64 scalar used to handle support for 64bit integer values.

Example
Int64

Invoice

Description

Invoice is used for representing and breaking down the charge of an organisations usage for a billing cycle.

Fields
Field Name Description
amount - Int! Total invoice amount to be charged to the organisation for the reported billing period. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 100000
anprSiteCharge - Int! This value indicates how much of the total amount of the invoice was based on the monthly ANPR Site charge (EG anprSitePrice * anprSiteCount = anprSiteCharge). This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 10000
anprSiteCount - Int! The number of ANPR Sites created within the system which have been used to calculate the final anprSiteCharge value for an Invoice.
Example: 10
anprSitePrice - Int! The price associated with each ANPR Site for generating charges within an Invoice's billing period (EG anprSitePrice * anprSiteCount = anprSiteCharge). This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 10000
apiCharge - Int! This value indicates how much of the total amount of the invoice was based on API charge. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 10000
billingPeriod - String! Indicated the period of time that the invoice covers. This will be a single month for Monthly billing customers, where it will be a range of 3 months for quarterly billing customers. Examaple: May 2023 or May 2023 - July 2023. Please note that only monthly billing is support for now.
dateOfInvoice - Time DateOfInvoice is the timestamp when the invoice was created for the organisation.
Example: 2022-11-18T11:52:30+0000
dueDate - Time The date that the organisation is expected to pay the invoice by before it becomes overdue.
Example: 2022-11-18T11:52:30+0000
invoiceNumber - String! InvoiceNumber is a string used to uniquely identify the invoice within the platform.
Example: 123456789
invoiceURL - String! invoiceURL is a URL pointing to a download link of an invoice.
lastModified - Time! lastModified shows the timestamp of when the Invoice was last updated.
Example: 2022-11-18T11:52:30+0000
paymentCurrency - String! The currency that the organisation has agreed to pay in. Should be in currency code format, ISO 4217.
Example: GBP
paymentDate - Time The timestamp of when the invoice was paid.
Example: 2022-11-18T11:52:30+0000
paymentReminderPeriod - Int! paymentReminderPeriod controls the number of days after an invoice becomes overdue that the organisation will receive a reminder email about the overdue payment.
Example: 7
paymentReminderTaskName - String! paymentReminderTaskName records the name of the Cloud Task item for processing a payment reminder notification for an organisation when payment is not received for the invoice.
paymentTerms - Int! paymentTerms controls the number of days that an Organisation has to pay an invoice before it becomes overdue (days after invoice has been issued).
Example: 7
payments - [Int!]! payments contains a list of interim payments associated with an Invoice.
Example: [100000]
platformCharge - Int! This value indicates how much of the total amount of the invoice was based on the customers standard Platform charge. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 100000
overdueInvoiceTaskName - String! overdueInvoiceTaskName records the name of the Cloud Task item for processing invoice as overdue when payment is not received for the invoice by the due date.
siteCharge - Int! This value indicates how much of the total amount of the invoice was based on the monthly Site charge. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 10000
siteCount - Int! The number of Sites created within the system which have been used to calculate the final siteCharge value for an Invoice.
Example: 10
sitePrice - Int! The price of monthly Site charge for an Invoice's billing period.
Example: 20
shutoffPeriod - Int! shutoffPeriod controls the number of days before an Organisation account is restricted after an invoice has become overdue for payment.
Example: 30
shutOffTaskName - String! shutOffTaskName records the name of the Cloud Task item for processing organisation shut off when payment is not received for the invoice.
startOfInvoice - Time! The timestamp that the invoice is tracking charge accruement from.
Example: 2022-11-18T11:52:30+0000
status - String! Status shows if the invoice is in-progress, paid, overdue or pending payment.
Example: overdue-payment
supportCharge - Int! This value indicates how much of the total amount of the invoice was based on Support charges. This value will be record in the lowest denomination of the customers payment currency (EG pence for GBP, cents for USD).
Example: 100000
supportPackage - String! The customers support package. Bronze is the standard, free tier of customer support. Silver and Gold are premium support packages and incur monthly charges for the customer.
Example: Gold
vatAmount - Int! vatAmount contains the total UK VAT charge associated with the invoice.
Example: 1000
Example
{
  "amount": 60720,
  "anprSiteCharge": 42,
  "anprSiteCount": 42,
  "anprSitePrice": 42,
  "apiCharge": 42,
  "billingPeriod": "June 2023",
  "dateOfInvoice": "2024-03-23T17:21:00Z",
  "dueDate": "2024-03-23T17:21:00Z",
  "invoiceNumber": "ABC00000001",
  "invoiceURL": "https://www.somelinktofile.com/",
  "lastModified": "2024-03-23T17:21:00Z",
  "paymentCurrency": "GBP",
  "paymentDate": "2024-03-23T17:21:00Z",
  "paymentReminderPeriod": 42,
  "paymentReminderTaskName": "abc123",
  "paymentTerms": 42,
  "payments": [42],
  "platformCharge": 42,
  "overdueInvoiceTaskName": "xyz789",
  "siteCharge": 42,
  "siteCount": 42,
  "sitePrice": 42,
  "shutoffPeriod": 42,
  "shutOffTaskName": "abc123",
  "startOfInvoice": "2024-03-23T17:21:00Z",
  "status": "active",
  "supportCharge": 42,
  "supportPackage": "Bronze",
  "vatAmount": 42
}

Map

Description

Map scalar used to handle Map types from Golang. Please note that these values will either be in map[string]string or []map[string]string format based on the requested endpoint.

Example
{"some_key": "Some Value", "another_key": "Another Value"}

PaginatedAccessLevelsRequest

Description

PaginatedAccessLevelsRequest will control the input structure for requesting a batch of paginated Access Level records from the Cloud DB for an Organisation.

Fields
Input Field Description
batchSize - Int! batchSize controls the number of items which will be returned in the pagination request. EG 10
lastModifiedDate - Time lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
lastDocID - String lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
Example
{
  "batchSize": 10,
  "lastModifiedDate": "2024-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedAccessLevelsResponse

Description

PaginatedAccessLevelsResponse will control the response structure to a request for fetching a batch of paginated Access Level records from the Cloud DB for an Organisation.

Fields
Field Name Description
accessLevels - [AccessLevel!]! Paginated list of AccessLevel records for an Organisation.
lastModifiedDate - Time lastModifiedDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
Example
{
  "accessLevels": [AccessLevel],
  "lastModifiedDate": "2024-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedAccessUserResponse

Description

PaginatedAccessUserResponse will handle the response structure when requesting a paginated batch of AccessUser records from the Cloud DB.

Fields
Field Name Description
accessUserRecords - [AccessUser]! List of AccessUser records returned for pagination batch which matches on any applied filter options.
lastDocID - String Last Doc ID value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
Example
{
  "accessUserRecords": [AccessUser],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedCardReaderRequest

Description

PaginatedCardReaderRequest will handle the input structure for fetching a paginated list of Card Reader records from the Cloud DB.

Fields
Input Field Description
startTime - Time! Start Time timestamp for filtering DB records. This value will be compared against the LastModified timestamp of the Card Reader records and the query will return any records updated after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values.
endTime - Time! End Time timestamp for filtering DB records. This value will be compared against the LastModified timestamp of the Card Reader records and the query will return any records updated before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values.
direction - String! Optional Direction value for filtering DB records. If this is not required, then please set the value to an empty string ('') or to 'all'.
accessZoneName - String! Optional Access Zone Name value for filtering DB records. If this is not required, then please set the value to an empty string ('') or to 'all'.
lastDocID - String Last Doc ID value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastDocID value returned from the previous call.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastModifiedTimestamp value returned from the previous call.
batchSize - Int! Batch size value to control the number of records returned in the pagination batch.
Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "direction": "abc123",
  "accessZoneName": "abc123",
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z",
  "batchSize": 10
}

PaginatedInvoicesRequest

Description

PaginatedInvoicesRequest will control the input structure of a request to fetch a list of paginated Invoices.

Fields
Input Field Description
batchSize - Int! batchSize controls the number of items which will be returned in the pagination request. EG 10
lastStartDate - Time lastStartDate is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
lastDocID - String lastDocID is the unique ID related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
Example
{
  "batchSize": 10,
  "lastStartDate": "2024-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedInvoicesResponse

Description

PaginatedInvoicesResponse will control the structure of a response to fetching a paginated list of Invoices.

Fields
Field Name Description
invoices - [Invoice!]! Paginated list of Invoices.
lastStartDate - Time lastStartDate time of the final record in the pagination batch. When requesting the first batch, please omit this value. When requesting subsequent batches then please provided the returned value from the previous batch call to ensure ordering of pagination items.
lastDocID - String Doc ID of the final record in the pagination batch. When requesting the first batch, please omit this value. When requesting subsequent batches then please provided the returned value from the previous batch call to ensure ordering of pagination items.
Example
{
  "invoices": [Invoice],
  "lastStartDate": "2024-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedPaymentsResponse

Description

PaginatedPaymentsResponse forms the generic struct to handle the response values when retrieving a list of paginated payments.

Fields
Field Name Description
paymentDocs - [Payment!]! Paginated list of Payment records for an Organisation.
lastPaymentDate - Time lastPaymentDate of the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
Example
{
  "paymentDocs": [Payment],
  "lastPaymentDate": "2024-03-23T17:21:00Z",
  "lastDocID": "some-doc-id"
}

PaginatedReaderResponse

Description

PaginatedReaderResponse will handle the response structure when requesting a paginated batch of Card Reader records from the Cloud DB.

Fields
Field Name Description
cardReaderRecords - [Reader!]! List of Card Reader records returned for pagination batch which matches on any applied filter options.
lastDocID - String Last Doc ID value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
Example
{
  "cardReaderRecords": [Reader],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedReportingRequestsResponse

Description

PaginatedReportingRequestsResponse will control the response structure to a request for fetching a batch of paginated Reporting Request records from the Cloud DB for an Organisation.

Fields
Field Name Description
reportingRequestList - [ReportingRequest]! Paginated list of Reporting Request records for an Organisation.
lastDocID - String lastDocID for the final record in the pagination batch. Please note that this value should be provided when attempting to retrieve the next batch of pagination items.
lastModifiedTimestamp - Time lastModifiedTimestamp is the timestamp related to the final item of the previous pagination batch. For the first batch of pagination, please skip providing this value. For following requests, use the value returned from the previous pagination request.
Example
{
  "reportingRequestList": [ReportingRequest],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedServerRequest

Description

PaginatedServerRequest will handle the input values for requesting to retrieve a paginated list of On-Site Server records from the Cloud DB.

Fields
Input Field Description
startTime - Time! Start Time timestamp for filtering DB records. This value will be comapred against the LastModified timestamp of the Server records and the query will return any records updated after this point in time. Please note that there is a maximum of limit of 3 months between start and end time values.
endTime - Time! End Time timestamp for filtering DB records. This value will be comapred against the LastModified timestamp of the Server records and the query will return any records updated before this point in time. Please note that there is a maximum of limit of 3 months between start and end time values.
siteID - String! Optional Site ID value for filtering DB records. If this is not required, then please set the value to an empty string ('') or to 'all'.
lastDocID - String Last Doc ID value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastDocID value returned from the previous call.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastModifiedTimestamp value returned from the previous call.
batchSize - Int! Batch size value to control the number of records returned in the pagination batch.
Example
{
  "startTime": "2023-03-23T17:21:00Z",
  "endTime": "2023-03-23T17:21:00Z",
  "siteID": "xyz789",
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z",
  "batchSize": 10
}

PaginatedServerResponse

Description

PaginatedServerResponse will handle the response structure when requesting a paginated batch of On-Site Server records from the Cloud DB.

Fields
Field Name Description
serverRecords - [Server!]! List of On-Site Server records returned for pagination batch which matches on any applied filter options.
lastDocID - String Last Doc ID value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
Example
{
  "serverRecords": [Server],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedSiteResponse

Description

PaginatedSiteResponse will handle the structure of the response for the fetchPaginatedSites() query.

Fields
Field Name Description
siteRecords - [Site!]! Paginated list of Site records from Cloud DB.
lastDocID - String The Document ID of the last Site record returned within pagination batch. This value should be used in subsequent requests to ensure that paginated results are returned in the correct order. If this value is returned as null / empty string, then there are no more records to fetch (EG Pagination complete).
lastModifiedTimestamp - Time The LastModified timestamp of the last Site record returned within pagination batch. This value should be used in subsequent requests to ensure that paginated results are returned in the correct order. If this value is returned as null, then there are no more records to fetch (EG Pagination complete)
Example
{
  "siteRecords": [Site],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedTabletUserRequest

Description

PaginatedTabletUserRequest will handle the input structure for requesting a paginated list of Tablet Users for an Organisation.

Fields
Input Field Description
siteID - String Optional filter to return TabletUser which are associated with a specific site. If this filter is not required, then you can omit the value from the request, set to an empty string ('') or set to 'all'.
batchSize - Int! Batch size for controlling the number of items which will be returned in the pagination request. EG 10.
lastDocID - String The Document ID of the last TabletUser record returned within pagination batch. If requesting the first batch, then please omit this value from request. For subsequent requests, this value should be populated with the response value from the previous call to this endpoint to ensure results are returned in the correct order.
lastModifiedTimestamp - Time The LastModified timestamp of the last TabletUser record returned within pagination batch. If requesting the first batch, then please omit this value from request. For subsequent requests, this value should be populated with the response value from the previous call to this endpoint to ensure results are returned in the correct order.
Example
{
  "siteID": "xyz789",
  "batchSize": 10,
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedTabletUserResponse

Description

PaginatedTabletUserResponse will handle the response structure to a request for paginated Tablet Users for an Organisation.

Fields
Field Name Description
tabletUserRecords - [TabletUserDetails!]! Paginated list of TabletUser records from Cloud DB.
lastDocID - String The Document ID of the last TabletUser record returned within pagination batch. This value should be used in subsequent requests to ensure that paginated results are returned in the correct order. If this value is returned as null / empty string, then there are no more records to fetch (EG Pagination complete).
lastModifiedTimestamp - Time The Last Modified timestamp of the last Tablet User record returned within pagination batch. This value should be used in subsequent requests to ensure that paginated results are returned in the correct order. If this value is returned as null, then there are no more records to fetch (EG Pagination complete).
Example
{
  "tabletUserRecords": [TabletUserDetails],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedUserAccessLogsRequest

Description

PaginatedUserAccessLogsRequest will handle the input structure for requesting paginated Access Logs for a User.

Fields
Input Field Description
externalReferenceID - String! External Reference ID of the Access User for retrieving Access Logs records.
serialNumber - String Optional SerialNumber value for filtering DB records to a specific pass for the specified user. If this filter option is not required, you can omit this value from the request, set the value to an empty string (EG '').
batchSize - Int! Batch size value to control the number of records returned in the pagination batch.
lastDocID - String Last Doc ID value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastDocID value returned from the previous call.
lastUploadedTimestamp - Time Last Uploaded Timestamp value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastUploadedTimestamp value returned from the previous call.
siteID - String Optional siteID value for filtering DB records to a specific site. If this filter option is not required, you can omit this value from the request, set the value to an empty string (EG ''), or set the value to 'all'.
accessZoneName - String Optional access zone value for filtering DB records to a specific access zone. If this filter option is not required, you can omit this value from the request, set the value to an empty string (EG ''), or set the value to 'all'.
Example
{
  "externalReferenceID": "ab12cd34ef56",
  "serialNumber": "110100000001",
  "batchSize": 10,
  "lastDocID": "some-doc-id",
  "lastUploadedTimestamp": "2024-03-23T17:21:00Z",
  "siteID": "abc123",
  "accessZoneName": "xyz789"
}

PaginatedUserAccessLogsResponse

Description

PaginatedUserAccessLogsResponse will handle the structure of the response to a paginated Access Log request for a User.

Fields
Field Name Description
accessLogRecords - [AccessLog!]! Paginated list of Access Log records which match on any applied filter options.
lastDocID - String Last Doc ID value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
lastUploadedTimestamp - Time Last Uploaded Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
Example
{
  "accessLogRecords": [AccessLog],
  "lastDocID": "some-doc-id",
  "lastUploadedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedUserPassResponse

Description

PaginatedUserPassResponse will handle the response structure when requesting a paginated batch of UserPass records from the Cloud DB.

Fields
Field Name Description
userPassRecords - [UserPass]! List of UserPass records returned for pagination batch which matches on any applied filter options.
lastDocID - String Last Doc ID value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
lastModifiedTimestamp - Time Last Modified Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
Example
{
  "userPassRecords": [UserPass],
  "lastDocID": "some-doc-id",
  "lastModifiedTimestamp": "2024-03-23T17:21:00Z"
}

PaginatedUserSwipeLogsRequest

Description

PaginatedUserSwipeLogsRequest will handle the input structure for requesting paginated Swipe Logs for a User.

Fields
Input Field Description
externalReferenceID - String! External Reference ID of the Access User for retrieving Swipe Logs records.
serialNumber - String Optional SerialNumber value for filtering DB records to a specific pass for the specified user. If this filter option is not required, you can omit this value from the request, set the value to an empty string (EG '').
batchSize - Int! Batch size value to control the number of records returned in the pagination batch.
lastDocID - String Last Doc ID value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastDocID value returned from the previous call.
lastUploadedTimestamp - Time Last Uploaded Timestamp value for ordering pagination batches. When requesting the first batch, please omit this value from the request. On subsequent batches, please provide the lastUploadedTimestamp value returned from the previous call.
siteID - String Optional siteID value for filtering DB records to a specific site. If this filter option is not required, you can omit this value from the request, set the value to an empty string (EG ''), or set the value to 'all'.
accessZoneName - String Optional access zone value for filtering DB records to a specific access zone. If this filter option is not required, you can omit this value from the request, set the value to an empty string (EG ''), or set the value to 'all'.
Example
{
  "externalReferenceID": "ab12cd34ef56",
  "serialNumber": "110100000001",
  "batchSize": 10,
  "lastDocID": "some-doc-id",
  "lastUploadedTimestamp": "2024-03-23T17:21:00Z",
  "siteID": "xyz789",
  "accessZoneName": "abc123"
}

PaginatedUserSwipeLogsResponse

Description

PaginatedUserSwipeLogsResponse will handle the structure of the response to a paginated Swipe Log request for a User.

Fields
Field Name Description
swipeLogRecords - [SwipeLog!]! Paginated list of Swipe Log records which match on any applied filter options.
lastDocID - String Last Doc ID value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
lastUploadedTimestamp - Time Last Uploaded Timestamp value for ordering pagination batches. Please provide this value in requests for subsequent batches to ensure ordering of pagination results is correct.
Example
{
  "swipeLogRecords": [SwipeLog],
  "lastDocID": "some-doc-id",
  "lastUploadedTimestamp": "2024-03-23T17:21:00Z"
}

Payment

Description

Payment forms the generic struct to handle a record of payment on account for an Organisation.

Fields
Field Name Description
amountPaid - Int! Amount received for payment. Please note that this will be displayed in the lowest denomination of the selected currency (EG pennies for GBP).
dateOfPayment - Time! Timestamp of when the payment was received.
invoiceNumber - String! Invoice Number which the payment was registered against.
reporter - String! Reporter of who registered the payment within the Breezin platform.
Example
{
  "amountPaid": 42,
  "dateOfPayment": "2024-03-23T17:21:00Z",
  "invoiceNumber": "ABC00000001",
  "reporter": "abc123"
}

ProfilePicture

Description

ProfilePicture will handle the structure of a Profile Picture uploaded for an end_user (Access User Record).

Fields
Field Name Description
aHash - String! Field to record the Average Hash value generated for a profile picture used when checking if the image is changed while updating it within the platform.
dHash - String! Field to record Difference Hash value generated for a profile picture when checking if the image is changed while updating it within the platform.
externalReferenceID - String! Field to record the end-users External Reference ID against their UserAccess record for reporting purposes.
imageAccepted - Boolean! Field to record the boolean value if the image (Profile Picture) was accepted or not.
lastModified - Time! Last Modified timestamp of when the Profile Picture was last updated within the platform.
modifier - String! The email address of the user who last modified the Site record within the platform.
pHash - String! Field to record Perception Hash value generated for a profile picture when checking if the image is changed while updating it within the platform.
profilePicture - String! Field to record the Base-64 string value of the uploaded Profile Picture for an Access User.
source - String! Field to record the source from which the profile picture was uploaded. EG External.
Example
{
  "aHash": "xyz789",
  "dHash": "abc123",
  "externalReferenceID": "ab12cd34ef56",
  "imageAccepted": false,
  "lastModified": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "pHash": "abc123",
  "profilePicture": "abc123",
  "source": "xyz789"
}

Reader

Description

Reader controls the data structure for a Card Reader record within the Cloud DB.

Fields
Field Name Description
accessToken - String! JWT Access Token for the Card Reader to authenticate Cloud communications.
accessZoneName - String! The title of the Access Zone which the Card Reader is associated with.
created - Time! The timestamp of when the Card Reader was first created within the Cloud DB.
creator - String! The email address of the system admin who created the Reader record.
direction - String! The gate direction of the Card Reader, EG 'entry' or 'exit'.
lastModified - Time! The timestamp of when the Card Reader was last modified in the Cloud DB.
lastUpdateTime - Time The timestamp of when the Card Reader last updated it's configuration with the Cloud.
modifier - String! The email address of the system admin which last modified the Card Reader record.
pulseTime - Int! The pulse time for how long, in seconds, that the card reader will open the relay when a successful swipe occurs.
siteID - String! The ID of the site where the Card Reader has been installed.
title - String! The name of the Card Reader record.
lastHealthCheck - Time Timestamp to record when the Card Reader last reported a successful health check to the Cloud.
readerMacAddress - String The unique Mac Address of the Card Reader.
readerSerial - String The unique Serial Number of the Card Reader.
esp32IdfVersion - String Current version of the ESP32 IDF running on the Card Reader instance.
esp32AppVersion - String Current version of the ESP32 App running on the Card Reader instance.
pnNpxFwVersion - String Current version of the Pn NXP FW running on the Card Reader instance.
pnAppVersion - String Current version of the Pn NXP App running on the Card Reader instance.
lastReboot - Time Timestamp of the last reboot for the Card Reader instance.
status - Int Current Status of the Card Reader instance.
Example
{
  "accessToken": "abc123",
  "accessZoneName": "xyz789",
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "direction": "abc123",
  "lastModified": "2024-03-23T17:21:00Z",
  "lastUpdateTime": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "pulseTime": 42,
  "siteID": "abc123",
  "title": "Some Title",
  "lastHealthCheck": "2024-03-23T17:21:00Z",
  "readerMacAddress": "abc123",
  "readerSerial": "abc123",
  "esp32IdfVersion": "xyz789",
  "esp32AppVersion": "xyz789",
  "pnNpxFwVersion": "abc123",
  "pnAppVersion": "xyz789",
  "lastReboot": "2024-03-23T17:21:00Z",
  "status": "active"
}

RegenerateApiTokenRequest

Description

RegenerateApiTokenRequest will handle the input structure for requesting to regenerate an API Token for an Organisation.

Example
{}

RegenerateApiTokenResponse

Description

RegenerateApiTokenResponse will handle the response structure to a Regenerate Org API Token request.

Fields
Field Name Description
apiToken - String! Newly generated API Token for the organisation.
Example
{"apiToken": "abc123"}

RegenerateCameraServerAccessTokenRequest

Description

RegenerateCameraServerAccessTokenRequest will handle the input values for regenerating an Organisation's ANPR Camera Server access token.

Fields
Input Field Description
cameraServerName - String! The name of the On-Site ANPR Camera Server to be updated with a new Access Token.
Example
{"cameraServerName": "abc123"}

RegenerateCameraServerApiAccessTokenRequest

Description

RegenerateCameraServerApiAccessTokenRequest will handle the input structure for requesting that an API Access Token is regenerated for an On-Site ANPR Camera Server.

Fields
Input Field Description
cameraServerName - String! The name of the On-Site ANPR Camera Server to be updated with a new API Access Token.
Example
{"cameraServerName": "abc123"}

RegenerateReaderTokenRequest

Description

RegenerateReaderTokenRequest will handle the input values for regenerating a Card Readers access token.

Fields
Input Field Description
readerName - String! The name of the Card Reader to be updated with a new Access Token.
Example
{"readerName": "abc123"}

RegenerateServerApiAccessTokenRequest

Description

RegenerateServerApiAccessTokenRequest will handle the input structure for requesting that an API Access Token is regenerated for an On-Site Server.

Fields
Input Field Description
title - String! The title of the On-Site Server record to be updated for an Organisation.
Example
{"title": "Some Title"}

RegenerateServerTokenRequest

Description

RegenerateServerTokenRequest will handle the input values for regenerating an On-Site Servers access token.

Fields
Input Field Description
serverName - String! The name of the On-Site Server to be updated with a new Access Token.
Example
{"serverName": "abc123"}

RemoveCardReaderRequest

Description

RemoveCardReaderRequest will handle the input values for removing an existing Card Reader from the Cloud DB.

Fields
Input Field Description
readerTitle - String! The title of the Reader record to be removed for an Organisation.
Example
{"readerTitle": "abc123"}

RemoveOnSiteServerRequest

Description

RemoveOnSiteServerRequest will handle the input values for removing an existing On-Site Server for an Organisation.

Fields
Input Field Description
serverName - String! The title of the On-Site Server record to be removed for an Organisation.
Example
{"serverName": "xyz789"}

RemoveTabletUserRequest

Description

RemoveTabletUserRequest will handle the input structure for handling a request to remove a Tablet User for an Organisation.

Fields
Input Field Description
username - String! The username of the tablet user to be removed for an Organisation.
Example
{"username": "xyz789"}

RemoveUserProfilePictureRequest

Description

RemoveUserProfilePictureRequest will handle the input structure to remove a profile picture for a specific Access User record.

Fields
Input Field Description
serialNumber - String Optional 'SerialNumber' field to upload Profile Picture to Access User record. Please note that either this value, or 'ExternalReferenceID' value should be used to link image to Access User record. When 'SerialNumber' is specified, this image will be linked to Access User record which has the 'SerialNumber' value.
externalReferenceID - String Optional 'ExternalReferenceID' field to upload Profile Picture to Access User record. Please note that either this value, or 'SerialNumber' value should be used to link image to Access User record. When 'ExternalReferenceID' is specified, this image will be linked to Access User record which match on the provided 'ExternalReferenceID' value.
Example
{"serialNumber": "110100000001", "externalReferenceID": "ab12cd34ef56"}

ReportingRequest

Description

ReportingRequest will control the response structure when searching for a reporting request in the DB.

Fields
Field Name Description
reportType - String! The type of the report the request was registered or raised against. Supported values: AllSitesSwipeLogsReport, SiteSwipeLogsReport, AllSitesAccessLogsReport, SiteAccessLogsReport, UserSwipeLogsReport, UserAccessLogsReport, AllSitesVehicleSwipeLogsReport, VehicleSwipeLogsReport, AllSitesVehicleAccessLogsReport or VehicleAccessLogsReport.
status - String! The current status of the request (EG in-progress or complete)
created - Time! Timestamp of when the reporting request was raised.
requester - String! The email address of the system user who's requested the report.
lastModified - Time! Timestamp of when the reporting request record was last updated within the platform.
downloadURL - String! The URL link to download the generated CSV file of the report stored in the cloud bucket.
Example
{
  "reportType": "abc123",
  "status": "active",
  "created": "2024-03-23T17:21:00Z",
  "requester": "abc123",
  "lastModified": "2024-03-23T17:21:00Z",
  "downloadURL": "xyz789"
}

ReportingResponse

Description

ReportingResponse is a generic response type from a Breezin Generate Report API request. It contains a message that will provide the result of an action along with the report ID generated for the report request.

Fields
Field Name Description
message - String! The message returned from the service.
reportID - String! String value of the generated unique report ID for the report request.
Example
{
  "message": "Response message containing results of API request",
  "reportID": "abc123"
}

ResponseMessage

Description

ResponseMessage is a generic string response from a Breezin API request. This message will provide the result of an action.

Fields
Field Name Description
message - String! The message returned from the service.
Example
{"message": "Response message containing results of API request"}

SerialNumberDetails

Description

SerialNumberDetails will handle the structure Serial Number Details for an AccessUsers passes.

Fields
Field Name Description
serialNumber - String! Unique Serial Number of end-users pass.
created - Time! Creation timestamp of the end-users pass.
expiryDate - Time Optional expiry timestamp of the end-users pass.
Example
{
  "serialNumber": "110100000001",
  "created": "2024-03-23T17:21:00Z",
  "expiryDate": "2024-03-23T17:21:00Z"
}

Server

Description

Server will control the Structure of an On-Site Server record written to the Cloud DB.

Fields
Field Name Description
accessToken - String! JWT Access Token for the On-Site Server record.
apiAccessToken - String! API Access Token for authenticating API requests received by the On-Site Server.
created - Time! Timestamp of when the Server record was first created.
creator - String! The email address of the system user which first created the Server.
lastModified - Time! Timestamp of when the Server record was last updated in the Cloud DB.
lastUpdateTime - Time Timestamp of when the Server last updated it's configuration from the Cloud DB.
lastReportedVersion - String Version number of the application which the Server is currently running.
modifier - String! The email address of the system user who last updated the Server record.
siteID - String! The ID of the Site where the On-Site Server is located.
serverMode - String! The mode value to control how the On-Site Server will communicate with Card Readers. Available options are nortech_rs232, usb and ethernet for now.
title - String! The name of the On-Site Server recorded in the Cloud DB.
ipAddress - String IP Address of the On-Site Server on the local network. Please note that this value will be used to allow the tablet application to communicate with the server on site.
lastHealthCheck - Time Timestamp to record when an On-Site Server last reported a successful health check to the Cloud.
Example
{
  "accessToken": "xyz789",
  "apiAccessToken": "xyz789",
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2024-03-23T17:21:00Z",
  "lastUpdateTime": "2024-03-23T17:21:00Z",
  "lastReportedVersion": "abc123",
  "modifier": "example@email.com",
  "siteID": "abc123",
  "serverMode": "xyz789",
  "title": "Some Title",
  "ipAddress": "xyz789",
  "lastHealthCheck": "2024-03-23T17:21:00Z"
}

Site

Description

Site will handle the structure of a Site object from the Cloud DB.

Fields
Field Name Description
id - String! The unique ID field of the Site record.
siteAccessZones - Map A map of the Access Zones registered against the site.
created - Time! Created timestamp of when the Site was registered within the platform.
creator - String! The email address of the user who created the Site record within the platform.
lastModified - Time! Last Modified timestamp of when the Site was last updated within the platform.
modifier - String! The email address of the user who last modified the Site record within the platform.
displayName - String! The display name of the Site record.
siteAccessLevelList - [String!]! List of access levels configured for Access Zones within a Site. Please note that this will be automatically generated by the system based on the configured access zones.
isAccessControlEnabled - Boolean! Flag to record whether a Site record is setup to accept access control events at the Site. When set to true, the Site will be enabled for configuring Access Zones, and will also be enabled in monthly billing. Please note that if this value is set to false, the system will reject configured Access Zones for the site and the site will also not be included in monthly billing.
isAnprEnabled - Boolean! Flag to record whether a Site record is setup to accept ANPR events at the Site. When set to true, the Site will be enabled for configuring ANPR Settings, and will also be enabled in monthly billing. Please note that if this value is set to false, the site will not be included in monthly billing for ANPR.
Example
{
  "id": "some-id",
  "siteAccessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "lastModified": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "displayName": "abc123",
  "siteAccessLevelList": ["abc123"],
  "isAccessControlEnabled": true,
  "isAnprEnabled": false
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

SwipeLog

Description

SwipeLog will handle the structure of a Swipe Log record uploaded from an On-Site Server when an end-user presents their pass at a Card Reader.

Fields
Field Name Description
accessGranted - Boolean! Boolean flag to record whether the end-user was granted access at the Card Reader for the swipe event.
denialReason - String! Recorded denial reason for why a user was denied entry at a Card Reader for a swipe event. Please note that this will be set to an Empty String ('') when the user is granted access.
externalReferenceID - String! The External Reference ID for the end-user who has scanned their pass. Please set this value to the unique customer ID in your external systems.
firstName - String! The First Name of the end-user who has scanned their pass. Please note that this will be set to an Empty String ('') if the Organisation does not set this value as part of the User Access record.
gateDirection - String! The direction of the reader which the end-user has presented their pass to for a swipe event (EG 'entry' or 'exit').
lastName - String! The Last Name of the end-user who has scanned their pass. Please note that this will be set to an Empty String ('') if the Organisation does not set this value as part of the User Access record.
manualOpen - Boolean! Boolean flag to record whether the swipe event was a manual override of the access control system by an member of staff.
readerAccessZone - String! The title of the Access Zone associated with the Card Reader for the swipe event.
readerID - String! The title of the Card Reader which the end-user presented their pass for the swipe event.
reentryWarning - Boolean! Boolean flag to record whether the swipe event had flagged a re-entry warning (EG user re-enters shortly after leaving).
serialNumber - String! The unique Serial Number of the end-user's pass scanned for the swipe event.
serverName - String! Name of the On-Site Server where the scan event occurred. Please note that this value should be set to an empty string ('') for instances where no On-Site Server is available.
siteID - String! The ID of the Site where the swipe event occurred.
uploaded - Boolean! Boolean flag to record whether a SwipeLog record has been uploaded to the Cloud. This value will be overwritten by the cloud endpoint before inserting SwipeLog to database.
uploadedTimestamp - Time! Timestamp to record when a SwipeLog record was uploaded to the Cloud. This value will be overwritten by the cloud endpoint before inserting SwipeLog to database.
usageDay - Int! The day of which a swipe event occurred.
usageMonth - String! The month of which a swipe event occurred.
usageYear - Int! The year of which a swipe event occurred.
usageTimestamp - Time! The timestamp of when the Swipe event occurred on site.
Example
{
  "accessGranted": false,
  "denialReason": "abc123",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "abc123",
  "gateDirection": "xyz789",
  "lastName": "xyz789",
  "manualOpen": false,
  "readerAccessZone": "abc123",
  "readerID": "abc123",
  "reentryWarning": false,
  "serialNumber": "110100000001",
  "serverName": "abc123",
  "siteID": "xyz789",
  "uploaded": false,
  "uploadedTimestamp": "2024-03-23T17:21:00Z",
  "usageDay": 42,
  "usageMonth": "xyz789",
  "usageYear": 42,
  "usageTimestamp": "2024-03-23T17:21:00Z"
}

TabletUserDetails

Description

TabletUserDetails will control the structure of data returned when fetching a Tablet User from the Cloud DB.

Fields
Field Name Description
created - Time! Timestamp of when the Tablet User's account was originally created.
creator - String! The email address of the System Admin who originally created the Tablet User's account.
emailAddress - String! Email Address associated with the Tablet User's account.
isLocked - Boolean! Boolean flag to record whether the Tablet Users account has been locked (EG too many invalid login attempts).
lastModified - Time! Timestamp of when the Tablet User was last modified within the system.
modifier - String! The email address of the system admin which last modified the tablet user's account.
siteID - String! The ID of the Site which the Tablet User is associated with.
username - String! The username for the Tablet User record.
Example
{
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "emailAddress": "example@email.com",
  "isLocked": true,
  "lastModified": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "siteID": "abc123",
  "username": "abc123"
}

Time

Description

Time scaler used to handle Golang's time.Time values. Please provide any timestamp values in YYYY-MM-DDThh:mm:ssZ format as this is compliant with ISO 8601 and RFC 3339. EG 2006-01-02T15:04:05-07:00, 2022-02-26T01:30:00Z, 2022-04-01T08:00:00+01:00

Example
"2024-03-23T17:21:00Z"

UpdateAccessLevelRequest

Description

UpdateAccessLevelRequest will control the input structure for requesting updates to an existing AccessLevel record in the Cloud DB.

Fields
Input Field Description
title - String! Title of the AccessLevel record to be updated in the Cloud DB.
description - String Optional description field for updating an existing Access Level record.
displayName - String Optional field to update the human-readable display name for the Access Level record.
Example
{
  "title": "Some Title",
  "description": "Some description",
  "displayName": "xyz789"
}

UpdateAccessUserDetailsRequest

Description

UpdateAccessUserDetailsRequest will handle the input structure for updating an existing AccessUser record for an organisation.

Fields
Input Field Description
accountID - String Optional Account ID field to record the end-users account details against their AccessUser record for reporting purposes (EG Membership Number, Account Number, etc). This value may be left blank if not required by Organisation.
dateOfBirth - String Optional field to record the end-users date of birth against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
externalReferenceID - String! Field to record the end-users External Reference ID against their AccessUser record for reporting purposes. This value will represent the unique Customer ID value as defined by your organisations external system.
firstName - String Optional field to record the end-users first name against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
homeSite - String Optional field to record the end-users home site against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation. If setting this value, this will be verified against Site ID values configured for the Organisation.
latestJoinDate - String Optional field to record the end-users Latest Join Date against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
lastName - String Optional field to record the end-users last name against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
packageName - String Optional field to record the end-users package name against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
packageCategory - String Optional field to record the end-users package category against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
phoneNumber - String Optional field to record the end-users phone number against their AccessUser record. This value may be left blank if not required by Organisation.
emailAddress - String Optional field to record the end-users email address against their AccessUser record. This value may be left blank if not required by Organisation.
postCode - String Optional field to record the end-users post code against their AccessUser record for reporting purposes. This value may be left blank if not required by Organisation.
Example
{
  "accountID": "abc123",
  "dateOfBirth": "xyz789",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "abc123",
  "homeSite": "xyz789",
  "latestJoinDate": "xyz789",
  "lastName": "abc123",
  "packageName": "abc123",
  "packageCategory": "xyz789",
  "phoneNumber": "abc123",
  "emailAddress": "example@email.com",
  "postCode": "abc123"
}

UpdateCameraRequest

Description

UpdateCameraRequest will handle the input structure for requesting an update to an existing ANPR Camera for an Organisation.

Fields
Input Field Description
title - String! The name of the On-Site ANPR Camera recorded in the Cloud DB.
serial - String Optional unique serial number (mac address) of the ANPR Camera to be updated for an Organisation.
direction - String Optional value to update the car park barrier direction for which the ANPR camera is monitoring (EG entry / exit). Please omit this value from the request if you do not wish to modify.
siteID - String Optional value to update the ID of the Site where the ANPR Camera is located. Please omit this value from the request if you do not wish to modify.
Example
{
  "title": "Some Title",
  "serial": "abc123",
  "direction": "xyz789",
  "siteID": "abc123"
}

UpdateCameraServerRequest

Description

UpdateCameraServerRequest will handle the input structure for requesting an update to an ANPR Camera Server for an Organisation.

Fields
Input Field Description
title - String! The name of the ANPR Camera Server to be updated for an Organisation.
ipAddress - String Opitional value to update the IP Address for an ANPR Camera Server record for an Organisaton. Please omit this value from the request if you do not wish to modify.
siteID - String Opitional value to update the Site ID for an ANPR Camera Server record for an Organisaton. Please omit this value from the request if you do not wish to modify.
Example
{
  "title": "Some Title",
  "ipAddress": "abc123",
  "siteID": "xyz789"
}

UpdateCardReaderRequest

Description

UpdateCardReaderRequest will handle the input values for updating an existing Card Reader for an Organisation.

Fields
Input Field Description
accessZoneName - String! The name of the Access Zone which the Reader should be associated with at a particular site.
direction - String! The direction of swipe events associated with the Reader record (EG entry or exit).
pulseTime - Int! The number of seconds for which the Reader should trigger the relay to stay open for when a successful swipe event occurs.
readerName - String! The title of the Reader record to be updated for an Organisation.
siteID - String! The ID of the Site which the updated Reader record should be associated with.
Example
{
  "accessZoneName": "xyz789",
  "direction": "xyz789",
  "pulseTime": 42,
  "readerName": "xyz789",
  "siteID": "abc123"
}

UpdateOnSiteServerRequest

Description

UpdateOnSiteServerRequest will handle the input values for updating an existing On-Site Server for an Organisation.

Fields
Input Field Description
serverName - String! The title of the On-Site Server record to be updated for an Organisation.
siteID - String Optional field for updating the ID of the Site which the updated Server record should be associated with. If this value is not required to be updated, the please omit the value from the Update Request.
serverMode - String Optional field for updating the mode value to control how the On-Site Server will communicate with Card Readers. Available options are nortech_rs232, usb and ethernet for now. If this value is not required to be updated, the please omit the value from the Update Request.
ipAddress - String Optional value to update the IP Address recorded for the On-Site Server. This value will be used to allow the tablet application to communicate with the server on site. If this value is not required to be updated, the please omit the value from the Update Request.
Example
{
  "serverName": "abc123",
  "siteID": "xyz789",
  "serverMode": "xyz789",
  "ipAddress": "xyz789"
}

UpdateOrgAccessZonesRequest

Description

UpdateOrgAccessZonesRequest will handle the input structure for requesting to update an Organisations list of available Access Zones.

Fields
Input Field Description
accessZoneList - [String!]! The list of access zones to be applied to an Organisation's account. Please note that these values will be added to the existing list of Access Zones for an Org, and will not overwrite any existing values. Please provide only new Access Zone values with a request.
Example
{"accessZoneList": ["xyz789"]}

UpdateSiteRequest

Description

UpdateSiteRequest will handle the input structure for requesting updates to an existing organisation Site.

Fields
Input Field Description
siteAccessZones - Map! A map of the Access Zones to be updated within the Site. This will contain the configuration details for each access zone. Please note that this will overwrite any existing Access Zone values for the site.
id - String! The unique ID of the Site to be updated within the database.
displayName - String! Display name of the existing Site to be updated. Please note that this value should be provided as the existing value when updating a Site and no change is required for the Display Name field.
isAccessControlEnabled - Boolean! Flag to record whether a Site record is setup to accept access control events at the Site. When set to true, the Site will be enabled for configuring Access Zones, and will also be enabled in monthly billing. Please note that if this value is set to false, the system will reject configured Access Zones for the site and the site will also not be included in monthly billing.
isAnprEnabled - Boolean! Flag to record whether a Site record is setup to accept ANPR events at the Site. When set to true, the Site will be enabled for configuring ANPR Settings, and will also be enabled in monthly billing. Please note that if this value is set to false, the site will not be included in monthly billing for ANPR.
Example
{
  "siteAccessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "id": "some-id",
  "displayName": "xyz789",
  "isAccessControlEnabled": true,
  "isAnprEnabled": true
}

UpdateTabletUserDetailsRequest

Description

UpdateTabletUserDetailsRequest will handle the input structure for updating the details of a tablet app user for an Organisation.

Fields
Input Field Description
username - String! The username of the tablet app user to be updated.
siteID - String Optional Site ID value to repurpose the Tablet User account to another site.
emailAddress - String Optional email address value to assign as the Tablet Users primary contact details.
Example
{
  "username": "xyz789",
  "siteID": "xyz789",
  "emailAddress": "example@email.com"
}

UpdateTabletUserPasswordRequest

Description

UpdateTabletUserPasswordRequest will handle the input structure for updating the password of a tablet app user for an Organisation.

Fields
Input Field Description
username - String! The username of the tablet app user to be updated.
hashedPassword - String! SHA-512 hash of the Tablet User's new password.
Example
{
  "username": "xyz789",
  "hashedPassword": "88965bcc8ac1e2d3543b67559e9bd7ec3d38517f4255055f2019ec5d32960897479e31ede74273f5867ace37eb0daa1c601c1e635fc429fe28b7434e43b6fb04833b86a31a0d9da5036e429bef1194fed250ed467b00d8b93fe26dc49d0b4b0a353f46bf0238a0d5052bec6310d64be8c1dc5a3d8eb4f593f4408fae16262d8468536963a78cc31ff9de447d68edb837d845753e5595f5d00041e0dd6854c8fdcac56fa22267fd75917cfddd02b5bcaa"
}

UpdateUserPassAccessPermissionsRequest

Description

UpdateUserPassAccessPermissionsRequest will handle the input structure for updating access permission of an existing User Pass record for an organisation.

Fields
Input Field Description
accessZones - Map! A Map of access zones for the UserPass record to grant / deny the end-user access. Please note that setting 'all' within the Readers / AccessLevels lists will grant the UserPass record access to all sites / readers. If reader verification is not required (EG Nortech panel use-case) then you may omit this value from the request. AccessLevels may also be omitted from the request if the user should not be granted entry at any site.
passType - String! Field to record the type of pass associated with this UserPass record. This value can be set to 'digital', 'plastic', 'band' or 'card'.
serialNumber - String! The unique serial number of the end-users pass which should be related to the new UserPass record.
allowedSites - [String] Optional whitelist to restrict user access to particular sites. Please note that if these restrictions are not required, then you can omit the value from the request, set to an empty array ([]) or set to all access (['all']). If setting this value, please provide the Site ID value which matches an existing Organisation Site record.
Example
{
  "accessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "passType": "abc123",
  "serialNumber": "110100000001",
  "allowedSites": ["xyz789"]
}

UpdateUserProfilePictureForTabletRequest

Description

UpdateUserProfilePictureForTabletRequest will handle the input structure for requesting to update a Profile Picture for a specified Access User record for Tablet.

Fields
Input Field Description
externalReferenceID - String! 'ExternalReferenceID' field to upload Profile Picture for a given Access User record. The image will be linked to Access User record which match on the provided 'ExternalReferenceID' value.
profilePicture - String! New Profile Picture to be associated with a Access User record. This will be used to display a profile picture against an end-user within the Tablet Application. Please note that there is a 150kb max size limit on profile pictures and images should be Base64 Encoded prior to upload. To clear an existing profile picture please provide this value as an empty string ('').
Example
{
  "externalReferenceID": "ab12cd34ef56",
  "profilePicture": "abc123"
}

UpdateUserProfilePictureRequest

Description

UpdateUserProfilePictureRequest will handle the input structure for requesting to update a Profile Picture for a specified Access User record.

Fields
Input Field Description
serialNumber - String Optional 'SerialNumber' field to upload Profile Picture to Access User record. Please note that either this value, or 'ExternalReferenceID' value should be used to link image to Access User record. When 'SerialNumber' is specified, this image will be linked to Access User record which has the 'SerialNumber' value.
externalReferenceID - String Optional 'ExternalReferenceID' field to upload Profile Picture to Access User record. Please note that either this value, or 'SerialNumber' value should be used to link image to Access User record. When 'ExternalReferenceID' is specified, this image will be linked to Access User record which match on the provided 'ExternalReferenceID' value.
profilePicture - String! New Profile Picture to be associated with a Access User record. This will be used to display a profile picture against an end-user within the Tablet Application. Please note that there is a 150kb max size limit on profile pictures and images should be Base64 Encoded prior to upload. To clear an existing profile picture please provide this value as an empty string ('').
Example
{
  "serialNumber": "110100000001",
  "externalReferenceID": "ab12cd34ef56",
  "profilePicture": "xyz789"
}

Upload

Description

Upload scalar used for single file uploads to a GraphQL endpoint (eg CSV / Image). Please see this StackOverflow post on how to use Postman to handle file uploads in GraphQL requests.

Example
Upload

UploadCarParkSettingsForSiteRequest

Description

UploadCarParkSettingsForSiteRequest will handle the input structure for requesting to upload new Car Park setting details for an Organisation's site.

Fields
Input Field Description
carParkTimeLimit - Int! The number of minutes that a vehicle is allowed to park for free in the car park on site.
Example: 240 for 4 hours.
maximumCarParkSpaces - Int! The total number of car parking spaces located with the car park at a particular Site.
parkingNotificationEmailAddresses - [String!]! An array of email addresses for sending out parking notifications when a vehicle has exceeded the free Car Parking Time Limit. Please note that there is a maximum limit of 10 email addresses that can be configured for this.
siteID - String! The ID of the Site to be updated with new Car Park Settings.
Example
{
  "carParkTimeLimit": 42,
  "maximumCarParkSpaces": 42,
  "parkingNotificationEmailAddresses": [
    "abc123"
  ],
  "siteID": "abc123"
}

UploadDarkBrandingLogoRequest

Description

UploadDarkBrandingLogoRequest will control the input structure for a request to upload a new Dark Branding Logo for an Organisation.

Fields
Input Field Description
file - Upload! Dark Logo Image file for Organisation. This image should be a dark version of the org branding logo as it will be displayed within the Tablet application on a white background. Please note that there is a 32mb limit on file uploads.
alt - String! Alt text of organisation logo for accessibility (EG Screen readers).
Example
{
  "file": Upload,
  "alt": "xyz789"
}

UploadOrgPurchaseOrderNumberRequest

Description

UploadOrgPurchaseOrderNumberRequest will control the input structure for uploading a new Purchase Order Number for including within an Organisation's Invoices.

Fields
Input Field Description
purchaseOrderNumber - String! The PO Number to be applied to an Organisation's account. Please note that this Purchase Order Number will appear within subsequent Invoices generated within the system.
Example
{"purchaseOrderNumber": "abc123"}

UploadPictureCSV

Description

UploadPictureCSV will handle the input structure for uploading a CSV file of Profile Picture records for creation.

Fields
Input Field Description
file - Upload! The file to upload as part of the request. Please note that there is a 32mb limit on CSV files, this will result in a maximum cap of around 213 profile pictures which can be uploaded in a single CSV (presuming all images are based on the max image size of 150kb). If the base64 images are smaller than 150kb, you will be able to upload more than 213 records per CSV.
emailAddresses - [String!]! List of email addresses to receive results of the batch request upon completion. Please note that there is a limit of 10 email addresses to receive results per request.
Example
{
  "file": Upload,
  "emailAddresses": ["abc123"]
}

UploadPictureCSVResponse

Description

UploadPictureCSVResponse will control the response structure when uploading a Profile Picture CSV file for import.

Fields
Field Name Description
message - String! The message returned from the service.
batchID - String! Unique ID of batch request for CSV upload.
Example
{
  "message": "Response message containing results of API request",
  "batchID": "xyz789"
}

UploadUserAccessCSV

Description

UploadUserAccessCSV will handle the input structure for uploading a CSV file of User Access records for creation.

Fields
Input Field Description
file - Upload! The file to upload as part of the request.
emailAddresses - [String!]! List of email addresses to receive results of the batch request upon completion. Please note that there is a limit of 10 email addresses to receive results per request.
Example
{
  "file": Upload,
  "emailAddresses": ["xyz789"]
}

UploadUserAccessCSVResponse

Description

UploadUserAccessCSVResponse will control the response structure when uploading a User Access CSV file for import.

Fields
Field Name Description
message - String! The message returned from the service.
batchID - String! Unique ID of batch request for CSV upload
Example
{
  "message": "Response message containing results of API request",
  "batchID": "abc123"
}

UserAccess

Description

UserAccess will handle the structure of an access record for an end-user when verifying access at swipe time.

Fields
Field Name Description
accessZones - Map! A Map of access zones for the UserAccess record to grant / deny the end-user access. Please note that setting 'all' within the Readers / AccessLevels lists will grant the user access record access to all sites / readers. If reader verification is not required (EG Nortech panel use-case) then you may omit this value from the request. AccessLevels may also be omitted from the request if the user should not be granted entry at any site.
accountID - String! Optional Account ID field to record the end-users account details against their UserAccess record for reporting purposes (EG Membership Number, Account Number, etc). This value may be left blank if not required by Organisation.
activationDate - Time Optional activation date to specify what point in time should the UserAccess record should be granted access. This value will be null when there is no activation time set for the User Access record (EG access granted immediately).
created - Time! Created timestamp of when the UserAccess record was first registered within the platform.
creator - String! The email address of the system user who first created the UserAccess record within the platform.
dateOfBirth - String! Optional field to record the end-users date of birth against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation.
expiryDate - Time Optional expiry date to specify when an end-users access should be automatically revoked. This may be set to null if it is a long running pass without an expiry set (EG membership pass).
externalReferenceID - String! Required field to record the end-users External Reference ID against their UserAccess record for reporting purposes. Please note this value should represent the unique Customer ID value as defined by your organisations external system.
firstName - String! Optional field to record the end-users first name against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation.
homeSite - String! Optional field to record the end-users home site against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation. If setting this value, this will be verified against Site ID values configured for the Organisation.
latestJoinDate - String! Optional field to record the end-users Latest Join Date against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation.
lastModified - Time! Last Modified timestamp of when the UserAccess record was last updated within the platform.
lastName - String! Optional field to record the end-users last name against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation.
lastImageSyncTimestamp - Time Optional field to record when the record last synced the most recent profile picture for the UserAccess record.
modifier - String! The email address of the system user who last modified the UserAccess record within the platform.
packageName - String! Optional field to record the end-users package name against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation.
packageCategory - String! Optional field to record the end-users package category against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation.
passType - String! Field to record the type of pass associated with this User Access record. This value can be set to 'digital', 'plastic', 'band' or 'card'.
postCode - String! Optional field to record the end-users post code against their UserAccess record for reporting purposes. This value may be left blank if not required by Organisation.
profilePicture - String Optional field for recording a Profile Picture against a User Access record. This will be used to display a profile picture against an end-user within the Tablet Application. Please note that there is a 150kb max size limit on profile pictures. If pictures are not required, then you may omit this value from the request, or set to an empty string ('').
serialNumber - String! The unique serial number of the end-users pass which relates to their UserAccess record.
serialNumberInt - Int! The unique serial number of the end-users pass which has been converted to an integer. This value is used by systems with variable card number lengths.
accessLevelList - [String!]! A list of AccessLevels which the user has been assigned permissions. Please note that this may be set to 'all' when the user has access to all sites. This value is automatically generated by the system based on the AccessZone values configured for the UserAccess record.
allowedSites - [String] Optional whitelist to restrict user access to particular sites. Please note that if these restrictions are not required, then you can omit the value from the request, set to an empty array ([]) or set to all access (['all']). If setting this value, please provide the Site ID value which matches an existing Organisation Site record.
Example
{
  "accessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "accountID": "abc123",
  "activationDate": "2024-03-23T17:21:00Z",
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "dateOfBirth": "abc123",
  "expiryDate": "2024-03-23T17:21:00Z",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "abc123",
  "homeSite": "abc123",
  "latestJoinDate": "abc123",
  "lastModified": "2024-03-23T17:21:00Z",
  "lastName": "xyz789",
  "lastImageSyncTimestamp": "2024-03-23T17:21:00Z",
  "modifier": "example@email.com",
  "packageName": "xyz789",
  "packageCategory": "abc123",
  "passType": "abc123",
  "postCode": "xyz789",
  "profilePicture": "xyz789",
  "serialNumber": "110100000001",
  "serialNumberInt": 42,
  "accessLevelList": ["xyz789"],
  "allowedSites": ["xyz789"]
}

UserPass

Description

UserPass will handle the structure of an user pass generated for an access user record (end-user) when verifying access at swipe time.

Fields
Field Name Description
accessZones - Map! A Map of access zones for the UserPass record to grant / deny the end-user access. Please note that setting 'all' within the Readers / AccessLevels lists will grant the user access record access to all sites / readers. If reader verification is not required (EG Nortech panel use-case) then you may omit this value from the request. AccessLevels may also be omitted from the request if the user should not be granted entry at any site.
activationDate - Time Optional activation date to specify what point in time should the UserPass record should be granted access. This value will be null when there is no activation time set for the User Access record (EG access granted immediately).
created - Time! Created timestamp of when the UserPass record was first registered within the platform.
creator - String! The email address of the system user who first created the UserPass record within the platform.
expiryDate - Time Optional expiry date to specify when an end-users access should be automatically revoked. This may be set to null if it is a long running pass without an expiry set (EG membership pass).
externalReferenceID - String! Required field to record the end-users External Reference ID against their UserPass record for reporting purposes. This value will represent the unique Customer ID value as defined by your organisations external system.
firstName - String! Field to record the end-users first name against their UserPass record for reporting purposes.
lastModified - Time! Last Modified timestamp of when the UserPass record was last updated within the platform.
lastName - String! Field to record the end-users last name against their UserPass record for reporting purposes.
modifier - String! The email address of the system user who last modified the UserPass record within the platform.
passType - String! Field to record the type of pass associated with this User Access record. This value can be set to 'digital', 'plastic', 'band' or 'card'.
hasProfilePicture - Boolean Optional field for recording a if a User Pass record has a Profile Picture. This will be used to display a profile picture against an end-user within the Tablet Application. Please note that there is a 150kb max size limit on profile pictures.
serialNumber - String! The unique serial number of the end-users pass which relates to their UserPass record.
serialNumberInt - Int! The unique serial number of the end-users pass which has been converted to an integer. This value is used by systems with variable card number lengths.
accessLevelList - [String!]! A list of AccessLevels which the user has been assigned permissions. Please note that this may be set to 'all' when the user has access to all sites. This value is automatically generated by the system based on the AccessZone values configured for the UserPass record.
allowedSites - [String] Optional whitelist to restrict user access to particular sites. Please note that if these restrictions are not required, then you can omit the value from the request, set to an empty array ([]) or set to all access (['all']). If setting this value, please provide the Site ID value which matches an existing Organisation Site record.
Example
{
  "accessZones": {"some_key": "Some Value", "another_key": "Another Value"},
  "activationDate": "2024-03-23T17:21:00Z",
  "created": "2024-03-23T17:21:00Z",
  "creator": "example@email.com",
  "expiryDate": "2024-03-23T17:21:00Z",
  "externalReferenceID": "ab12cd34ef56",
  "firstName": "abc123",
  "lastModified": "2024-03-23T17:21:00Z",
  "lastName": "abc123",
  "modifier": "example@email.com",
  "passType": "abc123",
  "hasProfilePicture": true,
  "serialNumber": "110100000001",
  "serialNumberInt": 42,
  "accessLevelList": ["abc123"],
  "allowedSites": ["abc123"]
}