CCF/doc/schemas/app_openapi.json

1132 строки
27 KiB
JSON

{
"components": {
"schemas": {
"CodeStatus": {
"enum": [
"AllowedToJoin"
],
"type": "string"
},
"EndpointMetrics": {
"properties": {
"metrics": {
"$ref": "#/components/schemas/EndpointMetricsEntry_array"
}
},
"required": [
"metrics"
],
"type": "object"
},
"EndpointMetricsEntry": {
"properties": {
"calls": {
"$ref": "#/components/schemas/uint64"
},
"errors": {
"$ref": "#/components/schemas/uint64"
},
"failures": {
"$ref": "#/components/schemas/uint64"
},
"method": {
"$ref": "#/components/schemas/string"
},
"path": {
"$ref": "#/components/schemas/string"
},
"retries": {
"$ref": "#/components/schemas/uint64"
}
},
"required": [
"path",
"method",
"calls",
"errors",
"failures",
"retries"
],
"type": "object"
},
"EndpointMetricsEntry_array": {
"items": {
"$ref": "#/components/schemas/EndpointMetricsEntry"
},
"type": "array"
},
"GetCode__Out": {
"properties": {
"versions": {
"$ref": "#/components/schemas/GetCode__Version_array"
}
},
"required": [
"versions"
],
"type": "object"
},
"GetCode__Version": {
"properties": {
"digest": {
"$ref": "#/components/schemas/string"
},
"status": {
"$ref": "#/components/schemas/CodeStatus"
}
},
"required": [
"digest",
"status"
],
"type": "object"
},
"GetCode__Version_array": {
"items": {
"$ref": "#/components/schemas/GetCode__Version"
},
"type": "array"
},
"GetCommit__Out": {
"properties": {
"transaction_id": {
"$ref": "#/components/schemas/TransactionId"
}
},
"required": [
"transaction_id"
],
"type": "object"
},
"GetTxStatus__Out": {
"properties": {
"status": {
"$ref": "#/components/schemas/TxStatus"
},
"transaction_id": {
"$ref": "#/components/schemas/TransactionId"
}
},
"required": [
"transaction_id",
"status"
],
"type": "object"
},
"LoggingGetHistoricalRange__Entry": {
"properties": {
"id": {
"$ref": "#/components/schemas/uint64"
},
"msg": {
"$ref": "#/components/schemas/string"
},
"seqno": {
"$ref": "#/components/schemas/uint64"
}
},
"required": [
"seqno",
"id",
"msg"
],
"type": "object"
},
"LoggingGetHistoricalRange__Entry_array": {
"items": {
"$ref": "#/components/schemas/LoggingGetHistoricalRange__Entry"
},
"type": "array"
},
"LoggingGetHistoricalRange__Out": {
"properties": {
"@nextLink": {
"$ref": "#/components/schemas/string"
},
"entries": {
"$ref": "#/components/schemas/LoggingGetHistoricalRange__Entry_array"
}
},
"required": [
"entries"
],
"type": "object"
},
"LoggingGetReceipt__Out": {
"properties": {
"msg": {
"$ref": "#/components/schemas/string"
},
"receipt": {
"$ref": "#/components/schemas/json"
}
},
"required": [
"msg",
"receipt"
],
"type": "object"
},
"LoggingGet__Out": {
"properties": {
"msg": {
"$ref": "#/components/schemas/string"
}
},
"required": [
"msg"
],
"type": "object"
},
"LoggingRecord__In": {
"properties": {
"id": {
"$ref": "#/components/schemas/uint64"
},
"msg": {
"$ref": "#/components/schemas/string"
},
"record_claim": {
"$ref": "#/components/schemas/boolean"
}
},
"required": [
"id",
"msg"
],
"type": "object"
},
"TransactionId": {
"pattern": "^[0-9]+\\.[0-9]+$",
"type": "string"
},
"TxStatus": {
"enum": [
"Unknown",
"Pending",
"Committed",
"Invalid"
],
"type": "string"
},
"boolean": {
"type": "boolean"
},
"json": {},
"string": {
"type": "string"
},
"uint64": {
"maximum": 18446744073709551615,
"minimum": 0,
"type": "integer"
}
},
"securitySchemes": {
"jwt": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http"
},
"member_signature": {
"description": "Request must be signed according to the HTTP Signature scheme. The signer must be a member identity registered with this service.",
"scheme": "signature",
"type": "http"
},
"user_signature": {
"description": "Request must be signed according to the HTTP Signature scheme. The signer must be a user identity registered with this service.",
"scheme": "signature",
"type": "http"
}
},
"x-ccf-forwarding": {
"always": {
"description": "If this request is made to a backup node, it will be forwarded to the primary node for execution.",
"value": "always"
},
"never": {
"description": "This call will never be forwarded, and is always executed on the receiving node, potentially breaking session consistency. If this attempts to write on a backup, this will fail.",
"value": "never"
},
"sometimes": {
"description": "If this request is made to a backup node, it may be forwarded to the primary node for execution. Specifically, if this request is sent as part of a session which was already forwarded, then it will also be forwarded.",
"value": "sometimes"
}
}
},
"info": {
"description": "This CCF sample app implements a simple logging application, securely recording messages at client-specified IDs. It demonstrates most of the features available to CCF apps.",
"title": "CCF Sample Logging App",
"version": "1.9.4"
},
"openapi": "3.0.0",
"paths": {
"/app/api": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/json"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
}
},
"/app/api/metrics": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EndpointMetrics"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
}
},
"/app/code": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetCode__Out"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
}
},
"/app/commit": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetCommit__Out"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
}
},
"/app/custom_auth": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/json"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/local_tx": {
"get": {
"parameters": [
{
"in": "query",
"name": "transaction_id",
"required": true,
"schema": {
"$ref": "#/components/schemas/TransactionId"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetTxStatus__Out"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
}
},
"/app/log/private": {
"delete": {
"parameters": [
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
},
"get": {
"parameters": [
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingGet__Out"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingRecord__In"
}
}
},
"description": "Auto-generated request body schema"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/private/admin_only": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingRecord__In"
}
}
},
"description": "Auto-generated request body schema"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/private/all": {
"delete": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/private/anonymous": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingRecord__In"
}
}
},
"description": "Auto-generated request body schema"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/private/count": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/private/historical": {
"get": {
"parameters": [
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingGet__Out"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/never"
}
}
},
"/app/log/private/historical/sparse": {
"get": {
"parameters": [
{
"in": "query",
"name": "seqnos",
"required": true,
"schema": {
"$ref": "#/components/schemas/string"
}
},
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingGetHistoricalRange__Out"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/never"
}
}
},
"/app/log/private/historical_receipt": {
"get": {
"parameters": [
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingGetReceipt__Out"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/never"
}
}
},
"/app/log/private/prefix_cert": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingRecord__In"
}
}
},
"description": "Auto-generated request body schema"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/private/raw_text/{id}": {
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"post": {
"responses": {
"200": {
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/public": {
"delete": {
"parameters": [
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
},
"get": {
"parameters": [
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingGet__Out"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingRecord__In"
}
}
},
"description": "Auto-generated request body schema"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/public/all": {
"delete": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/boolean"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/public/count": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/public/historical/range": {
"get": {
"parameters": [
{
"in": "query",
"name": "from_seqno",
"required": false,
"schema": {
"$ref": "#/components/schemas/uint64"
}
},
{
"in": "query",
"name": "to_seqno",
"required": false,
"schema": {
"$ref": "#/components/schemas/uint64"
}
},
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingGetHistoricalRange__Out"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/never"
}
}
},
"/app/log/public/historical_receipt": {
"get": {
"parameters": [
{
"in": "query",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/uint64"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoggingGetReceipt__Out"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"jwt": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/never"
}
}
},
"/app/log/request_query": {
"get": {
"responses": {
"200": {
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/string"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/log/signed_request_query": {
"get": {
"responses": {
"200": {
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/string"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"user_signature": []
}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/multi_auth": {
"get": {
"responses": {
"200": {
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/string"
}
}
},
"description": "Default response description"
}
},
"security": [
{
"user_signature": []
},
{
"member_signature": []
},
{
"jwt": []
},
{}
],
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/receipt": {
"get": {
"parameters": [
{
"in": "query",
"name": "transaction_id",
"required": true,
"schema": {
"$ref": "#/components/schemas/TransactionId"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/json"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/always"
}
}
},
"/app/tx": {
"get": {
"parameters": [
{
"in": "query",
"name": "transaction_id",
"required": true,
"schema": {
"$ref": "#/components/schemas/TransactionId"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetTxStatus__Out"
}
}
},
"description": "Default response description"
}
},
"x-ccf-forwarding": {
"$ref": "#/components/x-ccf-forwarding/sometimes"
}
}
}
},
"servers": []
}