openapi: 3.2.0 info: title: Kelowna Production Dorsal API version: v1 tags: - name: Dorsal paths: /Hardware/Dorsal/GraphData: get: tags: - Dorsal summary: Retrieves graphs for Dorsal with downsampled data description: The data is downsampled into up to 500 buckets, and the averages are returned. parameters: - name: startTime in: query description: The start date and time. schema: type: string format: date-time - name: endTime in: query description: The end date and time. schema: type: string format: date-time - name: readyMixUnitId in: query description: ID of the RM unit to fetch telemetry data for. schema: type: integer format: int32 - name: runConcurrently in: query description: If the queries should run concurrently. On by default, disabled only for testing. schema: type: boolean default: true responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/DorsalGraphs' application/json: schema: $ref: '#/components/schemas/DorsalGraphs' text/json: schema: $ref: '#/components/schemas/DorsalGraphs' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getHardwareDorsalGraphData x-operation-id-source: derived /Hardware/Dorsal/Table: get: tags: - Dorsal summary: Returns raw, unsampled data from the specified tables combined into a single… parameters: - name: startTime in: query description: The start date and time. schema: type: string format: date-time - name: endTime in: query description: The end date and time. schema: type: string format: date-time - name: readyMixUnitId in: query description: ID of the RM unit to fetch telemetry data for. schema: type: integer format: int32 - name: includeInjections in: query description: Include injection data. schema: type: boolean default: true - name: includeReadings in: query description: Include injection reading data. Referred to as "MMD Logs" in the UI. schema: type: boolean default: true - name: includeStatuses in: query description: Include status data. Referred to as "Inlet Logs" in the UI. schema: type: boolean default: true - name: includeAlarms in: query description: Include alarm data. schema: type: boolean default: true - name: limit in: query description: Maximum number of rows to return. If not specified, a maximum of 100,000 rows are returned. schema: type: integer format: int32 - name: fromTime in: query description: Lastest timestamp from the previous response. Used for pagination. schema: type: string format: date-time - name: fromTable in: query description: Latest source table from the previous response. Used for pagination. schema: $ref: '#/components/schemas/TableRanking' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/DorsalTable' application/json: schema: $ref: '#/components/schemas/DorsalTable' text/json: schema: $ref: '#/components/schemas/DorsalTable' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getHardwareDorsalTable x-operation-id-source: derived /Hardware/Dorsal/Table/Download: get: tags: - Dorsal summary: Downloads raw data from the specified tables, within selected time range, up to… parameters: - name: startTime in: query description: The start date and time. schema: type: string format: date-time - name: endTime in: query description: The end date and time. schema: type: string format: date-time - name: readyMixUnitId in: query description: ID of the RM unit to fetch telemetry data for. schema: type: integer format: int32 - name: includeInjections in: query description: Include injection data. schema: type: boolean default: true - name: includeReadings in: query description: Include injection reading data. Referred to as "MMD Logs" in the UI. schema: type: boolean default: true - name: includeAlarms in: query description: Include alarm data. schema: type: boolean default: true - name: includeStatuses in: query description: Include status data. Referred to as "Inlet Logs" in the UI. schema: type: boolean default: true responses: '200': description: OK security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getHardwareDorsalTableDownload x-operation-id-source: derived /Hardware/Dorsal/SystemInfo/{readyMixUnitId}: get: tags: - Dorsal summary: Fetches general info for a ready mix unit, along with the start and end time of… parameters: - name: readyMixUnitId in: path description: ID of the ready mix unit. required: true schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/DorsalSystemInfoArgs' application/json: schema: $ref: '#/components/schemas/DorsalSystemInfoArgs' text/json: schema: $ref: '#/components/schemas/DorsalSystemInfoArgs' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getHardwareDorsalSystemInfoByReadyMixUnitId x-operation-id-source: derived /Hardware/Dorsal/Connectivity/{readyMixUnitId}: get: tags: - Dorsal summary: Fetches connectivity info for a ready mix unit - whether it's online or not… parameters: - name: readyMixUnitId in: path description: ID of the ready mix unit. required: true schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/DorsalSystemConnectivity' application/json: schema: $ref: '#/components/schemas/DorsalSystemConnectivity' text/json: schema: $ref: '#/components/schemas/DorsalSystemConnectivity' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getHardwareDorsalConnectivityByReadyMixUnitId x-operation-id-source: derived /Hardware/Dorsal/Watch/{readyMixUnitId}: get: tags: - Dorsal summary: Checks whether the current user is "watching" a ready mix unit parameters: - name: readyMixUnitId in: path description: ID of the ready mix unit. required: true schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/WatchDetails' application/json: schema: $ref: '#/components/schemas/WatchDetails' text/json: schema: $ref: '#/components/schemas/WatchDetails' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getHardwareDorsalWatchByReadyMixUnitId x-operation-id-source: derived post: tags: - Dorsal summary: Updates whether the current user is "watching" a ready mix unit parameters: - name: readyMixUnitId in: path description: ID of the ready mix unit. required: true schema: type: integer format: int32 - name: isWatching in: query description: Whether the current user should be set as watching the ready mix unit. schema: type: boolean responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/WatchDetails' application/json: schema: $ref: '#/components/schemas/WatchDetails' text/json: schema: $ref: '#/components/schemas/WatchDetails' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: postHardwareDorsalWatchByReadyMixUnitId x-operation-id-source: derived components: schemas: IpConnectivity: type: object properties: isAccessible: type: boolean statusValidSince: type: - string - 'null' format: date-time additionalProperties: false DorsalSystemInfoArgs: type: object properties: system: $ref: '#/components/schemas/SystemInfoArgs' suggestedStartTime: type: - string - 'null' format: date-time suggestedEndTime: type: - string - 'null' format: date-time additionalProperties: false InternalTeamArgs: type: object properties: userId: type: integer format: int32 name: type: - string - 'null' email: type: - string - 'null' isDisabled: type: boolean designation: $ref: '#/components/schemas/InternalTeamDesignation' additionalProperties: false TableRanking: enum: - Injections - Readings - Statuses - Alarms type: string SonarSystemSnoozeReason: enum: - Seasonal - MaintenanceProducer - MaintenanceCarbonCure - MaintenanceCO2Tank - Churned - Inactive - Other type: string InternalTeamDesignation: enum: - Hardware - AccountManager - Tss - Tpm type: string DorsalSystemConnectivity: type: object properties: airlinkConnectivity: $ref: '#/components/schemas/IpConnectivity' hmiConnectivity: $ref: '#/components/schemas/IpConnectivity' plcConnectivity: $ref: '#/components/schemas/IpConnectivity' additionalProperties: false OrificeType: enum: - Single - Dual - Triple type: string SystemInfoArgs: type: object properties: readyMixUnitId: type: integer format: int32 divisionId: type: integer format: int32 divisionName: type: - string - 'null' plantId: type: integer format: int32 plantName: type: - string - 'null' workflowName: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' hmiId: type: integer format: int32 valveEnclosureSerial: type: - string - 'null' airlinkIpAddress: type: - string - 'null' readOnly: true hmiIpAddress: type: - string - 'null' readOnly: true plcIpAddress: type: - string - 'null' readOnly: true usbLink: type: - string - 'null' readOnly: true sdLink: type: - string - 'null' readOnly: true ftpLink: type: - string - 'null' readOnly: true customerSuccessName: type: - string - 'null' isOperational: type: boolean isDown: type: boolean serial: type: - string - 'null' address: type: - string - 'null' lastSeen: type: string format: date-time latestInjectionTimestamp: type: - string - 'null' format: date-time isSnoozed: type: boolean snoozeReason: $ref: '#/components/schemas/SonarSystemSnoozeReason' snoozeReasonDetails: type: - string - 'null' snoozeUntilTimestamp: type: - string - 'null' format: date-time internalTeam: type: - array - 'null' items: $ref: '#/components/schemas/InternalTeamArgs' productionMachineLink: type: - string - 'null' orificeType: $ref: '#/components/schemas/OrificeType' additionalProperties: false DorsalTableRow: type: object properties: timestamp: type: string format: date-time inletLiquidPressurePsi: type: - number - 'null' format: double inletGasPressurePsi: type: - number - 'null' format: double upstreamTemperatureC: type: - number - 'null' format: double downstreamPressure0Psi: type: - number - 'null' format: double downstreamPressure1Psi: type: - number - 'null' format: double downstreamPressure2Psi: type: - number - 'null' format: double upstreamPressurePsi: type: - number - 'null' format: double flowRateKgPerSec: type: - number - 'null' format: double injectedCO2Kg: type: - number - 'null' format: double mixTimeSeconds: type: - integer - 'null' format: int32 alarmCode: type: - integer - 'null' format: int32 alarmMessage: type: - string - 'null' additionalProperties: false DorsalTable: type: object properties: fromTime: type: - string - 'null' format: date-time fromTable: $ref: '#/components/schemas/TableRanking' data: type: - array - 'null' items: $ref: '#/components/schemas/DorsalTableRow' additionalProperties: false DorsalGraphs: type: object properties: intervalSeconds: type: integer format: int64 injectedCO2Kg: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' inletLiquidPressurePsi: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' downstreamPressure0Psi: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' downstreamPressure1Psi: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' downstreamPressure2Psi: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' upstreamPressurePsi: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' inletGasPressurePsi: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' flowRateKgPerSec: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' temperatureC: type: - array - 'null' items: $ref: '#/components/schemas/DorsalDataPoint' alarms: type: - array - 'null' items: $ref: '#/components/schemas/AlarmDataPoint' additionalProperties: false WatchDetails: type: object properties: isWatching: type: boolean additionalProperties: false AlarmDataPoint: type: object properties: timestamp: type: string format: date-time count: type: number format: double code: type: integer format: int32 message: type: - string - 'null' additionalProperties: false DorsalDataPoint: type: object properties: timestamp: type: string format: date-time value: type: - number - 'null' format: double additionalProperties: false securitySchemes: OrcaAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {} MyCCAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {} M2MAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {}