{ "consumes": [ "application/json" ], "produces": [ "application/json" ], "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+ **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/v1", "paths": { "/actor/{actorType}/{actorId}/call/{path}": { "post": { "description": "### Synchronously invoke an actor method\n\nCall synchronously executes a `POST` to the `path` endpoint of the\nactor instance indicated by `actorType` and `actorId`.\nThe JSON request body is passed through to the target endpoint.\nThe result of the call is the result of invoking the target actor method.", "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", "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" }, { "description": "An arbitrary JSON value to be passed through unchanged to the target endpoint", "name": "TargetRequestBody", "in": "body", "schema": { "type": "object" } } ], "responses": { "200": { "$ref": "#/responses/response200CallResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" }, "default": { "$ref": "#/responses/responseGenericEndpointError" } } } }, "/actor/{actorType}/{actorId}/migrate": { "post": { "description": "### Initiate an actor migration\n\nThis operation is primarily intended to be used by the KAR actor runtime.\nWhen delivered to the runtime currently hosting the designated actor instance,\nit causes the actor to be passivated and the binding of the actor instance to\nthat runtime to be removed from the KAR actor placement service. When next\nactivated, the actor instance may be hosted by a different instance of the\napplication process.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "migrate", "operationId": "idActorMigrate", "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/response200" } } } }, "/actor/{actorType}/{actorId}/reminder": { "get": { "description": "### Get all reminders\n\nThis operation returns all reminders for the actor instance specified in the path.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminder", "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/response200ReminderGetResult" }, "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.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminder", "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 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.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminder", "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/response200ReminderCancelResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } } }, "/actor/{actorType}/{actorId}/reminder/{reminderId}": { "get": { "description": "### Get a reminder\n\nThis operation returns the reminder for the actor instance specified in the path.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminder/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 } ], "responses": { "200": { "$ref": "#/responses/response200ReminderGetResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } }, "delete": { "description": "### Cancel a reminders\n\nThis operation cancels a reminder for the actor instance specified in the path.\nThe number of reminders cancelled is returned as the result of the operation.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "reminder/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 } ], "responses": { "200": { "$ref": "#/responses/response200ReminderCancelResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } } }, "/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.", "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.", "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" } } } }, "/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 in the actor instandce's state for `key` the operation will\nby default return a `200` status with a nil response body. If the boolean query parameter\n`errorOnAbsent` is set to `true`, the operation will instead return a `404` status if\nthere is no entry for `key`.", "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": "Controls response when key is absent; if true an absent key will result in a `404` response, otherwise a `200` response with a nil value will be returned.", "name": "errorOnAbsent", "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.", "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`.", "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" } } } }, "/actor/{actorType}/{actorId}/tell/{path}": { "post": { "description": "### Asynchronously invoke an actor method\n\nTell asynchronously executes a `POST` to the `path` endpoint of\nthe actor instance indicated by `actorType` and `actorId`.\nThe JSON request body is passed through to the target endpoint.\nA `200` response indicates that the request has been accepted by the\nruntime and will eventually be delivered to the targeted actor method.", "schemes": [ "http" ], "tags": [ "actors" ], "summary": "tell", "operationId": "idActorTell", "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", "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 JSON value to be passed through unchanged to the target endpoint", "name": "TargetRequestBody", "in": "body", "schema": { "type": "object" } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } } }, "/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" } } } }, "/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": { "$ref": "#/definitions/eventSubscribeRequestBody" } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" } } } }, "/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.", "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": { "$ref": "#/definitions/eventUnsubscribeRequestBody" } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" } } } }, "/service/{service}/call/{path}": { "post": { "description": "### Synchronously invoke a service endpoint\n\nCall synchronously executes a `POST` to the `path` endpoint of `service`.\nThe JSON request body is passed through to the target endpoint.\nThe result of the call is the result of invoking the target service endpoint.", "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", "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 JSON value to be passed through unchanged to the target endpoint", "name": "TargetRequestBody", "in": "body", "schema": { "type": "object" } } ], "responses": { "200": { "$ref": "#/responses/response200CallResult" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" }, "default": { "$ref": "#/responses/responseGenericEndpointError" } } } }, "/service/{service}/tell/{path}": { "post": { "description": "### Asynchronously invoke a service endpoint\n\nTell asynchronously executes a `POST` to the `path` endpoint of `service`.\nThe JSON request body is passed through to the target endpoint.\nA `200` response indicates that the request has been accepted by the\nruntime and will eventually be delivered to the targeted service endpoint.", "schemes": [ "http" ], "tags": [ "services" ], "summary": "tell", "operationId": "idServiceTell", "parameters": [ { "type": "string", "x-go-name": "Service", "description": "The service name", "name": "service", "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 }, { "description": "An arbitrary JSON value to be passed through unchanged to the target endpoint", "name": "TargetRequestBody", "in": "body", "schema": { "type": "object" } } ], "responses": { "200": { "$ref": "#/responses/response200" }, "500": { "$ref": "#/responses/response500" }, "503": { "$ref": "#/responses/response503" } } } }, "/system/broadcast/{path}": { "post": { "description": "### Asynchronously broadcast a message to the KAR runtime\n\nBroadcast asynchronously executes a `POST` on the `path` endpoint\nof all other KAR runtimes that are currently part of the application.\nThe runtime initiating the broadcast is not included as a recipient.\nA `200` response indicates that the request to send the broadcast\nhas been accepted and the POST will eventually be delivered to all targeted\nruntime processes.", "schemes": [ "http" ], "tags": [ "system" ], "summary": "broadcast", "operationId": "idSystemBroadcast", "parameters": [ { "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 JSON value to be passed through unchanged to the target endpoint", "name": "TargetRequestBody", "in": "body", "schema": { "type": "object" } } ], "responses": { "200": { "$ref": "#/responses/response200" } } } }, "/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" } } } }, "/system/kill": { "post": { "description": "### Shutdown a single KAR runtime\n\nInitiate an orderly shutdown of the target KAR runtime process.", "schemes": [ "http" ], "tags": [ "system" ], "summary": "kill", "operationId": "idSystemKill", "responses": { "200": { "$ref": "#/responses/response200" } } } }, "/system/killall": { "post": { "description": "### Shutdown the KAR runtime mesh for an application\n\nInitiate an orderly shutdown of all KAR runtime processes.", "schemes": [ "http" ], "tags": [ "system" ], "summary": "killall", "operationId": "idSystemKillAll", "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" }, "deadline": { "type": "string", "format": "date-time", "x-go-name": "Deadline" }, "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" } }, "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" }, "eventSubscribeRequestBody": { "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" } }, "x-go-package": "github.ibm.com/solsa/kar.git/internal/runtime" }, "eventUnsubscribeRequestBody": { "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" } }, "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!\" }" }, "deadline": { "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": "Deadline" }, "id": { "description": "The ID to use for this reminder", "type": "string", "x-go-name": "ID", "example": "repeatingGreeter" }, "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 Deadline for the next invocation of the reminder.", "type": "string", "x-go-name": "Period", "example": "30s" } }, "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" } } }, "response200ReminderCancelResult": { "headers": { "NumberCancelled": { "type": "integer", "format": "int64", "example": 3, "description": "The number of reminders that were actually cancelled" } } }, "response200ReminderGetResult": { "headers": { "Body": { "type": "array", "items": { "$ref": "#/definitions/Reminder" }, "example": "[{ Actor: { Type: 'Foo', ID: '22' }, id: 'ticker', path: '/echo', deadline: '2020-04-14T14:17:51.073Z', period: 5000000000, encodedData: '{\"msg\":\"hello\"}' }, { Actor: { Type: 'Foo', ID: '22' }, id: 'once', path: '/echo', deadline: '2020-04-14T14:20:00Z', encodedData: '{\"msg\":\"carpe diem\"}' }]", "description": "An array containing all matching reminders" } } }, "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" } } }, "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" } } } } }