Golioth Management API

REST API for managing Golioth projects, devices, credentials, blueprints, tags, settings, OTA firmware artifacts and releases, RPC, logs, and Pipelines. Documented with an OpenAPI 3 definition served by the API itself. Authenticated with a project-scoped API key in the x-api-key header.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

golioth-openapi.yml Raw ↑
components:
  schemas:
    AccessInviteUserBody:
      properties:
        email:
          type: string
      type: object
    BillingCreateCustomerPortalSessionBody:
      properties:
        callbackPath:
          type: string
      type: object
    DeviceRemoteProcedureCallRemoteProcedureCallBody:
      properties:
        method:
          type: string
        params:
          items: {}
          type: array
        timeout:
          format: int64
          type: integer
      type: object
    DeviceStreamGetDeviceStreamBody:
      properties:
        encodedQuery:
          type: string
        end:
          format: date-time
          type: string
        interval:
          type: string
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        query:
          $ref: '#/components/schemas/goliothDeviceStreamQuery'
        start:
          format: date-time
          type: string
      type: object
    DeviceStreamGetProjectStreamBody:
      properties:
        deviceId:
          items:
            type: string
          type: array
        encodedQuery:
          type: string
        end:
          format: date-time
          type: string
        interval:
          type: string
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        query:
          $ref: '#/components/schemas/goliothDeviceStreamQuery'
        start:
          format: date-time
          type: string
        tags:
          items:
            type: string
          type: array
      type: object
    IntegrationsTestBody:
      properties:
        data:
          type: object
      type: object
    IntegrationsValidateBody:
      properties:
        configuration:
          type: object
        enabled:
          type: boolean
        name:
          type: string
        type:
          type: string
      type: object
    ListUsageResponseUsageEntity:
      default: PROJECT
      enum:
      - PROJECT
      - DEVICE
      - PIPELINE
      type: string
    NotificationLevel:
      default: INFO
      enum:
      - INFO
      - WARNING
      - ERROR
      type: string
    PKICreatePKIPolicyBody:
      properties:
        policyId:
          type: string
        providerId:
          type: string
        type:
          type: string
      type: object
    PKIUpdatePKIPolicyBody:
      properties:
        providerId:
          type: string
        type:
          type: string
      type: object
    ProjectConfigSetBody:
      properties:
        value:
          $ref: '#/components/schemas/goliothProjectConfigValue'
      type: object
    ProvisioningProvisionDeviceBody:
      properties:
        blueprintId:
          type: string
        cohortId:
          title: 'string publicKey

            string encryption'
          type: string
        hardwareIds:
          items:
            type: string
          type: array
        identity:
          type: string
        name:
          type: string
        preSharedKey:
          type: string
        tagIds:
          items:
            type: string
          type: array
        type:
          $ref: '#/components/schemas/goliothCredentialType'
      type: object
    comgoliothTag:
      properties:
        createdAt:
          format: date-time
          type: string
        id:
          type: string
        name:
          type: string
        updatedAt:
          format: date-time
          type: string
      type: object
    goliothAPIKey:
      properties:
        createdAt:
          format: date-time
          type: string
        id:
          type: string
        key:
          type: string
        keyTags:
          items:
            type: string
          type: array
        name:
          type: string
        policyId:
          type: string
        roles:
          items:
            type: string
          type: array
        secret:
          type: string
        type:
          $ref: '#/components/schemas/goliothAPIKeyType'
      type: object
    goliothAPIKeyType:
      default: API_KEY
      enum:
      - API_KEY
      - JWT_KEY
      - API_KEY_V2
      type: string
    goliothAPIKeyUpdate:
      properties:
        keyTags:
          items:
            type: string
          type: array
        name:
          type: string
        type:
          $ref: '#/components/schemas/goliothAPIKeyType'
      type: object
    goliothAPIKeysCreateBody:
      properties:
        keyTags:
          items:
            type: string
          type: array
        name:
          type: string
        type:
          $ref: '#/components/schemas/goliothAPIKeyType'
      type: object
    goliothAWSAuthOptionsAccessKey:
      properties:
        accessKeyId:
          type: string
        secretAccessKey:
          type: string
      title: Access key based authentication
      type: object
    goliothAWSAuthOptionsWebIdentity:
      properties:
        roleArn:
          description: ARN for the AWS IAM Role the Golioth PKI Service should assume.
          type: string
      title: WebIdentity based authentication
      type: object
    goliothAWSProviderOptions:
      properties:
        accessKey:
          $ref: '#/components/schemas/goliothAWSAuthOptionsAccessKey'
        region:
          title: AWS region, e.g. us-east-1
          type: string
        webIdentity:
          $ref: '#/components/schemas/goliothAWSAuthOptionsWebIdentity'
      type: object
    goliothAWSProviderOptionsResponse:
      properties:
        accessKey:
          type: string
        region:
          title: AWS region, e.g. us-east-1
          type: string
        webIdentity:
          $ref: '#/components/schemas/goliothAWSAuthOptionsWebIdentity'
      type: object
    goliothAddProviderResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothProvider'
      type: object
    goliothArtifact:
      properties:
        binaryInfo:
          type: object
        blueprintId:
          type: string
        createdAt:
          format: date-time
          type: string
        id:
          type: string
        package:
          type: string
        size:
          format: uint64
          type: string
        updatedAt:
          format: date-time
          type: string
        version:
          type: string
      type: object
    goliothArtifactUpdate:
      type: object
    goliothBlueprint:
      properties:
        boardId:
          type: string
        createdAt:
          format: date-time
          type: string
        id:
          type: string
        name:
          type: string
        platform:
          type: string
        updatedAt:
          format: date-time
          type: string
      type: object
    goliothBlueprintUpdate:
      properties:
        boardId:
          type: string
        name:
          type: string
        platform:
          type: string
      type: object
    goliothBlueprintsCreateBody:
      properties:
        boardId:
          type: string
        name:
          type: string
        platform:
          type: string
      type: object
    goliothBoard:
      properties:
        arch:
          type: string
        id:
          type: string
        name:
          type: string
        platforms:
          items:
            type: string
          type: array
      type: object
    goliothCertificate:
      properties:
        certType:
          type: string
        certificateContent:
          $ref: '#/components/schemas/goliothCertificateContent'
        createdAt:
          format: date-time
          type: string
        demo:
          type: boolean
        enabled:
          type: boolean
        id:
          type: string
        projectId:
          type: string
      type: object
    goliothCertificateContent:
      properties:
        issuer:
          type: string
        keyUsages:
          items:
            type: string
          type: array
        notAfter:
          format: date-time
          type: string
        notBefore:
          format: date-time
          type: string
        publicKey:
          format: byte
          type: string
        publicKeyAlgorithm:
          type: string
        serialNumber:
          type: string
        signature:
          format: byte
          type: string
        signatureAlgorithm:
          type: string
        subject:
          type: string
        version:
          format: int64
          type: integer
      type: object
    goliothCertificatesCreateBody:
      properties:
        certFile:
          format: byte
          type: string
        certType:
          type: string
        demo:
          type: boolean
      type: object
    goliothCohort:
      properties:
        activeDeploymentId:
          type: string
        cohortId:
          type: string
        createdAt:
          format: date-time
          type: string
        deviceCount:
          format: int64
          type: integer
        name:
          type: string
        updatedAt:
          format: date-time
          type: string
      type: object
    goliothCohortUpdate:
      properties:
        name:
          type: string
      type: object
    goliothCohortsCreateBody:
      properties:
        name:
          type: string
      type: object
    goliothConditionalMap:
      properties:
        tags:
          items:
            type: string
          type: array
      type: object
    goliothCreateAPIKeyResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothAPIKey'
      type: object
    goliothCreateArtifactRequest:
      properties:
        blueprintId:
          type: string
        content:
          format: byte
          type: string
        package:
          type: string
        projectId:
          type: string
        version:
          type: string
      type: object
    goliothCreateArtifactResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothArtifact'
      type: object
    goliothCreateBlueprintResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothBlueprint'
      type: object
    goliothCreateCertificateResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothCertificate'
      type: object
    goliothCreateCohortResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothCohort'
      type: object
    goliothCreateCredentialResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothCredential'
      type: object
    goliothCreateCustomerPortalResponse:
      properties:
        url:
          type: string
      type: object
    goliothCreateDeploymentResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothDeployment'
      type: object
    goliothCreateDeviceResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothDevice'
      type: object
    goliothCreateIntegrationResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothIntegration'
      type: object
    goliothCreateOrganizationRequest:
      properties:
        name:
          type: string
        website:
          type: string
      type: object
    goliothCreateOrganizationResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothOrganization'
      type: object
    goliothCreatePKIPolicyResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPKIPolicy'
      type: object
    goliothCreatePackageResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPackage'
      type: object
    goliothCreatePipelineResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPipeline'
      type: object
    goliothCreateProjectRequest:
      properties:
        name:
          type: string
        organizationId:
          type: string
      type: object
    goliothCreateProjectResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothProject'
      type: object
    goliothCreateReleaseResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothRelease'
      type: object
    goliothCreateSecretResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothSecret'
      type: object
    goliothCreateSettingResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothSetting'
      type: object
    goliothCreateTagResponse:
      properties:
        data:
          $ref: '#/components/schemas/comgoliothTag'
      type: object
    goliothCredential:
      properties:
        createdAt:
          format: date-time
          type: string
        id:
          type: string
        identity:
          type: string
        preSharedKey:
          type: string
        type:
          $ref: '#/components/schemas/goliothCredentialType'
      type: object
    goliothCredentialType:
      default: PRE_SHARED_KEY
      enum:
      - PRE_SHARED_KEY
      - ASYMMETRIC_KEY_PAIR
      type: string
    goliothCredentialsCreateBody:
      properties:
        deviceId:
          type: string
        identity:
          type: string
        preSharedKey:
          type: string
        type:
          $ref: '#/components/schemas/goliothCredentialType'
      type: object
    goliothDeleteAPIKeyResponse:
      type: object
    goliothDeleteArtifactResponse:
      type: object
    goliothDeleteBlueprintResponse:
      type: object
    goliothDeleteCertificateResponse:
      type: object
    goliothDeleteCohortResponse:
      type: object
    goliothDeleteCredentialResponse:
      type: object
    goliothDeleteDeviceResponse:
      type: object
    goliothDeleteDeviceStateResponse:
      type: object
    goliothDeleteIntegrationResponse:
      type: object
    goliothDeletePKIPolicyResponse:
      type: object
    goliothDeletePackageResponse:
      type: object
    goliothDeletePipelineResponse:
      type: object
    goliothDeletePolicyResponse:
      type: object
    goliothDeleteProjectResponse:
      type: object
    goliothDeleteProviderResponse:
      type: object
    goliothDeleteReleaseResponse:
      type: object
    goliothDeleteSecretResponse:
      type: object
    goliothDeleteSettingResponse:
      type: object
    goliothDeleteTagResponse:
      type: object
    goliothDeployment:
      properties:
        artifactIds:
          items:
            type: string
          type: array
        createdAt:
          format: date-time
          type: string
        deploymentId:
          type: string
        name:
          type: string
      type: object
    goliothDeploymentsCreateBody:
      properties:
        artifactIds:
          items:
            type: string
          type: array
        name:
          type: string
      type: object
    goliothDevice:
      properties:
        blueprintId:
          title: Blueprint ID assigned to the device
          type: string
        certificateId:
          title: Certificate ID assigned to the device, if the device uses certificate-based authentication
          type: string
        cohortId:
          title: Cohort ID of the cohort the device belongs to
          type: string
        createdAt:
          format: date-time
          title: Timestamp of device creation
          type: string
        data:
          title: Requested device data
          type: object
        enabled:
          title: Whether the device is enabled
          type: boolean
        hardwareIds:
          items:
            type: string
          title: List of hardware IDs associated with the device
          type: array
        id:
          title: Unique device ID
          type: string
        lastReport:
          format: date-time
          title: 'Deprecated: Use metadata.last_report instead'
          type: string
        metadata:
          $ref: '#/components/schemas/goliothDeviceMetadata'
        name:
          title: Name of the device
          type: string
        status:
          title: 'Deprecated: Use metadata.status instead'
          type: string
        tagIds:
          items:
            type: string
          title: List of tag IDs attached to the device
          type: array
        updatedAt:
          format: date-time
          title: Timestamp of the last update to the device
          type: string
      type: object
    goliothDeviceActivityLog:
      properties:
        deviceId:
          type: string
        deviceName:
          type: string
        id:
          type: string
        lastReport:
          format: date-time
          type: string
        lastSeenOffline:
          format: date-time
          type: string
        lastSeenOnline:
          format: date-time
          type: string
        status:
          type: string
      type: object
    goliothDeviceLogEntry:
      description: Event generated when a device sends logs.
      example:
        device_id: 612d3cecf3ee17d321adbec6
        level: 2
        message: Hello
        metadata: {}
        module: default
        project_id: esp32-test
        timestamp:
          nanos: 250818000
          seconds: 1642796612
      properties:
        deviceId:
          type: string
        level:
          $ref: '#/components/schemas/goliothDeviceLogLevel'
        message:
          type: string
        metadata:
          type: object
        module:
          type: string
        moduleId:
          type: string
        timestamp:
          format: date-time
          type: string
        type:
          $ref: '#/components/schemas/goliothDeviceLogType'
      type: object
    goliothDeviceLogLevel:
      default: NONE
      enum:
      - NONE
      - DEBUG
      - INFO
      - WARN
      - ERROR
      type: string
    goliothDeviceLogType:
      default: LOGGING
      enum:
      - LOGGING
      - DIAGNOSTICS
      - METRICS
      type: string
    goliothDeviceMetadata:
      properties:
        lastReport:
          format: date-time
          title: Timestamp of latest device activity
          type: string
        lastSeenOffline:
          format: date-time
          title: Deprecated, use last_seen_online instead
          type: string
        lastSeenOnline:
          format: date-time
          title: Timestamp of when the device was last seen online
          type: string
        lastSettingsStatus:
          $ref: '#/components/schemas/goliothSettingsStatus'
        status:
          title: Deprecated, always returns `-`
          type: string
        update:
          description: Latest Firmware Update information.
          type: object
      type: object
    goliothDeviceStreamQuery:
      properties:
        fields:
          items:
            $ref: '#/components/schemas/goliothQueryField'
          type: array
        filters:
          items:
            $ref: '#/components/schemas/goliothQueryFilter'
          type: array
        timeBucket:
          type: string
      type: object
    goliothDeviceUpdate:
      properties:
        addHardwareId:
          items:
            type: string
          title: Hardware IDs to append for this device
          type: array
        addTagId:
          items:
            type: string
          title: Tag IDs to append for this device
          type: array
        blueprintId:
          title: Optional Blueprint ID to assign to the device
          type: string
        cohortId:
          description: 'Optional Cohort ID to assign the device to.

            Setting to an empty string removes the device from its cohort without assigning it to a new one.'
          type: string
        enabled:
          title: Optionally enable or disable the device
          type: boolean
        hardwareIds:
          items:
            type: string
          title: Full list of hardware IDs to set for this device, replacing any existing ones
          type: array
        name:
          title: Optional new name for the device
          type: string
        removeHardwareId:
          items:
            type: string
          title: Hardware IDs to remove from this device
          type: array
        removeTagId:
          items:
            type: string
          title: Tag IDs to remove from this device
          type: array
        tagIds:
          items:
            type: string
          title: Full list of tag IDs to set for this device, replacing any existing ones
          type: array
      type: object
    goliothDevicesCreateBody:
      properties:
        blueprintId:
          title: Optional Blueprint ID to assign to the device
          type: string
        cohortId:
          title: Optional Cohort ID to assign the device to
          type: string
        hardwareIds:
          items:
            type: string
          title: Optional list of hardware IDs to add to the device. A single hardware ID will be generated if none are specified
          type: array
        name:
          title: Name of the device. Must be unique within the project
          type: string
        tagIds:
          items:
            type: string
          title: Optional list of tag IDs to attach to the device
          type: array
      type: object
    goliothFirmwareLogEntry:
      properties:
        deviceId:
          type: string
        package:
          type: string
        reason:
          type: string
        reasonCode:
          type: string
        state:
          type: string
        stateCode:
          type: string
        target:
          type: string
        time:
          format: date-time
          type: string
        version:
          type: string
      type: object
    goliothGetArtifactResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothArtifact'
      type: object
    goliothGetBlueprintResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothBlueprint'
      type: object
    goliothGetBoardsResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothBoard'
      type: object
    goliothGetCertificateResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothCertificate'
      type: object
    goliothGetCohortResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothCohort'
      type: object
    goliothGetDeploymentResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothDeployment'
      type: object
    goliothGetDeviceResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothDevice'
      type: object
    goliothGetDeviceStateResponse:
      properties:
        data: {}
      type: object
    goliothGetDeviceStreamResponse:
      properties:
        list:
          items: {}
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothGetErrorStatsResponse:
      properties:
        errors:
          additionalProperties:
            $ref: '#/components/schemas/goliothPipelineErrorSummaries'
          type: object
      type: object
    goliothGetIntegrationResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothIntegration'
      type: object
    goliothGetLatestDeviceActivityLogsResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothDeviceActivityLog'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothGetLogsResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothDeviceLogEntry'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothGetOrganizationResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothOrganization'
      type: object
    goliothGetPKIPolicyResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPKIPolicy'
      type: object
    goliothGetPackageResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPackage'
      type: object
    goliothGetPipelineResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPipeline'
      type: object
    goliothGetPolicyResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPolicy'
      type: object
    goliothGetProjectConfigResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothProjectConfigSetting'
      type: object
    goliothGetProjectResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothProject'
      type: object
    goliothGetProjectStreamResponse:
      properties:
        list:
          items: {}
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothGetProviderResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothProvider'
      type: object
    goliothGetProviderStatusResponse:
      properties:
        caCerts:
          format: int64
          type: integer
        error:
          type: string
        id:
          type: string
      type: object
    goliothGetReleaseResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothRelease'
      type: object
    goliothGetSecretResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothSecret'
      type: object
    goliothGetSettingResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothSetting'
          type: array
        total:
          format: int64
          type: integer
      type: object
    goliothGetTagResponse:
      properties:
        data:
          $ref: '#/components/schemas/comgoliothTag'
      type: object
    goliothIntegration:
      properties:
        configuration:
          type: object
        createdAt:
          format: date-time
          type: string
        enabled:
          type: boolean
        id:
          type: string
        name:
          type: string
        type:
          type: string
        updatedAt:
          format: date-time
          type: string
      type: object
    goliothIntegrationType:
      properties:
        attributes:
          items:
            $ref: '#/components/schemas/goliothIntegrationTypeAttribute'
          type: array
        description:
          type: string
        name:
          type: string
        type:
          type: string
      type: object
    goliothIntegrationTypeAttribute:
      properties:
        description:
          type: string
        displayName:
          type: string
        name:
          type: string
        required:
          type: boolean
        type:
          type: string
      type: object
    goliothIntegrationUpdate:
      properties:
        configuration:
          type: object
        enabled:
          type: boolean
        name:
          type: string
      type: object
    goliothIntegrationValidationResponse:
      type: object
    goliothIntegrationsCreateBody:
      properties:
        configuration:
          type: object
        enabled:
          type: boolean
        name:
          type: string
        type:
          type: string
      type: object
    goliothInviteUserResponse:
      properties:
        data:
          $ref: '#/components/schemas/goliothPolicy'
      type: object
    goliothListAPIKeyResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothAPIKey'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListAllowedSettingsDataTypesResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothSettingDataType'
          type: array
        total:
          format: int64
          type: integer
      type: object
    goliothListArtifactResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothArtifact'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListBlueprintResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothBlueprint'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListBoardsResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothBoard'
          type: array
        total:
          format: int64
          type: integer
      type: object
    goliothListCertificateResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothCertificate'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListCohortResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothCohort'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListCredentialResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothCredential'
          type: array
      type: object
    goliothListDeploymentResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothDeployment'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListDeviceResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothDevice'
          title: List of devices
          type: array
        page:
          format: int64
          title: Pagination page number
          type: integer
        perPage:
          format: int64
          title: Pagination items per page
          type: integer
        total:
          format: int64
          title: Total number of devices matching the request
          type: integer
      type: object
    goliothListFirmwareLogsResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothFirmwareLogEntry'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListIntegrationResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothIntegration'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          format: int64
          type: integer
        total:
          format: int64
          type: integer
      type: object
    goliothListIntegrationTypesResponse:
      properties:
        list:
          items:
            $ref: '#/components/schemas/goliothIntegrationType'
          type: array
        page:
          format: int64
          type: integer
        perPage:
          for

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