{ "openapi": "3.0.1", "info": { "title": "OpenAPI spec for ClickHouse Cloud", "version": "1.0", "contact": { "name": "ClickHouse Support", "url": "https://clickhouse.com/docs/en/cloud/manage/openapi?referrer=openapi-105845", "email": "support@clickhouse.com" } }, "servers": [ { "url": "https://api.clickhouse.cloud" } ], "paths": { "/v1/organizations": { "get": { "summary": "Get list of available organizations", "description": "Returns a list with a single organization associated with the API key in the request.", "parameters": [], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Organization" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId": { "get": { "summary": "Get organization details", "description": "Returns details of a single organization. In order to get the details, the auth key must belong to the organization.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Organization" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update organization details", "description": "Updates organization fields. Requires ADMIN auth key role.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization to update.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Organization" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services": { "get": { "summary": "List of organization services", "description": "Returns a list of all services in the organization.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Service" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "post": { "summary": "Create new service", "description": "Creates a new service in the organization, and returns the current service state and a password to access the service. The service is started asynchronously.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that will own the service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicePostRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ServicePostResponse" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId": { "get": { "summary": "Get service details", "description": "Returns a service that belongs to the organization", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the requested service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update service basic details.", "description": "Updates basic service details like service name or IP access list.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the service to update.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicePatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Delete service.", "description": "Deletes the service. The service must be in stopped state and is deleted asynchronously after this method call.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the service to delete.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId/privateEndpointConfig": { "get": { "summary": "Get private endpoint configuration", "description": "Information required to set up a private endpoint", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the requested service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/PrivateEndpointConfig" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId/state": { "patch": { "summary": "Update service state.", "description": "Starts or stop service", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the service to update state.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceStatePatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId/scaling": { "patch": { "summary": "Update service auto scaling settings.", "description": "Updates minimum and maximum total memory limits and idle mode scaling behavior for the service. The memory settings are available only for \"production\" services and must be a multiple of 12 starting from 24GB. Please contact support to enable adjustment of numReplicas.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the service to update scaling parameters.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceScalingPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId/password": { "patch": { "summary": "Update service password.", "description": "Sets a new password for the service", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the service to update password.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicePasswordPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ServicePasswordPatchResponse" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId/prometheus": { "get": { "summary": "Get service details", "description": "Returns prometheus metrics for a service. Please contact support to enable this feature.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the requested service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "text/plain": { "schema": { "type": "string" } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId/backups": { "get": { "summary": "List of service backups", "description": "Returns a list of all backups for the service. The most recent backups comes first in the list.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the backup.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the service the backup was created from.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Backup" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/services/:serviceId/backups/:backupId": { "get": { "summary": "Get backup details", "description": "Returns a single backup info.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the backup.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service ID", "description": "ID of the service the backup was created from.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Service backup ID", "description": "ID of the requested backup.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Backup" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/keys": { "get": { "summary": "Get list of all keys", "description": "Returns a list of all keys in the organization.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/ApiKey" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "post": { "summary": "Create key", "description": "Creates new API key.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that will own the key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyPostRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ApiKeyPostResponse" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/keys/:keyId": { "get": { "summary": "Get key details", "description": "Returns a single key details.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "API key ID", "description": "ID of the requested key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ApiKey" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update key", "description": "Updates API key properties.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "API key ID", "description": "ID of the key to update.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ApiKey" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Delete key", "description": "Deletes API key. Only a key not used to authenticate the active request can be deleted.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that owns the key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "API key ID", "description": "ID of the key to delete.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/members": { "get": { "summary": "List organization members", "description": "Returns a list of all members in the organization.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Member" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/members/:userId": { "get": { "summary": "Get member details", "description": "Returns a single organization member details.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization the member is part of.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "User ID", "description": "ID of the requested user.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Member" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update organization member.", "description": "Updates organization member role.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization the member is part of.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "User ID", "description": "ID of the user to patch", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemberPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Member" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Remove an organization member", "description": "Removes a user from the organization", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "User ID", "description": "ID of the requested user.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/invitations": { "get": { "summary": "List all invitations", "description": "Returns list of all organization invitations.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Invitation" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "post": { "summary": "Create an invitation", "description": "Creates organization invitation.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization to invite a user to.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitationPostRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Invitation" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/invitations/:invitationId": { "get": { "summary": "Get invitation details", "description": "Returns details for a single organization invitation.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Organization invitation ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Invitation" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Delete organization invitation", "description": "Deletes a single organization invitation.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the organization that has the invitation.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Organization invitation ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/activities": { "get": { "summary": "List of organization activities", "description": "Returns a list of all organization activities.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Activity" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/activities/:activityId": { "get": { "summary": "Organization activity", "description": "Returns a single organization activity by ID.", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "Activity ID", "description": "ID of the requested activity.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Activity" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/:organizationId/privateEndpointConfig": { "get": { "summary": "Get private endpoint configuration for region within cloud provider for an organization", "description": "Information required to set up a private endpoint", "parameters": [ { "in": "path", "name": "Organization ID", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "query", "name": "Cloud provider identifier", "description": "Cloud provider identifier. One of aws, gcp, or azure.", "schema": { "type": "string" }, "required": true }, { "in": "query", "name": "Cloud provider region", "description": "Region identifier within specific cloud providers.", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/OrganizationCloudRegionPrivateEndpointConfig" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } } }, "components": { "schemas": { "ServiceEndpoint": { "properties": { "protocol": { "type": "string", "description": "Endpoint protocol: 'https', 'nativesecure', 'mysql'.", "enum": [ "https", "nativesecure", "mysql" ] }, "host": { "type": "string", "description": "Service host name" }, "port": { "type": "number", "description": "Numeric port" } } }, "IpAccessListEntry": { "properties": { "source": { "type": "string", "description": "IP or CIDR" }, "description": { "type": "string", "description": "Optional description of IPv4 address or IPv4 CIDR to allow access from" } } }, "Service": { "properties": { "id": { "type": "string", "description": "Unique service ID.", "format": "uuid" }, "name": { "type": "string", "description": "Name of the service. Alphanumerical string with whitespaces up to 50 characters." }, "provider": { "type": "string", "description": "Cloud provider", "enum": [ "aws", "gcp", "azure" ] }, "region": { "type": "string", "description": "Service region.", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "us-east1", "us-central1", "europe-west4", "asia-southeast1", "eastus", "eastus2", "westus3", "germanywestcentral" ] }, "state": { "type": "string", "description": "Current state of the service.", "enum": [ "starting", "stopping", "terminating", "awaking", "provisioning", "running", "stopped", "terminated", "degraded", "failed", "idle" ] }, "endpoints": { "type": "array", "description": "List of all service endpoints.", "items": { "$ref": "#/components/schemas/ServiceEndpoint" } }, "tier": { "type": "string", "description": "Tier of the service: 'development', 'production', 'dedicated_high_mem', 'dedicated_high_cpu', 'dedicated_standard'. Production services scale, Development are fixed size.", "enum": [ "development", "production", "dedicated_high_mem", "dedicated_high_cpu", "dedicated_standard" ] }, "minTotalMemoryGb": { "type": "number", "description": "Minimum total memory of all workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and greater than 24.", "minimum": 24, "maximum": 720, "multipleOf": 12, "example": 48 }, "maxTotalMemoryGb": { "type": "number", "description": "Maximum total memory of all workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and lower than 360 for non paid services or 720 for paid services.", "minimum": 24, "maximum": 720, "multipleOf": 12, "example": 360 }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be greater than 3 and less than 25. Contact support to enable this feature.", "minimum": 3, "maximum": 25, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. Always true for development services." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." }, "ipAccessList": { "type": "array", "description": "List of IP addresses allowed to access the service", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } }, "createdAt": { "type": "string", "description": "Service creation timestamp. ISO-8601.", "format": "date-time" }, "encryptionKey": { "type": "string", "description": "Optional customer provided disk encryption key" }, "encryptionAssumedRoleIdentifier": { "type": "string", "description": "Optional role to use for disk encryption" }, "iamRole": { "type": "string", "description": "IAM role used for accessing objects in s3" }, "privateEndpointIds": { "type": "array", "description": "List of private endpoints", "items": { "type": "string" } } } }, "PrivateEndpointConfig": { "properties": { "endpointServiceId": { "type": "string", "description": "Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource" }, "privateDnsHostname": { "type": "string", "description": "Private DNS Hostname of the VPC you created" } } }, "IpAccessListPatch": { "properties": { "add": { "type": "array", "description": "Elements to add. Executed after \"remove\" part is processed.", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } }, "remove": { "type": "array", "description": "Elements to remove. Executed before \"add\" part is processed.", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } } } }, "InstancePrivateEndpointsPatch": { "properties": { "add": { "type": "array", "description": "Elements to add. Executed after \"remove\" part is processed.", "items": { "type": "string" } }, "remove": { "type": "array", "description": "Elements to remove. Executed before \"add\" part is processed.", "items": { "type": "string" } } } }, "Activity": { "properties": { "id": { "type": "string", "description": "Unique activity ID." }, "createdAt": { "type": "string", "description": "Timestamp of the activity. ISO-8601.", "format": "date-time" }, "type": { "type": "string", "description": "Type of the activity.", "enum": [ "organization_update_name", "organization_invite_create", "organization_invite_delete", "organization_member_join", "organization_member_add", "organization_member_leave", "organization_member_delete", "organization_member_update_role", "key_create", "key_delete", "service_create", "service_start", "service_stop", "service_delete", "service_update_name", "service_update_ip_access_list", "service_update_autoscaling_memory", "service_update_autoscaling_idling", "service_update_password", "backup_delete" ] }, "actorType": { "type": "string", "description": "Type of the actor: 'user', 'support', 'system', 'api'.", "enum": [ "user", "support", "system", "api" ] }, "actorId": { "type": "string", "description": "Unique actor ID." }, "actorDetails": { "type": "string", "description": "Additional information about the actor." }, "actorIpAddress": { "type": "string", "description": "IP address of the actor. Defined for 'user' and 'api' actor types." }, "organizationId": { "type": "string", "description": "Scope of the activity: organization ID this activity is related to." }, "serviceId": { "type": "string", "description": "Scope of the activity: service ID this activity is related to." } } }, "Backup": { "properties": { "id": { "type": "string", "description": "Unique backup ID.", "format": "uuid" }, "status": { "type": "string", "description": "Status of the backup: 'done', 'error', 'in_progress'.", "enum": [ "done", "error", "in_progress" ] }, "serviceId": { "type": "string", "description": "Name " }, "startedAt": { "type": "string", "description": "Backup start timestamp. ISO-8601.", "format": "date-time" }, "finishedAt": { "type": "string", "description": "Backup finish timestamp. ISO-8601. Available only for finished backups", "format": "date-time" } } }, "OrganizationPrivateEndpoint": { "properties": { "id": { "type": "string", "description": "Private endpoint identifier" }, "description": { "type": "string", "description": "Description of private endpoint" }, "cloudProvider": { "type": "string", "description": "Cloud provider in which the private endpoint is lcoated", "enum": [ "gcp", "aws", "azure" ] }, "region": { "type": "string", "description": "Region in which the private endpoint is located", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "ca-central-1", "sa-east-1", "af-south-1", "eu-north-1", "gcp-us-east1", "gcp-us-central1", "gcp-us-west1", "gcp-europe-west4", "gcp-asia-southeast1", "azure-eastus", "azure-eastus2", "azure-westus3", "azure-germanywestcentral" ] } } }, "Organization": { "properties": { "id": { "type": "string", "description": "Unique organization ID.", "format": "uuid" }, "createdAt": { "type": "string", "description": "The timestamp the organization was created. ISO-8601.", "format": "date-time" }, "name": { "type": "string", "description": "Name of the organization." }, "privateEndpoints": { "type": "array", "description": "List of private endpoints for organization", "items": { "$ref": "#/components/schemas/OrganizationPrivateEndpoint" } } } }, "OrganizationCloudRegionPrivateEndpointConfig": { "properties": { "endpointServiceId": { "type": "string", "description": "Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource" } } }, "OrganizationPatchPrivateEndpoint": { "properties": { "id": { "type": "string", "description": "Private endpoint identifier" }, "description": { "type": "string", "description": "Optional description of private endpoint" }, "cloudProvider": { "type": "string", "description": "Cloud provider in which the private endpoint is lcoated", "enum": [ "gcp", "aws", "azure" ] }, "region": { "type": "string", "description": "Region in which the private endpoint is located", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "ca-central-1", "sa-east-1", "af-south-1", "eu-north-1", "gcp-us-east1", "gcp-us-central1", "gcp-us-west1", "gcp-europe-west4", "gcp-asia-southeast1", "azure-eastus", "azure-eastus2", "azure-westus3", "azure-germanywestcentral" ] } } }, "OrganizationPrivateEndpointsPatch": { "properties": { "add": { "type": "array", "description": "Elements to add. Executed after \"remove\" part is processed.", "items": { "$ref": "#/components/schemas/OrganizationPatchPrivateEndpoint" } }, "remove": { "type": "array", "description": "Elements to remove. Executed before \"add\" part is processed.", "items": { "$ref": "#/components/schemas/OrganizationPatchPrivateEndpoint" } } } }, "Member": { "properties": { "userId": { "type": "string", "description": "Unique user ID. If a user is a member in multiple organizations this ID will stay the same." }, "name": { "type": "string", "description": "Name of the member as set a personal user profile." }, "email": { "type": "string", "description": "Email of the member as set in personal user profile.", "format": "email" }, "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer" ] }, "joinedAt": { "type": "string", "description": "Timestamp the member joined the organization. ISO-8601.", "format": "date-time" } } }, "Invitation": { "properties": { "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer" ] }, "id": { "type": "string", "description": "Unique invitation ID.", "format": "uuid" }, "email": { "type": "string", "description": "Email of the invited user. Only a user with this email can join using the invitation. The email is stored in a lowercase form.", "format": "email" }, "createdAt": { "type": "string", "description": "Invitation creation timestamp. ISO-8601.", "format": "date-time" }, "expireAt": { "type": "string", "description": "Timestamp the invitation expires. ISO-8601.", "format": "date-time" } } }, "ApiKey": { "properties": { "id": { "type": "string", "description": "Unique API key ID.", "format": "uuid" }, "name": { "type": "string", "description": "Name of the key" }, "state": { "type": "string", "description": "State of the key: 'enabled', 'disabled'.", "enum": [ "enabled", "disabled" ] }, "roles": { "type": "array", "description": "List of roles assigned to the key. Contains at least 1 element.", "items": { "type": "string", "enum": [ "admin", "developer" ] } }, "keySuffix": { "type": "string", "description": "Last 4 letters of the key." }, "createdAt": { "type": "string", "description": "Timestamp the key was created. ISO-8601.", "format": "date-time" }, "expireAt": { "type": "string", "description": "Timestamp the key expires. If not present or is empty the key never expires. ISO-8601.", "format": "date-time" }, "usedAt": { "type": "string", "description": "Timestamp the key was used last time. If not present the key was never used. ISO-8601.", "format": "date-time" } } }, "ApiKeyHashData": { "properties": { "keyIdHash": { "type": "string", "description": "Hash of the key ID. " }, "keyIdSuffix": { "type": "string", "description": "Last 4 digits of the key ID. Algorithm: echo -n \"yourpassword\" | sha256sum | tr -d '-' | xxd -r -p | base64" }, "keySecretHash": { "type": "string", "description": "Hash of the key secret. Algorithm: echo -n \"yourpassword\" | sha256sum | tr -d '-' | xxd -r -p | base64" } } }, "OrganizationPatchRequest": { "properties": { "name": { "type": "string", "description": "Name of the organization." }, "privateEndpoints": { "$ref": "#/components/schemas/OrganizationPrivateEndpointsPatch" } } }, "ServicePostResponse": { "properties": { "service": { "$ref": "#/components/schemas/Service" }, "password": { "type": "string", "description": "Password for the newly created service." } } }, "ServicePostRequest": { "properties": { "name": { "type": "string", "description": "Name of the service. Alphanumerical string with whitespaces up to 50 characters." }, "provider": { "type": "string", "description": "Cloud provider", "enum": [ "aws", "gcp", "azure" ] }, "region": { "type": "string", "description": "Service region.", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "us-east1", "us-central1", "europe-west4", "asia-southeast1", "eastus", "eastus2", "westus3", "germanywestcentral" ] }, "tier": { "type": "string", "description": "Tier of the service: 'development', 'production', 'dedicated_high_mem', 'dedicated_high_cpu', 'dedicated_standard'. Production services scale, Development are fixed size.", "enum": [ "development", "production", "dedicated_high_mem", "dedicated_high_cpu", "dedicated_standard" ] }, "ipAccessList": { "type": "array", "description": "List of IP addresses allowed to access the service", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } }, "minTotalMemoryGb": { "type": "number", "description": "Minimum total memory of all workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and greater than 24.", "minimum": 24, "maximum": 720, "multipleOf": 12, "example": 48 }, "maxTotalMemoryGb": { "type": "number", "description": "Maximum total memory of all workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and lower than 360 for non paid services or 720 for paid services.", "minimum": 24, "maximum": 720, "multipleOf": 12, "example": 360 }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be greater than 3 and less than 25. Contact support to enable this feature.", "minimum": 3, "maximum": 25, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. Always true for development services." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." }, "backupId": { "type": "string", "description": "Optional backup ID used as an initial state for the new service. When used the region and the tier of the new instance must be the same as the values of the original instance.", "format": "uuid" }, "encryptionKey": { "type": "string", "description": "Optional customer provided disk encryption key" }, "encryptionAssumedRoleIdentifier": { "type": "string", "description": "Optional role to use for disk encryption" }, "privateEndpointIds": { "type": "array", "description": "List of private endpoints", "items": { "type": "string" } }, "privatePreviewTermsChecked": { "type": "boolean", "description": "Accept the private preview terms and conditions. It is only needed when creating the first service in the organization in case of a private preview" } } }, "ServicePatchRequest": { "properties": { "name": { "type": "string", "description": "Name of the service. Alphanumerical string with whitespaces up to 50 characters." }, "ipAccessList": { "$ref": "#/components/schemas/IpAccessListPatch" }, "privateEndpointIds": { "$ref": "#/components/schemas/InstancePrivateEndpointsPatch" } } }, "ServiceStatePatchRequest": { "properties": { "command": { "type": "string", "description": "Command to change the state: 'start', 'stop'.", "enum": [ "start", "stop" ] } } }, "ServiceScalingPatchRequest": { "properties": { "minTotalMemoryGb": { "type": "number", "description": "Minimum total memory of all workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and greater than 24.", "minimum": 24, "maximum": 720, "multipleOf": 12, "example": 48 }, "maxTotalMemoryGb": { "type": "number", "description": "Maximum total memory of all workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and lower than 360 for non paid services or 720 for paid services.", "minimum": 24, "maximum": 720, "multipleOf": 12, "example": 360 }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be greater than 3 and less than 25. Contact support to enable this feature.", "minimum": 3, "maximum": 25, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. Always true for development services." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." } } }, "ServicePasswordPatchResponse": { "properties": { "password": { "type": "string", "description": "New service password. Provided only if there was no 'newPasswordHash' in the request" } } }, "ServicePasswordPatchRequest": { "properties": { "newPasswordHash": { "type": "string", "description": "Optional password hash. Used to avoid password transmission over network. If not provided a new password is generated and is provided in the response. Otherwise this hash is used. Algorithm: echo -n \"yourpassword\" | sha256sum | tr -d '-' | xxd -r -p | base64" }, "newDoubleSha1Hash": { "type": "string", "description": "Optional double SHA1 password hash for MySQL protocol. If newPasswordHash is not provided this key will be ignored and the generated password will be used. To enable this field please contact support as it is experimental. Algorithm: echo -n \"yourpassword\" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'" } } }, "ApiKeyPostResponse": { "properties": { "key": { "$ref": "#/components/schemas/ApiKey" }, "keyId": { "type": "string", "description": "Generated key ID. Provided only if there was no 'hashData' in the request." }, "keySecret": { "type": "string", "description": "Generated key secret. Provided only if there was no 'hashData' in the request." } } }, "ApiKeyPostRequest": { "properties": { "name": { "type": "string", "description": "Name of the key." }, "expireAt": { "type": "string", "description": "Timestamp the key expires. If not present or is empty the key never expires. ISO-8601.", "format": "date-time" }, "state": { "type": "string", "description": "Initial state of the key: 'enabled', 'disabled'. If not provided the new key will be 'enabled'.", "enum": [ "enabled", "disabled" ] }, "hashData": { "$ref": "#/components/schemas/ApiKeyHashData" }, "roles": { "type": "array", "description": "List of roles assigned to the key. Contains at least 1 element.", "items": { "type": "string", "enum": [ "admin", "developer" ] } } } }, "ApiKeyPatchRequest": { "properties": { "name": { "type": "string", "description": "Name of the key" }, "roles": { "type": "array", "description": "List of roles assigned to the key. Contains at least 1 element.", "items": { "type": "string", "enum": [ "admin", "developer" ] } }, "expireAt": { "type": "string", "description": "Timestamp the key expires. If not present or is empty the key never expires. ISO-8601.", "format": "date-time" }, "state": { "type": "string", "description": "State of the key: 'enabled', 'disabled'.", "enum": [ "enabled", "disabled" ] } } }, "MemberPatchRequest": { "properties": { "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer" ] } } }, "InvitationPostRequest": { "properties": { "email": { "type": "string", "description": "Email of the invited user. Only a user with this email can join using the invitation. The email is stored in a lowercase form.", "format": "email" }, "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer" ] } } } } } }