openapi: 3.0.0 info: title: Admin API description: This API exposes the admin operations of a Restate cluster, such as registering new service deployments, interacting with running invocations, register Kafka subscriptions, retrieve service metadata. For an overview, check out the [Operate documentation](https://docs.restate.dev/operate/). If you're looking for how to call your services, check out the [Ingress HTTP API](https://docs.restate.dev/invoke/http) instead. version: 1.4.0 paths: /cluster-health: get: tags: - cluster_health summary: Cluster Health description: Get the cluster health. operationId: cluster_health responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ClusterHealthResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /deployments: get: tags: - deployment summary: List Deployments description: List all registered deployments. operationId: list_deployments responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListDeploymentsResponse' post: tags: - deployment summary: Create Deployment description: Create deployment. Restate will invoke the endpoint to gather additional information required for registration, such as the services exposed by the deployment. If the deployment is already registered, this method will fail unless `force` is set to `true`. externalDocs: url: https://docs.restate.dev/operate/registration operationId: create_deployment requestBody: content: application/json: schema: $ref: '#/components/schemas/RegisterDeploymentRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/RegisterDeploymentResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /deployments/{deployment}: get: tags: - deployment summary: Get Deployment description: Get deployment metadata operationId: get_deployment parameters: - name: deployment in: path description: Deployment identifier required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/DetailedDeploymentResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' put: tags: - deployment summary: Update Deployment description: Update deployment. Invokes the endpoint and replaces the existing deployment metadata with the discovered information. This is a dangerous operation that should be used only when there are failing invocations on the deployment that cannot be resolved any other way. Sense checks are applied to test that the new deployment is sufficiently similar to the old one. externalDocs: url: https://docs.restate.dev/operate/versioning operationId: update_deployment parameters: - name: deployment in: path description: Deployment identifier required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateDeploymentRequest' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/DetailedDeploymentResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' delete: tags: - deployment summary: Delete Deployment description: Delete deployment. Currently it's supported to remove a deployment only using the force flag operationId: delete_deployment parameters: - name: deployment in: path description: Deployment identifier required: true schema: type: string - name: force in: query description: If true, the deployment will be forcefully deleted. This might break in-flight invocations, use with caution. style: simple schema: type: boolean responses: '202': description: Accepted '501': description: Not implemented. Only using the force flag is supported at the moment. '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /health: get: tags: - health summary: Health Check description: Check REST API Health. operationId: health responses: '200': description: OK /invocations/{invocation_id}: delete: tags: - invocation summary: Delete An Invocation description: Use kill_invocation/cancel_invocation/purge_invocation instead. operationId: delete_invocation parameters: - name: invocation_id in: path description: Invocation identifier. required: true schema: type: string - name: mode in: query description: If cancel, it will gracefully terminate the invocation. If kill, it will terminate the invocation with a hard stop. If purge, it will only cleanup the response for completed invocations, and leave unaffected an in-flight invocation. style: simple schema: $ref: '#/components/schemas/DeletionMode' responses: '202': description: Accepted '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' deprecated: true /invocations/{invocation_id}/cancel: patch: tags: - invocation summary: Cancel An Invocation description: Cancel the given invocation. Canceling an invocation allows it to free any resources it is holding and roll back any changes it has made so far, running compensation code. For more details, checkout https://docs.restate.dev/guides/sagas externalDocs: url: https://docs.restate.dev/guides/sagas operationId: cancel_invocation parameters: - name: invocation_id in: path description: Invocation identifier. required: true schema: type: string responses: '200': description: The invocation has been cancelled. '202': description: The cancellation signal was appended to the journal and will be processed by the SDK. 404 Not Found: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 503 Service Unavailable: description: Error when routing the request within restate. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 400 Bad Request: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 409 Conflict: description: The invocation was already completed, so it cannot be cancelled nor killed. You can instead purge the invocation, in order for restate to forget it. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /invocations/{invocation_id}/kill: patch: tags: - invocation summary: Kill An Invocation description: Kill the given invocation. This does not guarantee consistency for virtual object instance state, in-flight invocations to other services, etc. operationId: kill_invocation parameters: - name: invocation_id in: path description: Invocation identifier. required: true schema: type: string responses: '200': description: '' 404 Not Found: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 503 Service Unavailable: description: Error when routing the request within restate. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 400 Bad Request: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 409 Conflict: description: The invocation was already completed, so it cannot be cancelled nor killed. You can instead purge the invocation, in order for restate to forget it. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /invocations/{invocation_id}/purge: patch: tags: - invocation summary: Purge An Invocation description: Purge the given invocation. This cleanups all the state for the given invocation. This command applies only to completed invocations. operationId: purge_invocation parameters: - name: invocation_id in: path description: Invocation identifier. required: true schema: type: string responses: '200': description: '' 404 Not Found: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 503 Service Unavailable: description: Error when routing the request within restate. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 400 Bad Request: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 409 Conflict: description: The invocation is not yet completed. An invocation can be purged only when completed. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /invocations/{invocation_id}/purge-journal: patch: tags: - invocation summary: Purge An Invocation Journal description: Purge the given invocation journal. This cleanups only the journal for the given invocation, retaining the metadata. This command applies only to completed invocations. operationId: purge_journal parameters: - name: invocation_id in: path description: Invocation identifier. required: true schema: type: string responses: '200': description: '' 404 Not Found: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 503 Service Unavailable: description: Error when routing the request within restate. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 400 Bad Request: description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' 409 Conflict: description: The invocation is not yet completed. An invocation can be purged only when completed. content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /openapi: get: tags: - openapi summary: OpenAPI Specification externalDocs: url: https://swagger.io/specification/ operationId: openapi_spec responses: '200': description: '' content: application/json: schema: type: object additionalProperties: type: string /services: get: tags: - service summary: List Services description: List all registered services. operationId: list_services responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListServicesResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /services/{service}: get: tags: - service summary: Get Service description: Get a registered service. operationId: get_service parameters: - name: service in: path description: Fully qualified service name. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ServiceMetadata' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' patch: tags: - service summary: Modify A Service description: Modify a registered service. operationId: modify_service parameters: - name: service in: path description: Fully qualified service name. required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ModifyServiceRequest' required: true responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ServiceMetadata' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /services/{service}/handlers: get: tags: - service_handler summary: List Service Handlers description: List all the handlers of the given service. operationId: list_service_handlers parameters: - name: service in: path description: Fully qualified service name. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListServiceHandlersResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /services/{service}/handlers/{handler}: get: tags: - service_handler summary: Get Service Handler description: Get the handler of a service operationId: get_service_handler parameters: - name: service in: path description: Fully qualified service name. required: true schema: type: string - name: handler in: path description: Handler name. required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/HandlerMetadata' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /services/{service}/openapi: get: tags: - service summary: Get Service OpenAPI description: Get the service OpenAPI 3.1 contract. operationId: get_service_openapi parameters: - name: service in: path description: Fully qualified service name. required: true schema: type: string responses: '200': description: OpenAPI 3.1 of the service content: application/json: schema: {} '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /services/{service}/state: post: tags: - service summary: Modify A Service State description: Modify service state operationId: modify_service_state parameters: - name: service in: path description: Fully qualified service name. required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ModifyServiceStateRequest' required: true responses: '202': description: Accepted '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /subscriptions: get: tags: - subscription summary: List Subscriptions description: List all subscriptions. operationId: list_subscriptions parameters: - name: sink in: query description: Filter by the exact specified sink. style: simple schema: type: string - name: source in: query description: Filter by the exact specified source. style: simple schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListSubscriptionsResponse' post: tags: - subscription summary: Create Subscription description: Create subscription. externalDocs: url: https://docs.restate.dev/operate/invocation#managing-kafka-subscriptions operationId: create_subscription requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSubscriptionRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /subscriptions/{subscription}: get: tags: - subscription summary: Get Subscription description: Get subscription operationId: get_subscription parameters: - name: subscription in: path description: Subscription identifier required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' delete: tags: - subscription summary: Delete Subscription description: Delete subscription. operationId: delete_subscription parameters: - name: subscription in: path description: Subscription identifier required: true schema: type: string responses: '202': description: Accepted '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '409': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorDescriptionResponse' /version: get: tags: - version summary: Admin Version Information description: Obtain admin version information. operationId: version responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/VersionInformation' components: schemas: ClusterHealthResponse: type: object required: - cluster_name properties: cluster_name: description: Cluster name type: string metadata_cluster_health: description: Embedded metadata cluster health if it was enabled allOf: - $ref: '#/components/schemas/EmbeddedMetadataClusterHealth' nullable: true EmbeddedMetadataClusterHealth: type: object required: - members properties: members: description: Current members of the embedded metadata cluster type: array items: type: integer format: uint32 minimum: 0.0 ErrorDescriptionResponse: title: Error description response description: Error details of the response type: object required: - message properties: message: type: string restate_code: title: Restate code description: Restate error code describing this error type: string nullable: true ListDeploymentsResponse: type: object required: - deployments properties: deployments: type: array items: $ref: '#/components/schemas/DeploymentResponse' DeploymentResponse: anyOf: - title: HttpDeploymentResponse description: Deployment response for HTTP deployments type: object required: - created_at - http_version - id - max_protocol_version - min_protocol_version - protocol_type - services - uri properties: id: title: Deployment ID allOf: - $ref: '#/components/schemas/String' uri: title: Deployment URI description: URI used to invoke this service deployment. type: string protocol_type: title: Protocol Type description: Protocol type used to invoke this service deployment. allOf: - $ref: '#/components/schemas/ProtocolType' http_version: title: HTTP Version description: HTTP Version used to invoke this service deployment. type: string additional_headers: title: Additional headers description: Additional headers used to invoke this service deployment. type: object additionalProperties: type: string created_at: type: string min_protocol_version: title: Minimum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 max_protocol_version: title: Maximum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 sdk_version: title: SDK version description: SDK library and version declared during registration. type: string nullable: true services: title: Services description: List of services exposed by this deployment. type: array items: $ref: '#/components/schemas/ServiceNameRevPair' - title: LambdaDeploymentResponse description: Deployment response for Lambda deployments type: object required: - arn - created_at - id - max_protocol_version - min_protocol_version - services properties: id: title: Deployment ID allOf: - $ref: '#/components/schemas/String' arn: title: Lambda ARN description: Lambda ARN used to invoke this service deployment. allOf: - $ref: '#/components/schemas/LambdaARN' assume_role_arn: title: Assume role ARN description: Assume role ARN used to invoke this deployment. Check https://docs.restate.dev/category/aws-lambda for more details. type: string nullable: true additional_headers: title: Additional headers description: Additional headers used to invoke this service deployment. type: object additionalProperties: type: string created_at: type: string min_protocol_version: title: Minimum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 max_protocol_version: title: Maximum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 sdk_version: title: SDK version description: SDK library and version declared during registration. type: string nullable: true services: title: Services description: List of services exposed by this deployment. type: array items: $ref: '#/components/schemas/ServiceNameRevPair' String: type: string ProtocolType: type: string enum: - RequestResponse - BidiStream ServiceNameRevPair: type: object required: - name - revision properties: name: type: string revision: type: integer format: uint32 minimum: 0.0 LambdaARN: type: string format: arn RegisterDeploymentRequest: anyOf: - title: RegisterHttpDeploymentRequest description: Register HTTP deployment request type: object required: - uri properties: uri: title: Uri description: Uri to use to discover/invoke the http deployment. type: string additional_headers: title: Additional headers description: Additional headers added to the discover/invoke requests to the deployment. type: object additionalProperties: type: string nullable: true use_http_11: title: Use http1.1 description: If `true`, discovery will be attempted using a client that defaults to HTTP1.1 instead of a prior-knowledge HTTP2 client. HTTP2 may still be used for TLS servers that advertise HTTP2 support via ALPN. HTTP1.1 deployments will only work in request-response mode. default: false type: boolean force: title: Force description: 'If `true`, it will override, if existing, any deployment using the same `uri`. Beware that this can lead in-flight invocations to an unrecoverable error state. By default, this is `true` but it might change in future to `false`. See the [versioning documentation](https://docs.restate.dev/operate/versioning) for more information.' default: true type: boolean dry_run: title: Dry-run mode description: If `true`, discovery will run but the deployment will not be registered. This is useful to see the impact of a new deployment before registering it. default: false type: boolean - title: RegisterLambdaDeploymentRequest description: Register Lambda deployment request type: object required: - arn properties: arn: title: ARN description: ARN to use to discover/invoke the lambda deployment. type: string assume_role_arn: title: Assume role ARN description: Optional ARN of a role to assume when invoking the addressed Lambda, to support role chaining type: string nullable: true additional_headers: title: Additional headers description: Additional headers added to the discover/invoke requests to the deployment. type: object additionalProperties: type: string nullable: true force: title: Force description: 'If `true`, it will override, if existing, any deployment using the same `uri`. Beware that this can lead in-flight invocations to an unrecoverable error state. By default, this is `true` but it might change in future to `false`. See the [versioning documentation](https://docs.restate.dev/operate/versioning) for more information.' default: true type: boolean dry_run: title: Dry-run mode description: If `true`, discovery will run but the deployment will not be registered. This is useful to see the impact of a new deployment before registering it. default: false type: boolean RegisterDeploymentResponse: type: object required: - id - services properties: id: $ref: '#/components/schemas/String' services: type: array items: $ref: '#/components/schemas/ServiceMetadata' min_protocol_version: title: Minimum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. default: 0 type: integer format: int32 max_protocol_version: title: Maximum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. default: 0 type: integer format: int32 sdk_version: title: SDK version description: SDK library and version declared during registration. type: string nullable: true ServiceMetadata: type: object required: - deployment_id - handlers - name - public - revision - ty properties: name: title: Name description: Fully qualified name of the service type: string handlers: type: array items: $ref: '#/components/schemas/HandlerMetadata' ty: $ref: '#/components/schemas/ServiceType' documentation: title: Documentation description: Documentation of the service, as propagated by the SDKs. type: string nullable: true metadata: title: Metadata description: Additional service metadata, as propagated by the SDKs. type: object additionalProperties: type: string deployment_id: title: Deployment Id description: Deployment exposing the latest revision of the service. type: string revision: title: Revision description: Latest revision of the service. type: integer format: uint32 minimum: 0.0 public: title: Public description: If true, the service can be invoked through the ingress. If false, the service can be invoked only from another Restate service. type: boolean idempotency_retention: title: Idempotency retention description: The retention duration of idempotent requests for this service. type: string nullable: true workflow_completion_retention: title: Workflow completion retention description: The retention duration of workflows. Only available on workflow services. type: string nullable: true journal_retention: title: Journal retention description: 'The journal retention. When set, this applies to all requests to all handlers of this service. In case the request has an idempotency key, the `idempotency_retention` caps the maximum `journal_retention` time. In case the request targets a workflow handler, the `workflow_completion_retention` caps the maximum `journal_retention` time.' type: string nullable: true inactivity_timeout: title: Inactivity timeout description: 'This timer guards against stalled service/handler invocations. Once it expires, Restate triggers a graceful termination by asking the service invocation to suspend (which preserves intermediate progress). The ''abort timeout'' is used to abort the invocation, in case it doesn''t react to the request to suspend. Can be configured using the [`jiff::fmt::friendly`](https://docs.rs/jiff/latest/jiff/fmt/friendly/index.html) format or ISO8601. This overrides the default inactivity timeout set in invoker options.' type: string nullable: true abort_timeout: title: Abort timeout description: 'This timer guards against stalled service/handler invocations that are supposed to terminate. The abort timeout is started after the ''inactivity timeout'' has expired and the service/handler invocation has been asked to gracefully terminate. Once the timer expires, it will abort the service/handler invocation. This timer potentially **interrupts** user code. If the user code needs longer to gracefully terminate, then this value needs to be set accordingly. Can be configured using the [`jiff::fmt::friendly`](https://docs.rs/jiff/latest/jiff/fmt/friendly/index.html) format or ISO8601. This overrides the default abort timeout set in invoker options.' type: string nullable: true enable_lazy_state: title: Enable lazy state description: If true, lazy state will be enabled for all invocations to this service. This is relevant only for Workflows and Virtual Objects. type: boolean nullable: true HandlerMetadata: type: object required: - input_description - name - output_description properties: name: type: string ty: allOf: - $ref: '#/components/schemas/HandlerMetadataType' nullable: true documentation: title: Documentation description: Documentation of the handler, as propagated by the SDKs. type: string nullable: true metadata: title: Metadata description: Additional handler metadata, as propagated by the SDKs. type: object additionalProperties: type: string idempotency_retention: title: Idempotency retention description: The retention duration of idempotent requests for this service. type: string nullable: true workflow_completion_retention: title: Workflow completion retention description: The retention duration of workflows. Only available on workflow services. type: string nullable: true journal_retention: title: Journal retention description: 'The journal retention. When set, this applies to all requests to this handler. In case the request has an idempotency key, the `idempotency_retention` caps the maximum `journal_retention` time. In case this handler is a workflow handler, the `workflow_completion_retention` caps the maximum `journal_retention` time.' type: string nullable: true inactivity_timeout: title: Inactivity timeout description: 'This timer guards against stalled service/handler invocations. Once it expires, Restate triggers a graceful termination by asking the service invocation to suspend (which preserves intermediate progress). The ''abort timeout'' is used to abort the invocation, in case it doesn''t react to the request to suspend. Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format. This overrides the default inactivity timeout set in invoker options.' type: string nullable: true abort_timeout: title: Abort timeout description: 'This timer guards against stalled service/handler invocations that are supposed to terminate. The abort timeout is started after the ''inactivity timeout'' has expired and the service/handler invocation has been asked to gracefully terminate. Once the timer expires, it will abort the service/handler invocation. This timer potentially **interrupts** user code. If the user code needs longer to gracefully terminate, then this value needs to be set accordingly. Can be configured using the [`humantime`](https://docs.rs/humantime/latest/humantime/fn.parse_duration.html) format. This overrides the default abort timeout set in invoker options.' type: string nullable: true enable_lazy_state: title: Enable lazy state description: If true, lazy state will be enabled for all invocations to this service. This is relevant only for Workflows and Virtual Objects. type: boolean nullable: true public: title: Public description: If true, this handler can be invoked through the ingress. If false, this handler can be invoked only from another Restate service. default: true type: boolean input_description: title: Human readable input description description: If empty, no schema was provided by the user at discovery time. type: string output_description: title: Human readable output description description: If empty, no schema was provided by the user at discovery time. type: string input_json_schema: title: Input JSON Schema description: JSON Schema of the handler input nullable: true output_json_schema: title: Output JSON Schema description: JSON Schema of the handler output nullable: true HandlerMetadataType: type: string enum: - Exclusive - Shared - Workflow ServiceType: type: string enum: - Service - VirtualObject - Workflow DetailedDeploymentResponse: anyOf: - title: HttpDetailedDeploymentResponse description: Detailed deployment response for HTTP deployments type: object required: - created_at - http_version - id - max_protocol_version - min_protocol_version - protocol_type - services - uri properties: id: title: Deployment ID allOf: - $ref: '#/components/schemas/String' uri: title: Deployment URI description: URI used to invoke this service deployment. type: string protocol_type: title: Protocol Type description: Protocol type used to invoke this service deployment. allOf: - $ref: '#/components/schemas/ProtocolType' http_version: title: HTTP Version description: HTTP Version used to invoke this service deployment. type: string additional_headers: title: Additional headers description: Additional headers used to invoke this service deployment. type: object additionalProperties: type: string created_at: type: string min_protocol_version: title: Minimum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 max_protocol_version: title: Maximum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 sdk_version: title: SDK version description: SDK library and version declared during registration. type: string nullable: true services: title: Services description: List of services exposed by this deployment. type: array items: $ref: '#/components/schemas/ServiceMetadata' - title: LambdaDetailedDeploymentResponse description: Detailed deployment response for Lambda deployments type: object required: - arn - created_at - id - max_protocol_version - min_protocol_version - services properties: id: title: Deployment ID allOf: - $ref: '#/components/schemas/String' arn: title: Lambda ARN description: Lambda ARN used to invoke this service deployment. allOf: - $ref: '#/components/schemas/LambdaARN' assume_role_arn: title: Assume role ARN description: Assume role ARN used to invoke this deployment. Check https://docs.restate.dev/category/aws-lambda for more details. type: string nullable: true additional_headers: title: Additional headers description: Additional headers used to invoke this service deployment. type: object additionalProperties: type: string created_at: type: string min_protocol_version: title: Minimum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 max_protocol_version: title: Maximum Service Protocol version description: During registration, the SDKs declare a range from minimum (included) to maximum (included) Service Protocol supported version. type: integer format: int32 sdk_version: title: SDK version description: SDK library and version declared during registration. type: string nullable: true services: title: Services description: List of services exposed by this deployment. type: array items: $ref: '#/components/schemas/ServiceMetadata' UpdateDeploymentRequest: anyOf: - type: object required: - uri properties: uri: title: Uri description: Uri to use to discover/invoke the http deployment. type: string additional_headers: title: Additional headers description: Additional headers added to the discover/invoke requests to the deployment. type: object additionalProperties: type: string nullable: true use_http_11: title: Use http1.1 description: If `true`, discovery will be attempted using a client that defaults to HTTP1.1 instead of a prior-knowledge HTTP2 client. HTTP2 may still be used for TLS servers that advertise HTTP2 support via ALPN. HTTP1.1 deployments will only work in request-response mode. default: false type: boolean dry_run: title: Dry-run mode description: If `true`, discovery will run but the deployment will not be registered. This is useful to see the impact of a new deployment before registering it. default: false type: boolean - type: object required: - arn properties: arn: title: ARN description: ARN to use to discover/invoke the lambda deployment. type: string assume_role_arn: title: Assume role ARN description: Optional ARN of a role to assume when invoking the addressed Lambda, to support role chaining type: string nullable: true additional_headers: title: Additional headers description: Additional headers added to the discover/invoke requests to the deployment. type: object additionalProperties: type: string nullable: true dry_run: title: Dry-run mode description: If `true`, discovery will run but the deployment will not be registered. This is useful to see the impact of a new deployment before registering it. default: false type: boolean DeletionMode: type: string enum: - Cancel - Kill - Purge ListServicesResponse: type: object required: - services properties: services: type: array items: $ref: '#/components/schemas/ServiceMetadata' ModifyServiceRequest: type: object properties: public: title: Public description: If true, the service can be invoked through the ingress. If false, the service can be invoked only from another Restate service. default: null type: boolean nullable: true idempotency_retention: title: Idempotency retention description: 'Modify the retention of idempotent requests for this service. Can be configured using the [`jiff::fmt::friendly`](https://docs.rs/jiff/latest/jiff/fmt/friendly/index.html) format or ISO8601.' default: null type: string nullable: true workflow_completion_retention: title: Workflow completion retention description: 'Modify the retention of the workflow completion. This can be modified only for workflow services! Can be configured using the [`jiff::fmt::friendly`](https://docs.rs/jiff/latest/jiff/fmt/friendly/index.html) format or ISO8601.' default: null type: string nullable: true inactivity_timeout: title: Inactivity timeout description: 'This timer guards against stalled service/handler invocations. Once it expires, Restate triggers a graceful termination by asking the service invocation to suspend (which preserves intermediate progress). The ''abort timeout'' is used to abort the invocation, in case it doesn''t react to the request to suspend. Can be configured using the [`jiff::fmt::friendly`](https://docs.rs/jiff/latest/jiff/fmt/friendly/index.html) format or ISO8601. This overrides the default inactivity timeout set in invoker options.' default: null type: string nullable: true abort_timeout: title: Abort timeout description: 'This timer guards against stalled service/handler invocations that are supposed to terminate. The abort timeout is started after the ''inactivity timeout'' has expired and the service/handler invocation has been asked to gracefully terminate. Once the timer expires, it will abort the service/handler invocation. This timer potentially **interrupts** user code. If the user code needs longer to gracefully terminate, then this value needs to be set accordingly. Can be configured using the [`jiff::fmt::friendly`](https://docs.rs/jiff/latest/jiff/fmt/friendly/index.html) format or ISO8601. This overrides the default abort timeout set in invoker options.' default: null type: string nullable: true ListServiceHandlersResponse: type: object required: - handlers properties: handlers: type: array items: $ref: '#/components/schemas/HandlerMetadata' ModifyServiceStateRequest: type: object required: - new_state - object_key properties: version: title: Version description: If set, the latest version of the state is compared with this value and the operation will fail when the versions differ. type: string nullable: true object_key: title: Service key description: To what virtual object key to apply this change type: string new_state: title: New State description: The new state to replace the previous state with type: object additionalProperties: type: array items: type: integer format: uint8 minimum: 0.0 ListSubscriptionsResponse: type: object required: - subscriptions properties: subscriptions: type: array items: $ref: '#/components/schemas/SubscriptionResponse' SubscriptionResponse: type: object required: - id - options - sink - source properties: id: $ref: '#/components/schemas/String' source: type: string sink: type: string options: type: object additionalProperties: type: string CreateSubscriptionRequest: type: object required: - sink - source properties: source: title: Source description: 'Source uri. Accepted forms: * `kafka:///`, e.g. `kafka://my-cluster/my-topic`' type: string sink: title: Sink description: 'Sink uri. Accepted forms: * `service:///`, e.g. `service://Counter/count`' type: string options: title: Options description: Additional options to apply to the subscription. type: object additionalProperties: type: string nullable: true VersionInformation: type: object required: - ingress_endpoint - max_admin_api_version - min_admin_api_version - version properties: version: title: Admin server version description: Version of the admin server type: string min_admin_api_version: title: Min admin API version description: Minimum supported admin API version by the admin server type: integer format: uint16 minimum: 0.0 max_admin_api_version: title: Max admin API version description: Maximum supported admin API version by the admin server type: integer format: uint16 minimum: 0.0 ingress_endpoint: title: Ingress endpoint description: Ingress endpoint that the Web UI should use to interact with. type: string format: uri tags: - name: deployment description: Service Deployment management - name: invocation description: Invocation management externalDocs: url: https://docs.restate.dev/operate/invocation - name: subscription description: Subscription management externalDocs: url: https://docs.restate.dev/operate/invocation#managing-kafka-subscriptions - name: service description: Service management - name: service_handler description: Service handlers metadata - name: cluster_health description: Cluster health - name: health description: Admin API health - name: version description: API Version externalDocs: url: https://docs.restate.dev/operate/