Files
cariflex/tools/EVerest-main/docs/source/reference/EVerest_API/entrypoint_API.yaml
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
2026-06-08 00:38:27 -04:00

235 lines
6.8 KiB
YAML

---
asyncapi: 3.0.0
id: 'pionix:de:everest:entrypoint_API'
info:
title: 'EVerest API definition for the API entrypoint interface'
version: 1.0.0
description: >-
API for EVerest API clients discovering the EVerest API capabilities.
license:
name: Apache-2.0
url: https://opensource.org/licenses/Apache-2.0
tags:
- name: EVerest
- name: Auth
servers:
default:
pathname: 'everest_api/'
host: 'localhost:1883'
description: default local MQTT
protocol: mqtt
defaultContentType: application/json
channels:
send_request_discover:
address: 'discover'
messages:
send_request_discover:
$ref: '#/components/messages/send_request_discover'
receive_reply_discover:
address: null
messages:
receive_reply_discover:
$ref: '#/components/messages/receive_reply_discover'
send_request_query_module:
address: 'query-modules/{api_type}'
parameters:
api_type:
description: The type of API to query
messages:
send_request_query_module:
$ref: '#/components/messages/send_request_query_module'
receive_reply_query_module:
address: null
messages:
receive_reply_query_module:
$ref: '#/components/messages/receive_reply_query_module'
send_ready_beacon:
address: 'ready_beacon'
messages:
send_ready_beacon:
$ref: '#/components/messages/send_ready_beacon'
operations:
send_request_discover:
title: 'Request API capability discovery.'
action: send
channel:
$ref: '#/channels/send_request_discover'
description: >-
Allow API clients to discover the available capabilities of the API.
Reply will not be monolithic but come in as many messages as there are modules.
reply:
address:
location: "$message.header#/replyTo"
channel:
$ref: '#/channels/receive_reply_discover'
receive_reply_discover:
title: 'Reply to discover request'
action: receive
channel:
$ref: '#/channels/receive_reply_discover'
send_request_query_module:
title: 'Request all modules that implement {api_type} to reveal their API parameters.'
action: send
channel:
$ref: '#/channels/send_request_query_module'
description: >-
Allow API clients to discover specific types of APIs.
Reply will not be monolithic but come in as many messages as there a matching modules.
reply:
address:
location: "$message.header#/replyTo"
channel:
$ref: '#/channels/receive_reply_query_module'
receive_reply_query_module:
title: 'Reply to query modules request'
action: receive
channel:
$ref: '#/channels/receive_reply_query_module'
send_ready_beacon:
title: 'Send Ready Beacon'
action: send
channel:
$ref: '#/channels/send_ready_beacon'
components:
messages:
send_request_discover:
name: send_request_discover
title: 'Discover API'
contentType: application/json
payload:
type: object
properties:
headers:
type: object
properties:
replyTo:
type: string
description: Address to send the response to.
examples:
- summary: "requesting available APIs"
payload:
headers:
replyTo: your/arbitrary/reply/topic
receive_reply_discover:
name: receive_reply_discover
title: 'Reply to request to discover the API'
summary: 'Reply to request to discover the API.'
contentType: application/json
payload:
$ref: '#/components/schemas/ApiDiscoverResponse'
examples:
- summary: "Reply from each module is an array of (id, type, <version>) tuples"
payload:
apis:
- module_id: "module_1"
type: "display_message"
version: 1
- module_id: "module_1"
type: "session_cost_consumer"
version: 1
send_request_query_module:
name: send_request_query_module
title: 'Query API modules'
contentType: application/json
payload:
type: object
properties:
headers:
type: object
properties:
replyTo:
type: string
description: Address to send the response to.
examples:
- summary: "requesting available APIs of type {api_type}"
payload:
headers:
replyTo: your/arbitrary/reply/topic
receive_reply_query_module:
name: receive_reply_query_module
title: 'Reply to request to query module'
summary: 'Reply to request to query module.'
contentType: application/json
payload:
$ref: '#/components/schemas/ApiDiscoverResponse'
examples:
- summary: "Reply from each module is an array of (id, type, <version>) tuples"
payload:
apis:
- module_id: "dm_1"
type: "display_message"
version: 1
send_ready_beacon:
name: send_ready_beacon
title: 'Send ready beacon'
summary: A beacon to indicate the API is ready to be queried
contentType: application/json
payload:
$ref: '#/components/schemas/ReadyBeacon'
examples:
- summary: "Ready Beacon"
payload: {}
schemas:
ApiDiscoverResponse:
description: Type for API discovery results
type: object
additionalProperties: true
required:
- apis
properties:
apis:
description: Array of API parameters
type: array
items:
type: object
$ref: '#/components/schemas/ApiParameter'
ApiParameter:
description: Parameters for a single API
type: object
additionalProperties: true
required:
- type
- module_id
- version
properties:
type:
type: string
module_id:
type: string
version:
type: integer
communication_monitoring:
type: object
$ref: '#/components/schemas/CommunicationParameters'
CommunicationParameters:
description: Parameters of the communication monitoring between EVerest and client
type: object
additionalProperties: true
properties:
heartbeat_period_ms:
description: Period of heartbeat messages from EVerest to the client
type: integer
communication_check_period_s:
description: Maximum expected interval for alive messages from client to EVerest
type: integer
request_reply_timeout_s:
description: Timeout within which a client must reply to request from EVerest
type: integer
ReadyBeacon:
type: object
additionalProperties: true
description: a beacon to indicate the API is ready to be queried