openapi: 3.0.3 info: title: Mezmo Edge API description: | Edge / local deployment surface for Mezmo Pipelines. Self-hosted pipeline instances poll the control plane for configuration, send heartbeats, accept tasks, and report results. version: 'v3' servers: - url: https://api.mezmo.com/v3 tags: - name: EdgeClients - name: Heartbeats - name: Tasks security: - PipelineServiceKey: [] paths: /edge/clients: get: tags: - EdgeClients summary: List Edge Clients operationId: listEdgeClients responses: '200': description: Registered edge clients. post: tags: - EdgeClients summary: Register Edge Client operationId: registerEdgeClient requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EdgeClient' responses: '201': description: Client registered. /edge/clients/{clientId}: parameters: - name: clientId in: path required: true schema: type: string get: tags: - EdgeClients summary: Get Edge Client operationId: getEdgeClient responses: '200': description: Edge client details. delete: tags: - EdgeClients summary: Deregister Edge Client operationId: deregisterEdgeClient responses: '204': description: Client deregistered. /edge/clients/{clientId}/heartbeat: parameters: - name: clientId in: path required: true schema: type: string post: tags: - Heartbeats summary: Send Heartbeat operationId: sendHeartbeat requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/Heartbeat' responses: '200': description: Heartbeat acknowledged; returns any pending tasks. /edge/clients/{clientId}/tasks: parameters: - name: clientId in: path required: true schema: type: string get: tags: - Tasks summary: List Pending Tasks operationId: listEdgeTasks responses: '200': description: Pending tasks for the edge client. /edge/clients/{clientId}/tasks/{taskId}/result: parameters: - name: clientId in: path required: true schema: type: string - name: taskId in: path required: true schema: type: string post: tags: - Tasks summary: Submit Task Result operationId: submitTaskResult requestBody: required: true content: application/json: schema: type: object additionalProperties: true responses: '200': description: Result accepted. components: securitySchemes: PipelineServiceKey: type: http scheme: bearer schemas: EdgeClient: type: object properties: clientId: type: string name: type: string version: type: string labels: type: object additionalProperties: type: string Heartbeat: type: object properties: timestamp: type: integer format: int64 status: type: string version: type: string