{ "schemes": [ "http" ], "swagger": "2.0", "info": { "description": "This document describes the RESTful API provided by the\nKubernetes Application Runtime (KAR). It consists of\nfour logical sets of sub-APIs:\n+ **Actors**: APIs to invoke actor methods, access actor state, and schedule reminders.\n+ **Callbacks**: APIs to await the response to an actor or service invocation.\n+ **Events**: APIs to subscribe and unsubscribe from event sources and to publish to event sinks\n+ **Services**: APIs to invoke service endpoints\n+ **System**: APIs for controlling the KAR runtime mesh\n\nAll operations are scoped to a single instance of an application.", "title": "KAR", "version": "v1" }, "basePath": "/kar", "paths": { "/impl/v1/actor/{type}/{id}": { "get": { "description": "### Allocate the language-level state for the specified actor instance\n\nTODO: Document me", "schemes": [ "http" ], "tags": [ "impl" ], "summary": "actor allocation", "operationId": "idImplActorGet", "responses": { "200": { "$ref": "#/responses/response200" }, "404": { "$ref": "#/responses/response404" }, "500": { "$ref": "#/responses/response500" } } }, "delete": { "description": "### Deallocate the language-level state for the specified actor instance\n\nTODO: Document me", "schemes": [ "http" ], "tags": [ "impl" ], "summary": "actor deallocation", "operationId": "idImplActorDelete", "responses": { "200": { "$ref": "#/responses/response200" }, "404": { "$ref": "#/responses/response404" }, "500": { "$ref": "#/responses/response500" } } } }, "/impl/v1/actor/{type}/{id}/{session}/{method}": { "post": { "description": "### Invoke an actor method of the specified actor instance\n\nTODO: Document me", "consumes": [ "application/kar+json", "Prodices:", "application/kar+json" ], "schemes": [ "http" ], "tags": [ "impl" ], "summary": "actor invocation", "operationId": "idImplActorPost", "responses": { "200": { "$ref": "#/responses/response200" }, "404": { "$ref": "#/responses/response404" }, "500": { "$ref": "#/responses/response500" } } } }, "/v1/actor/{actorType}/{actorId}/call/{path}": { "post": { "description": "### Invoke an actor method\n\nCall executes a `POST` to the `path` endpoint of the\nactor instance indicated by `actorType` and `actorId`.\nThe request body must be a (possibly zero-length) JSON array whose elements\nare used as the actual parameters of the actor method.\nThe result of the call is the result of invoking the target actor method\nunless the `async` or `promise` pragma header is specified.", "consumes": [ "application" ], "produces": [ "application" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "call", "operationId": "idActorCall", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true }, { "type": "string", "description": "Optionally specify the `async` pragma to make a non-blocking call.\nOptionally specify the `promise` pragma to make a non-blocking call and\nobtain a request id to query later.", "name": "Pragma", "in": "header" }, { "type": "string", "example": "an/arbitrary/valid/pathSegment", "x-go-name": "Path", "description": "The target endpoint to be invoked by the operation", "name": "path", "in": "path", "required": true }, { "type": "string", "format": "uuid", "x-go-name": "Session", "description": "Optionally specific the session to use when performing the call. Enables re-entrancy for nested actor calls.", "name": "session", "in": "query" }, { "example": "[3, 'hello', { msg: 'Greetings' }]", "description": "A possibly empty array containing the arguments with which to invoke the target actor method.", "name": "ActorMethodArguments", "in": "body", "schema": { "type": "array", "items": { "type": "object" } } } ], "responses": { "200": { "$ref": "#/responses/response200CallResult" }, "202": { "$ref": "#/responses/response202CallResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" }, "default": { "$ref": "#/responses/responseGenericEndpointError" } } } }, "/v1/actor/{actorType}/{actorId}/reminders": { "get": { "description": "### Get all reminders\n\nThis operation returns all reminders for the actor instance specified in the path.", "produces": [ "application/json" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminders", "operationId": "idActorReminderGetAll", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/response200ReminderGetAllResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } }, "delete": { "description": "### Cancel all reminders\n\nThis operation cancels all reminders for the actor instance specified in the path.\nThe number of reminders cancelled is returned as the result of the operation.", "produces": [ "text/plain" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminders", "operationId": "idActorReminderCancelAll", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/response200ReminderCancelAllResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } } }, "/v1/actor/{actorType}/{actorId}/reminders/{reminderId}": { "get": { "description": "### Get a reminder\n\nThis operation returns the reminder for the actor instance specified in the path.\nIf there is no reminder with the id `reminderId` a `404` response will be returned\nunless the boolean query parameter `nilOnAbsent` is set to `true`.\nIf `nilOnAbsent` is true the `404` response will be replaced with\na `200` response with a `nil` response body.", "produces": [ "application/json" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminders/id", "operationId": "idActorReminderGet", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true }, { "type": "string", "x-go-name": "ReminderID", "description": "The id of the specific reminder being targeted", "name": "reminderId", "in": "path", "required": true }, { "type": "boolean", "x-go-name": "ErrorOnAbsent", "description": "Replace a REST-style `404` response with a `200` and nil response body when the requested key is not found.", "name": "nilOnAbsent", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/response200ReminderGetResult" }, "404": { "$ref": "#/responses/response404" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } }, "post": { "description": "### Schedule a reminder\n\nThis operation schedules a reminder for the actor instance specified in the path\nas described by the data provided in the request body.\nIf there is already a reminder for the target actor instance with the same reminderId,\nthat existing reminder's schedule will be updated based on the request body.\nThe operation will not return until after the reminder is scheduled.", "consumes": [ "application/json" ], "produces": [ "text/plain" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminders", "operationId": "idActorReminderSchedule", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true }, { "description": "The request body describes the reminder to be scheduled", "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/scheduleReminderPayload" } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } }, "delete": { "description": "### Cancel a reminder\n\nThis operation cancels the reminder for the actor instance specified in the path.\nIf the reminder is successfully cancelled a `200` response with a body of `1` will be returned.\nIf the reminder is not found, a `404` response will be returned unless\nthe boolean query parameter `nilOnAbsent` is set to `true`. If `nilOnAbsent`\nis sent to true the `404` response will instead be a `200` with a body containing `0`.", "produces": [ "text/plain" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminders/id", "operationId": "idActorReminderCancel", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true }, { "type": "string", "x-go-name": "ReminderID", "description": "The id of the specific reminder being targeted", "name": "reminderId", "in": "path", "required": true }, { "type": "boolean", "x-go-name": "ErrorOnAbsent", "description": "Replace a REST-style `404` response with a `200` and nil response body when the requested key is not found.", "name": "nilOnAbsent", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/response200ReminderCancelResult" }, "404": { "$ref": "#/responses/response404" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } } }, "/v1/actor/{actorType}/{actorId}/state": { "get": { "description": "### Get an actor's state\n\nThe state of the actor instance indicated by `actorType` and `actorId`\nwill be returned as the response body.", "produces": [ "application/json" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "state", "operationId": "idActorStateGetAll", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/response200StateGetAllResult" }, "500": { "$ref": "#/responses/response500" } } }, "post": { "description": "### Update multiple entries of an actor's state\n\nThe state of the actor instance indicated by `actorType` and `actorId`\nwill be updated by atomically updated by storing all key-value pairs\nin the request body.\nThe operation will not return until the state has been updated.\nThe result of the operation is the number of new entires that were created.", "consumes": [ "application/json" ], "produces": [ "text/plain" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "state", "operationId": "idActorStateSetMultiple", "parameters": [ { "description": "A map containing the state updates to perform", "name": "Body", "in": "body", "schema": { "type": "object", "additionalProperties": { "type": "object" } } } ], "responses": { "200": { "$ref": "#/responses/response200StateSetMultipleResult" }, "400": { "$ref": "#/responses/response400" }, "500": { "$ref": "#/responses/response500" } } }, "delete": { "description": "### Remove an actor's state\n\nThe state of the actor instance indicated by `actorType` and `actorId`\nwill be deleted.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "state", "operationId": "idActorStateDeleteAll", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/response200StateDeleteResult" }, "404": { "$ref": "#/responses/response404" }, "500": { "$ref": "#/responses/response500" } } } }, "/v1/actor/{actorType}/{actorId}/state/{key}": { "get": { "description": "### Get a single entry of an actor's state\n\nThe `key` entry of the state of the actor instance indicated by `actorType` and `actorId`\nwill be returned as the response body.\nIf there is no entry for `key` a `404` response will be returned\nunless the boolean query parameter `nilOnAbsent` is set to `true`,\nin which case a `200` reponse with a `nil` response body will be returned.", "produces": [ "application/json" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "state/key", "operationId": "idActorStateGet", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true }, { "type": "boolean", "x-go-name": "ErrorOnAbsent", "description": "Replace a REST-style `404` response with a `200` and nil response body when the requested key is not found.", "name": "nilOnAbsent", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/response200StateGetResult" }, "404": { "$ref": "#/responses/response404" }, "500": { "$ref": "#/responses/response500" } } }, "put": { "description": "### Update a single entry of an actor's state\n\nThe state of the actor instance indicated by `actorType` and `actorId`\nwill be updated by setting `key` to contain the JSON request body.\nThe operation will not return until the state has been updated.\nThe result of the operation is `1` if a new entry was created and `0` if an existing entry was updated.", "consumes": [ "application/json" ], "produces": [ "text/plain" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "state/key", "operationId": "idActorStateSet", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/response200StateSetResult" }, "500": { "$ref": "#/responses/response500" } } }, "delete": { "description": "### Remove a single entry in an actor's state\n\nThe state of the actor instance indicated by `actorType` and `actorId`\nwill be updated by removing the entry for `key`.\nThe operation will not return until the state has been updated.\nThe result of the operation is `1` if an entry was actually removed and\n`0` if there was no entry for `key`.", "produces": [ "text/plain" ], "schemes": [ "http" ], "tags": [ "actors" ], "summary": "state/key", "operationId": "idActorStateDelete", "parameters": [ { "type": "string", "x-go-name": "ActorType", "description": "The actor type", "name": "actorType", "in": "path", "required": true }, { "type": "string", "x-go-name": "ActorID", "description": "The actor instance id", "name": "actorId", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/response200StateDeleteResult" }, "500": { "$ref": "#/responses/response500" } } } }, "/v1/await": { "post": { "description": "### Await the response to an actor or service call\n\nAwait blocks until the response to an asynchronous call is received and\nreturns this response.", "consumes": [ "text/plain" ], "produces": [ "application/json" ], "schemes": [ "http" ], "tags": [ "callbacks" ], "summary": "await", "operationId": "idAwait", "parameters": [ { "description": "The request id", "name": "Body", "in": "body", "schema": { "type": "string" } } ], "responses": { "200": { "$ref": "#/responses/response200CallResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" }, "default": { "$ref": "#/responses/responseGenericEndpointError" } } } }, "/v1/event/{topic}/publish": { "post": { "description": "### Publish an event to a topic\n\nThe event provided as the request body will be published on `topic`.\nWhen the operation returns successfully, the event is guaranteed to\neventually be published to the targeted topic.", "schemes": [ "http" ], "tags": [ "events" ], "summary": "publish", "operationId": "idEventPublish", "parameters": [ { "type": "string", "x-go-name": "Topic", "description": "The topic name", "name": "topic", "in": "path", "required": true }, { "description": "A JSON value conforming to the CloudEvent specification", "name": "Event", "in": "body", "schema": { "$ref": "#/definitions/cloudeventWrapper" } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" } } } }, "/v1/event/{topic}/subscribe": { "post": { "description": "### Subscribe to a topic\n\nSubscribe an application endpoint to be invoked when events are delivered to\nthe targeted `topic`. The endpoint is described in the request body and\nmay be either a service endpoint or an actor method.", "schemes": [ "http" ], "tags": [ "events" ], "summary": "subscribe", "operationId": "idEventSubscribe", "parameters": [ { "type": "string", "x-go-name": "Topic", "description": "The topic name", "name": "topic", "in": "path", "required": true }, { "type": "string", "example": "an/arbitrary/valid/pathSegment", "x-go-name": "Path", "description": "The target endpoint to be invoked by the operation", "name": "path", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "type": "object", "required": [ "path" ], "properties": { "actorId": { "description": "The subscribing actor instance id", "type": "string", "x-go-name": "ActorID" }, "actorType": { "description": "The subscribing actor type", "type": "string", "x-go-name": "ActorType" }, "id": { "description": "A optional unique id to use for this subscrition.\nIf not id is provided, the `topic` will be used as the id.", "type": "string", "x-go-name": "ID" }, "oldest": { "description": "Should the subscription start with the oldest available event or\nonly include events published after the subscription operation?", "type": "boolean", "x-go-name": "Oldest" }, "path": { "description": "The target endpoint to which events will be delivered", "type": "string", "x-go-name": "Path", "example": "an/arbitrary/valid/pathSegment" }, "service": { "description": "The subscribing service name", "type": "string", "x-go-name": "Service" } } } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" } } } }, "/v1/event/{topic}/unsubscribe": { "post": { "description": "### Unsubscribe from a topic\n\nUnsubscribe an application endpoint described by the request body from `topic`.\nThe operation may return before it actually completes, but upon\nsuccess it is guaranteed that the endpoint will eventually stop receive\nevents from the topic.", "consumes": [ "application/json" ], "schemes": [ "http" ], "tags": [ "events" ], "summary": "unsubscribe", "operationId": "idEventUnsubscribe", "parameters": [ { "type": "string", "x-go-name": "Topic", "description": "The topic name", "name": "topic", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "type": "object", "properties": { "id": { "description": "The id of the subscription to be removed.\nIf not id is provided, the `topic` will be used as the id.", "type": "string", "x-go-name": "ID" } } } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" } } } }, "/v1/service/{service}/call/{path}": { "post": { "description": "### Invoke a service endpoint\n\nCall executes a `POST` to the `path` endpoint of `service`.\nThe request body is passed through to the target endpoint.\nThe result of the call is the result of invoking the target service endpoint\nunless the `async` or `promise` pragma header is specified.", "consumes": [ "application" ], "produces": [ "application" ], "schemes": [ "http" ], "tags": [ "services" ], "summary": "call", "operationId": "idServiceCall", "parameters": [ { "type": "string", "x-go-name": "Service", "description": "The service name", "name": "service", "in": "path", "required": true }, { "type": "string", "description": "Optionally specify the `async` pragma to make a non-blocking call.\nOptionally specify the `promise` pragma to make a non-blocking call and\nobtain a request id to query later.", "name": "Pragma", "in": "header" }, { "type": "string", "example": "an/arbitrary/valid/pathSegment", "x-go-name": "Path", "description": "The target endpoint to be invoked by the operation", "name": "path", "in": "path", "required": true }, { "description": "An arbitrary request body to be passed through unchanged to the target endpoint", "name": "TargetRequestBody", "in": "body", "schema": { "type": "object" } } ], "responses": { "200": { "$ref": "#/responses/response200CallResult" }, "202": { "$ref": "#/responses/response202CallResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" }, "default": { "$ref": "#/responses/responseGenericEndpointError" } } } }, "/v1/system/health": { "get": { "description": "### Health-check endpoint\n\nReturns a `200` response to indicate that the KAR runtime processes is healthy.", "schemes": [ "http" ], "tags": [ "system" ], "summary": "health", "operationId": "isSystemHealth", "responses": { "200": { "$ref": "#/responses/response200" } } } }, "/v1/system/shutdown": { "post": { "description": "### Shutdown a single KAR runtime\n\nInitiate an orderly shutdown of the target KAR runtime process.", "schemes": [ "http" ], "tags": [ "system" ], "summary": "shutdown", "operationId": "idSystemShutdown", "responses": { "200": { "$ref": "#/responses/response200" } } } } }, "definitions": { "Actor": { "type": "object", "title": "Actor uniquely identifies an actor instance.", "properties": { "ID": { "type": "string" }, "Type": { "type": "string" } }, "x-go-package": "github.ibm.com/solsa/kar.git/internal/runtime" }, "Duration": { "description": "A Duration represents the elapsed time between two instants\nas an int64 nanosecond count. The representation limits the\nlargest representable duration to approximately 290 years.", "type": "integer", "format": "int64", "x-go-package": "time" }, "Reminder": { "description": "Reminder describes a time-triggered asynchronous invocation of a Path on an Actor", "type": "object", "properties": { "Actor": { "$ref": "#/definitions/Actor" }, "encodedData": { "type": "string", "x-go-name": "EncodedData" }, "id": { "type": "string", "x-go-name": "ID" }, "path": { "type": "string", "x-go-name": "Path" }, "period": { "$ref": "#/definitions/Duration" }, "targetTime": { "type": "string", "format": "date-time", "x-go-name": "TargetTime" } }, "x-go-package": "github.ibm.com/solsa/kar.git/internal/runtime" }, "cloudeventWrapper": { "type": "object", "required": [ "id", "source", "specversion", "type" ], "properties": { "data": { "description": "The event payload", "type": "object", "x-go-name": "Data" }, "datacontenttype": { "description": "RFC-2046 encoding of data type", "type": "string", "x-go-name": "DataContentType", "example": "application/json" }, "dataschema": { "description": "URI identifying the schema that `data` adheres to", "type": "string", "format": "uri", "x-go-name": "DataSchema" }, "id": { "description": "An event identifier", "type": "string", "x-go-name": "ID" }, "source": { "description": "A URI identifying the event source", "type": "string", "format": "uri", "x-go-name": "Source" }, "specversion": { "description": "The version of the CloudEvent spec being used.", "type": "string", "x-go-name": "SpecVersion", "example": "1.0" }, "subject": { "description": "Describes the subject of the event in the context of the event producer", "type": "string", "x-go-name": "Subject" }, "time": { "description": "Time when the event occurred", "type": "string", "format": "date-time", "x-go-name": "Time" }, "type": { "description": "The type of the event", "type": "string", "x-go-name": "Type", "example": "com.github.pull.create" } }, "x-go-package": "github.ibm.com/solsa/kar.git/internal/runtime" }, "scheduleReminderPayload": { "description": "ScheduleReminderPayload is the JSON request body for scheduling a new reminder", "type": "object", "properties": { "data": { "description": "An optional parameter containing an arbitrary JSON value that will be provided as the\npayload when the `path` is invoked on the actor instance.", "type": "object", "x-go-name": "Data", "example": "{ msg: \"Hello Friend!\" }" }, "path": { "description": "The path to invoke on the actor instance when the reminder is fired", "type": "string", "x-go-name": "Path", "example": "sayHello" }, "period": { "description": "The optional period parameter is a string encoding a GoLang Duration that is used to create a periodic reminder.\nIf a period is provided, then the reminder will be fired repeatedly by adding the period to the last fire time\nto compute a new TargetTime for the next invocation of the reminder.", "type": "string", "x-go-name": "Period", "example": "30s" }, "targetTime": { "description": "The time at which the reminder should first fire, specified as a string in an ISO-8601 compliant format", "type": "string", "format": "date-time", "x-go-name": "TargetTime" } }, "x-go-package": "github.ibm.com/solsa/kar.git/internal/runtime" } }, "responses": { "response200": { "description": "A success message.", "headers": { "body": { "type": "string", "example": "OK", "description": "A success message" } } }, "response200CallResult": { "description": "The response body returned by the invoked endpoint", "schema": { "type": "object" }, "headers": { "body": { "description": "The response body returned by the invoked endpoint" } } }, "response200ReminderCancelAllResult": { "headers": { "NumberCancelled": { "type": "integer", "format": "int64", "example": 3, "description": "The number of reminders that were actually cancelled" } } }, "response200ReminderCancelResult": { "headers": { "NumberCancelled": { "type": "integer", "format": "int64", "description": "Returns 1 if a reminder was cancelled, 0 if not found and `nilOnError` was true" } } }, "response200ReminderGetAllResult": { "headers": { "Body": { "type": "array", "items": { "$ref": "#/definitions/Reminder" }, "example": "[{ Actor: { Type: 'Foo', ID: '22' }, id: 'ticker', path: '/echo', targetTime: '2020-04-14T14:17:51.073Z', period: 5000000000, encodedData: '{\"msg\":\"hello\"}' }, { Actor: { Type: 'Foo', ID: '22' }, id: 'once', path: '/echo', targetTime: '2020-04-14T14:20:00Z', encodedData: '{\"msg\":\"carpe diem\"}' }]", "description": "An array containing all matching reminders" } } }, "response200ReminderGetResult": { "schema": { "$ref": "#/definitions/Reminder" }, "headers": { "Body": { "example": "{ Actor: { Type: 'Foo', ID: '22' }, id: 'ticker', path: '/echo', targetTime: '2020-04-14T14:17:51.073Z', period: 5000000000, encodedData: '{\"msg\":\"hello\"}' }", "description": "The reminder" } } }, "response200StateDeleteResult": { "headers": { "NumberDeleted": { "type": "integer", "format": "int64", "example": 3, "description": "The number of key-value pairs that were deleted" } } }, "response200StateGetAllResult": { "schema": { "type": "object", "additionalProperties": { "type": "object" } }, "headers": { "Response": { "description": "A map containing the requested state" } } }, "response200StateGetResult": { "schema": { "type": "object" }, "headers": { "Response": { "description": "The requested value" } } }, "response200StateSetMultipleResult": { "headers": { "NumberCreated": { "type": "integer", "format": "int64", "description": "Returns the number of new entries created by the operation" } } }, "response200StateSetResult": { "headers": { "NumberCreated": { "type": "integer", "format": "int64", "description": "Returns 0 if an existing entry was updated and 1 if a new entry was created" } } }, "response202CallResult": { "description": "Indicates that a non-blocking call has been accepted for eventual execution" }, "response400": { "description": "Response indicating a bad request", "headers": { "body": { "type": "string", "description": "A message describing the problem with the request" } } }, "response404": { "description": "Response indicating requested resource is not found", "headers": { "body": { "type": "string", "example": "Not Found", "description": "Requested resource is not found" } } }, "response500": { "description": "A message describing the error", "headers": { "body": { "type": "string", "example": "Internal Server Error", "description": "A message describing the error" } } }, "response503": { "description": "A message describing the error", "headers": { "body": { "type": "string", "example": "Service Unavailable", "description": "A message describing the error" } } }, "responseGenericEndpointError": { "description": "An error response returned by the invoked endpoint", "schema": { "type": "object" }, "headers": { "Body": { "description": "The result body returned by the invoked endpoint" } } } } }