{ "swagger": "2.0", "info": { "title": "Koyeb Rest API", "description": "The Koyeb API allows you to interact with the Koyeb platform in a simple, programmatic way using conventional HTTP requests.\n", "version": "1.0.0" }, "host": "app.koyeb.com", "schemes": [ "https" ], "security": [ { "Bearer": [] } ], "tags": [ { "name": "intro", "x-displayName": "Introduction", "x-traitTag": true, "description": "Welcome to the Koyeb API documentation.\n\nThe Koyeb API allows you to interact with the Koyeb platform in a simple, programmatic way using conventional HTTP requests.\nThe API has predictable resource-oriented URLs, allowing you to request, retrieve and execute actions on resources efficiently.\n\nThe API returns JSON-encoded responses and uses standard HTTP response codes, and verbs.\n\nAll of the functionality available in the Koyeb Control Panel is also available via the API, allowing you to automate repetitive and complex actions as required.\n\nAll production API requests are made to:\n\n- https://app.koyeb.com/\n\nAll data is sent and received as JSON.\n\n## Constructing Requests\n\nRequests are made of three components:\n\n- Base URL: `https://app.koyeb.com`\n- API Version: `v1`\n- Resource path: `apps`\n\nTo construct a proper request, you need to format the URL as follows:\n\n`https://app.koyeb.com/{version}/{resource}`\n\nExample: `https://app.koyeb.com/v1/apps`\n\nThe following code is an example request to retrieve the list of Apps.\n\n```\n%curl -H 'Authorization: Bearer 1111-1111-1111-1111-1111' https://app.koyeb.com/v1/apps\n{\n \"apps\": [\n {\n \"id\": \"e267e09d-a2ef-4672-95c7-bf88d787a274\",\n \"name\": \"demo\",\n \"organization_id\": \"c402bcad-d06d-4fd6-8af2-08b790c0e249\",\n \"updated_at\": \"2021-04-26T08:28:59.221274Z\",\n \"created_at\": \"2021-04-26T08:28:59.221274Z\",\n \"domains\": [\n {\n \"name\": \"demo-koyeb.koyeb.app\",\n \"deployment_group\": \"prod\"\n }\n ]\n },\n {\n \"id\": \"e38caea5-5acb-4fec-aa65-81749546b470\",\n \"name\": \"www\",\n \"organization_id\": \"c402bcad-d06d-4fd6-8af2-08b790c0e249\",\n \"updated_at\": \"2021-05-04T08:56:40.557792Z\",\n \"created_at\": \"2021-05-04T08:56:40.557792Z\",\n \"domains\": [\n {\n \"name\": \"www-koyeb.koyeb.app\",\n \"deployment_group\": \"prod\"\n }\n ]\n }\n ],\n \"limit\": 20,\n \"offset\": 0,\n \"count\": 2\n}\n```\n\n# Authentication\n\nThe Koyeb API uses API keys to authenticate requests. You can view and manage your API keys in the Koyeb Control Panel.\n\nYour API keys carry many privileges. Take care to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, Slack, client-side code, and so forth.\n\nTo make an authenticated request, include a bearer-type Authorization header containing your API key.\n\nAll API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.\n\n# Errors\n\nWe use conventional HTTP response codes to indicate the success or failure of an API request.\n\nIn general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g., a required parameter is missing, resource not found), and codes in the 5xx range indicate an error with our servers.\n\n## HTTP Status Code Summary\n\n- `200 OK` - Everything worked as expected.\n- `400 Bad Request` - Often missing a required parameter.\n- `401 Unauthorized` - No valid API key provided.\n- `402 Request Failed` - Parameters were valid, but the request failed.\n- `403 Forbidden` - Insufficient privileges to access the requested resource.\n- `404 Not Found` - The requested item doesn't exist.\n- `50x` Server errors - Something went wrong on the API domain's end.\n\nInput and output data must be valid JSON with the appropriate Content-Type header set.\n\n## Attributes\n\n- code:\n\n - `invalid_argument`: Occur when your request has invalid parameters.\n - `unknown_resource`: Occur when the resource doesn't exist.\n - `authentication_error`: Arise when there is a problem with authentication.\n - `rate_limit_error`: Too many requests hit the API too quickly.\n - `authorization_required`: You don't have sufficient right to access the resource.\n - `api_error`: API errors use in case of a problem with api domain's servers (extremely uncommon).\n\n- message:\n\n - A human-readable error giving more details about the error\n\n- status:\n\n - The HTTP code returned by the server.\n\n- fields (Optional):\n\n - An array of parameters with a human-readable message giving more details about the error.\n\n## Errors responses example\n\nResponse 400 (application/json)\n\n```\n{\n \"status\": 400,\n \"code\": \"invalid_argument\",\n \"message\": \"Invalid argument\",\n \"fields\": [\n {\n \"field\": \"definition.docker.image\",\n \"description\": \"cannot be blank\"\n }\n ]\n}\n```\n\nResponse 401 (application/json)\n\n```\n{\n \"status\": 401,\n \"code\": \"authentication_error\",\n \"message\": \"Request unauthenticated with bearer\"\n}\n```\n\nResponse 403 (application/json)\n\n```\n{\n \"status\": 403,\n \"code\": \"authentication_required\",\n \"message\": \"You don't have the requested permission to access to resource.\"\n}\n```\n\n\nResponse 404 (application/json)\n\n```\n{\n \"status\": 404,\n \"code\": \"unknown_resource\",\n \"message\": \"App not found\"\n}\n```\n\n# Pagination\n\nAll top-level API resources receive a paginated response. For instance, list Apps, list Services, and others share a standard structure, taking two parameters: limit and offset.\n\n**Paginated request**\n\nRequests against paginated endpoints accept two query string arguments:\n\n* *limit*, a positive integer lower or equal to 100 to select the number of items to display.\n* *offset*, an integer to indicate the position to start at.\n\nPaginated endpoints usually also accept filters to search and sort results.\nThese filters are documented along with each endpoint documentation.\n" } ], "x-tagGroups": [ { "name": "Introduction", "tags": [ "intro" ] }, { "name": "API", "tags": [ "Profile", "Sessions", "Users", "organization", "OrganizationMembers", "OrganizationInvitations", "OrganizationConfirmations", "Subscriptions", "Coupons", "Credentials", "Secrets", "activity", "Apps", "Services", "Deployments", "Archives", "RegionalDeployments", "Instances", "Domains", "PersistentVolumes", "Snapshots", "Compose", "Repositories", "Logs", "Metrics", "Catalog", "CatalogRegions", "CatalogInstances", "Usages", "Summary", "DockerHelper" ] } ], "paths": { "/v1/git/branches": { "get": { "summary": "List Branches", "operationId": "ListBranches", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/kgitproxy.ListBranchesReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "repository_id", "description": "(Optional) Filter on one repository.", "in": "query", "required": false, "type": "string" }, { "name": "name", "description": "(Optional) Filter on branch name using a fuzzy search.\nRepository filter is required to enable this filter.", "in": "query", "required": false, "type": "string" }, { "name": "limit", "description": "(Optional) The number of items to return.", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return.", "in": "query", "required": false, "type": "string" } ], "tags": [ "Repositories" ] } }, "/v1/git/repositories": { "get": { "summary": "List Repositories", "operationId": "ListRepositories", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/kgitproxy.ListRepositoriesReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "name", "description": "(Optional) Filter on repository name using a fuzzy search.", "in": "query", "required": false, "type": "string" }, { "name": "name_search_op", "description": "(Optional) Define search operation for repository name. Accept either \"fuzzy\" or \"equality\", use \"fuzzy\" by default.", "in": "query", "required": false, "type": "string" }, { "name": "limit", "description": "(Optional) The number of items to return.", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return.", "in": "query", "required": false, "type": "string" } ], "tags": [ "Repositories" ] } }, "/v1/git/sync/organization/{organization_id}": { "post": { "summary": "Resync Organization", "operationId": "ResyncOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/kgitproxy.ResyncOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "organization_id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Repositories" ] } }, "/v1/users/{id}": { "delete": { "summary": "Delete user", "operationId": "DeleteUser", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteUserReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the user", "in": "path", "required": true, "type": "string" } ], "tags": [ "Users" ] } }, "/v2/users/{id}": { "delete": { "summary": "V2 Delete user", "operationId": "DeleteUserV2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteUserReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the user", "in": "path", "required": true, "type": "string" } ], "tags": [ "Users" ] } }, "/v1/account/activities": { "get": { "operationId": "GetAccountActivities", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ActivityList" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "type": "string" }, { "name": "offset", "in": "query", "required": false, "type": "string" } ], "tags": [ "activity" ] } }, "/v1/account/idenfy": { "get": { "summary": "Begin a session with iDenfy, emit an authToken", "operationId": "GetIdenfyToken", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetIdenfyTokenReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "Profile" ] }, "post": { "summary": "ClearIdenfyVerificationResult marks the current result for idenfy as\nsuperseded", "operationId": "ClearIdenfyVerificationResult", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ClearIdenfyVerificationResultReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ClearIdenfyVerificationResultRequest" } } ], "tags": [ "Profile" ] } }, "/v1/account/invite": { "post": { "operationId": "CreateInvite", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/Empty" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InviteUserRequest" } } ], "tags": [ "invite" ] } }, "/v1/account/login_method": { "get": { "summary": "Get the login method for an email address", "operationId": "LoginMethod", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginMethodReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "email", "in": "query", "required": false, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/account/oauth": { "get": { "summary": "Get OAuth Providers", "operationId": "GetOAuthOptions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetOAuthOptionsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "action", "description": "Which authentication flow is being initiated", "in": "query", "required": false, "type": "string", "enum": [ "signin", "signup", "register" ], "default": "signin" }, { "name": "metadata", "description": "A small (limited to 400 characters) string of arbitrary metadata which will\nbe encoded in the state", "in": "query", "required": false, "type": "string" } ], "tags": [ "Profile" ] }, "post": { "summary": "Authenticate using OAuth", "operationId": "OAuthCallback", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/OAuthCallbackReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/OAuthCallbackRequest" } }, { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/account/organization": { "get": { "summary": "Get Current Organization", "operationId": "GetCurrentOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "Profile" ] } }, "/v1/account/organization_invitations": { "get": { "summary": "List User Organization Invitations", "operationId": "ListUserOrganizationInvitations", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListUserOrganizationInvitationsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "statuses", "description": "(Optional) Filter on organization invitation statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "INVALID", "PENDING", "ACCEPTED", "REFUSED", "EXPIRED" ] }, "collectionFormat": "multi" } ], "tags": [ "Profile" ] } }, "/v1/account/organization_invitations/{id}": { "get": { "summary": "Get User Organization Invitation", "operationId": "GetUserOrganizationInvitation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetUserOrganizationInvitationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the organization invitation to get", "in": "path", "required": true, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/account/organization_invitations/{id}/accept": { "post": { "summary": "Accept Organization Invitation", "operationId": "AcceptOrganizationInvitation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/AcceptOrganizationInvitationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the organization invitation to accept", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object" } } ], "tags": [ "Profile" ] } }, "/v1/account/organization_invitations/{id}/decline": { "post": { "summary": "Decline Organization Invitation", "operationId": "DeclineOrganizationInvitation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeclineOrganizationInvitationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the organization invitation to decline", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object" } } ], "tags": [ "Profile" ] } }, "/v1/account/organizations": { "get": { "summary": "List User Organizations", "description": "List all organizations that the current user is a member of.", "operationId": "ListUserOrganizations", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListUserOrganizationsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) Define pagination limit", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) Define pagination offset", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" }, { "name": "search", "description": "(Optional) Fuzzy case-insensitive search based on organization name or\norganization id", "in": "query", "required": false, "type": "string" }, { "name": "statuses", "description": "(Optional) Only return organizations which status match one in the list", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "WARNING", "LOCKED", "ACTIVE", "DEACTIVATING", "DEACTIVATED", "DELETING", "DELETED" ] }, "collectionFormat": "multi" } ], "tags": [ "Profile" ] } }, "/v1/account/profile": { "get": { "summary": "Get Current User", "operationId": "GetCurrentUser", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UserReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "Profile" ] }, "put": { "summary": "Update User", "operationId": "UpdateUser", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UserReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "user", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateUserRequest.UserUpdateBody" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Profile" ] }, "patch": { "summary": "Update User", "operationId": "UpdateUser2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UserReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "user", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateUserRequest.UserUpdateBody" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/account/resend_validation": { "post": { "summary": "Resend Email Verification", "operationId": "ResendEmailValidation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ResendEmailValidationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ResendEmailValidationRequest" } } ], "tags": [ "Profile" ] } }, "/v1/account/reset_password": { "post": { "summary": "Reset Password", "operationId": "ResetPassword", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ResetPasswordReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ResetPasswordRequest" } } ], "tags": [ "Profile" ] } }, "/v1/account/settings": { "get": { "operationId": "GetUserSettings", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetUserSettingsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "Profile" ] }, "patch": { "operationId": "UpdateUserSettings", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateUserSettingsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateUserSettingsRequest" } } ], "tags": [ "Profile" ] } }, "/v1/account/signup": { "post": { "summary": "Signup", "operationId": "Signup", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "description": "Create new account", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateAccountRequest" } }, { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/account/update_password": { "post": { "summary": "Update Password", "operationId": "UpdatePassword", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdatePasswordRequest" } }, { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/account/validate/{id}": { "post": { "summary": "Validate", "operationId": "Validate", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/billing/has_unpaid_invoices": { "get": { "summary": "Experimental: Has unpaid invoices", "description": "WARNING: Please don't use the following method.\nKoyeb doesn't guarantee backwards compatible breaking change and reserve\nthe right to completely drop it without notice. USE AT YOUR OWN RISK.", "operationId": "HasUnpaidInvoices", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/HasUnpaidInvoicesReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "billing" ] } }, "/v1/billing/manage": { "get": { "operationId": "Manage", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ManageReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "billing" ] } }, "/v1/billing/next_invoice": { "get": { "summary": "Experimental: Fetch next invoice", "description": "WARNING: Please don't use the following method.\nKoyeb doesn't guarantee backwards compatible breaking change and reserve\nthe right to completely drop it without notice. USE AT YOUR OWN RISK.", "operationId": "NextInvoice", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/NextInvoiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "billing" ] } }, "/v1/github/installation": { "get": { "summary": "Fetch Github Installation configuration", "operationId": "GetGithubInstallation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetGithubInstallationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "organization" ] }, "post": { "summary": "Start Github Installation", "operationId": "GithubInstallation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GithubInstallationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/GithubInstallationRequest" } } ], "tags": [ "organization" ] } }, "/v1/organizations": { "post": { "summary": "Create Organization", "operationId": "CreateOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateOrganizationRequest" } } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}": { "get": { "summary": "Get Organization", "operationId": "GetOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "organization" ] }, "delete": { "summary": "Delete an Organization", "operationId": "DeleteOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "organization" ] }, "put": { "summary": "Update Organization", "operationId": "UpdateOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "organization", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Organization" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "organization" ] }, "patch": { "summary": "Update Organization", "operationId": "UpdateOrganization2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "organization", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Organization" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}/access_token": { "post": { "summary": "CreateAccessToken", "description": "CreateAccessToken creates a short-lived access token in the scope of the\nspecified organization, provided the user making the request is part of\nsaid organization.\n\nIt's possible to specify a validity for the token, which defaults to 1h\nand must be no more than 24h. The format is `s`, where ``\nis a floating point in seconds (so `123.456789012s` means 123 seconds and\n456789012 nanoseconds). See:\nhttps://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration.html.", "operationId": "CreateAccessToken", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateAccessTokenReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "Organization id for ephemeral credential", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "validity": { "type": "string", "title": "Validity of the credential" } } } } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}/deactivate": { "post": { "summary": "Deactivate an Organization", "operationId": "DeactivateOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeactivateOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "skip_confirmation": { "type": "boolean", "description": "if set to true, skip_confirmation will directly start the deactivation\nprocess, without sending a confirmation email beforehand." } } } } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}/name": { "put": { "summary": "Update Organization Name", "operationId": "UpdateOrganizationName", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateOrganizationNameReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "name": { "type": "string" } } } } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}/plan": { "post": { "summary": "Update Organization plan", "operationId": "UpdateOrganizationPlan", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateOrganizationPlanReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "plan": { "$ref": "#/definitions/Plan" } } } } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}/reactivate": { "post": { "summary": "Reactivate an Organization", "operationId": "ReactivateOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ReactivateOrganizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object" } } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}/signup_qualification": { "post": { "summary": "Upsert Organization's signup qualification", "operationId": "UpsertSignupQualification", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpsertSignupQualificationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "signup_qualification": { "type": "object" } } } } ], "tags": [ "organization" ] } }, "/v1/organizations/{id}/switch": { "post": { "summary": "Switch Organization context", "operationId": "SwitchOrganization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object" } }, { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "organization" ] } }, "/v1/organizations/{organization_id}/budget": { "get": { "summary": "Get Budget", "operationId": "GetBudget", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetBudgetReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "organization_id", "in": "path", "required": true, "type": "string" } ], "tags": [ "organization" ] }, "delete": { "summary": "Delete Budget", "operationId": "DeleteBudget", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteBudgetReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "organization_id", "in": "path", "required": true, "type": "string" } ], "tags": [ "organization" ] }, "post": { "summary": "Create Budget", "operationId": "CreateBudget", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateBudgetReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "organization_id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "amount": { "type": "string", "format": "int64", "description": "In cents." } } } } ], "tags": [ "organization" ] }, "put": { "summary": "Update Budget", "operationId": "UpdateBudget", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateBudgetReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "organization_id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "amount": { "type": "string", "format": "int64", "description": "In cents." } } } } ], "tags": [ "organization" ] } }, "/v1/sso/canny": { "post": { "operationId": "CannyAuth", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CannyAuthReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CannyAuthRequest" } } ], "tags": [ "sso" ] } }, "/v1/sso/discourse": { "post": { "operationId": "DiscourseAuth", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DiscourseAuthReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/DiscourseAuthRequest" } } ], "tags": [ "sso" ] } }, "/v1/unscope_organization_token": { "post": { "summary": "Unscope Organization Token", "description": "UnscopeOrganizationToken removes the organization scope from a token. This\nendpoint is useful when a user wants to remove an organization: by\nunscoping the token first, the user can then delete the organization\nwithout invalidating his token.", "operationId": "UnscopeOrganizationToken", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UnscopeOrganizationTokenRequest" } }, { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "organization" ] } }, "/v2/account/profile": { "put": { "summary": "Update User V2", "operationId": "UpdateUserV2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UserReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "user", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateUserRequest.UserUpdateBody" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Profile" ] }, "patch": { "summary": "Update User V2", "operationId": "UpdateUserV22", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UserReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "user", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateUserRequest.UserUpdateBody" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Profile" ] } }, "/v1/organizations/{organization_id}/summary": { "get": { "summary": "Get organization usage summary", "operationId": "GetOrganizationSummary", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetOrganizationSummaryReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "organization_id", "description": "Organization ID", "in": "path", "required": true, "type": "string" } ], "tags": [ "Summary" ] } }, "/v1/credentials": { "get": { "summary": "List credentials", "operationId": "ListCredentials", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListCredentialsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "type", "description": "(Optional) A filter for type", "in": "query", "required": false, "type": "string", "enum": [ "INVALID", "USER", "ORGANIZATION" ], "default": "INVALID" }, { "name": "name", "description": "(Optional) A filter for name", "in": "query", "required": false, "type": "string" }, { "name": "organization_id", "description": "(Optional) Filter for an organization", "in": "query", "required": false, "type": "string" }, { "name": "user_id", "description": "(Optional) Filter for an user", "in": "query", "required": false, "type": "string" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" } ], "tags": [ "Credentials" ] }, "post": { "summary": "Create credential", "operationId": "CreateCredential", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateCredentialReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "credential", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateCredential" } } ], "tags": [ "Credentials" ] } }, "/v1/credentials/{id}": { "get": { "summary": "Get credential", "operationId": "GetCredential", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetCredentialReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Credentials" ] }, "delete": { "summary": "Delete credential", "operationId": "DeleteCredential", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteCredentialReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Credentials" ] }, "put": { "summary": "Update credential", "operationId": "UpdateCredential", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateCredentialReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "credential", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Credential" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Credentials" ] }, "patch": { "summary": "Update credential", "operationId": "UpdateCredential2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateCredentialReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "credential", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Credential" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Credentials" ] } }, "/v1/account/login": { "post": { "summary": "Login user", "operationId": "Login", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/LoginRequest" } }, { "name": "seon-fp", "description": "Seon Fingerprint", "in": "header", "required": false, "type": "string" } ], "tags": [ "Sessions" ] } }, "/v1/account/logout": { "delete": { "summary": "Logout user", "operationId": "Logout", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LogoutReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "Sessions" ] } }, "/v1/account/refresh": { "put": { "summary": "Refresh token", "operationId": "RefreshToken", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "Sessions" ] } }, "/v1/account/session": { "post": { "summary": "New session", "description": "Creates a new session without an organization for current user.\nNOTE: If you want a session linked to another organization, please use \"Switch organization\".", "operationId": "NewSession", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/LoginReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "Sessions" ] } }, "/v1/organization_confirmations/{id}": { "post": { "summary": "Confirm organization action", "operationId": "ConfirmOrganizationAction", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ConfirmOrganizationActionReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "OrganizationConfirmations" ] } }, "/v1/intercom/profile": { "get": { "summary": "Get intercom profile", "operationId": "GetIntercomProfile", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetIntercomProfileReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "Intercom" ] } }, "/v1/coupons": { "post": { "summary": "Redeem Coupon", "description": "This API allows to redeem a coupon. Pass the code you received in the body.", "operationId": "RedeemCoupon", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RedeemCouponReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/RedeemCouponRequest" } } ], "tags": [ "Coupons" ] } }, "/v1/projects": { "get": { "summary": "List projects", "operationId": "ListProjects", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListProjectsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" } ], "tags": [ "Projects" ] }, "post": { "summary": "Create project", "operationId": "CreateProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateProjectReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "project", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateProject" } } ], "tags": [ "Projects" ] } }, "/v1/projects/{id}": { "get": { "summary": "Get project", "operationId": "GetProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetProjectReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Projects" ] }, "delete": { "summary": "Delete project", "operationId": "DeleteProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteProjectReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Projects" ] }, "put": { "summary": "Update project", "operationId": "UpdateProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateProjectReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "project", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Project" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Projects" ] }, "patch": { "summary": "Update project", "operationId": "UpdateProject2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateProjectReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "project", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Project" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Projects" ] } }, "/v1/organization_members": { "get": { "summary": "List organization members", "operationId": "ListOrganizationMembers", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListOrganizationMembersReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "organization_id", "description": "(Optional) Filter for an organization", "in": "query", "required": false, "type": "string" }, { "name": "user_id", "description": "(Optional) Filter for an user", "in": "query", "required": false, "type": "string" }, { "name": "organization_statuses", "description": "(Optional) Filter for organization statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "WARNING", "LOCKED", "ACTIVE", "DEACTIVATING", "DEACTIVATED", "DELETING", "DELETED" ] }, "collectionFormat": "multi" } ], "tags": [ "OrganizationMembers" ] } }, "/v1/organization_members/{id}": { "delete": { "summary": "Remove an organization member", "operationId": "RemoveOrganizationMember", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RemoveOrganizationMemberReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "OrganizationMembers" ] } }, "/v1/payment_methods": { "get": { "summary": "List payment methods", "operationId": "ListPaymentMethods", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListPaymentMethodsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "statuses", "description": "(Optional) Filter on payment method statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "INVALID", "CREATED", "AUTHORIZED", "DECLINED", "CANCELED", "EXPIRED", "UNCHECKED" ] }, "collectionFormat": "multi" } ], "tags": [ "PaymentMethods" ] }, "post": { "summary": "Create payment authorization", "operationId": "CreatePaymentAuthorization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreatePaymentAuthorizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreatePaymentAuthorizationRequest" } } ], "tags": [ "PaymentMethods" ] } }, "/v1/payment_methods/{id}": { "get": { "summary": "Get payment method", "operationId": "GetPaymentMethod", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetPaymentMethodReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "PaymentMethods" ] }, "delete": { "summary": "Delete payment method", "operationId": "DeletePaymentMethod", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeletePaymentMethodReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "PaymentMethods" ] } }, "/v1/payment_methods/{id}/confirm": { "post": { "summary": "Confirm payment authorization", "operationId": "ConfirmPaymentAuthorization", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ConfirmPaymentAuthorizationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object" } } ], "tags": [ "PaymentMethods" ] } }, "/v1/organizations/{organization_id}/quotas": { "get": { "operationId": "GetQuotas", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetQuotasReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "organization_id", "in": "path", "required": true, "type": "string" } ], "tags": [ "OrganizationQuotas" ] } }, "/v1/organization_invitations": { "get": { "summary": "List Organization Invitations", "operationId": "ListOrganizationInvitations", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListOrganizationInvitationsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "statuses", "description": "(Optional) Filter on organization invitation statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "INVALID", "PENDING", "ACCEPTED", "REFUSED", "EXPIRED" ] }, "collectionFormat": "multi" }, { "name": "user_id", "description": "(Optional) Filter on invitee ID. Will match both invitations sent to\nthat user_id and invitations sent to the email of that user_id.\nThe only valid value is the requester's user_id", "in": "query", "required": false, "type": "string" } ], "tags": [ "OrganizationInvitations" ] }, "post": { "summary": "Create Organization Invitation", "operationId": "CreateOrganizationInvitation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateOrganizationInvitationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateOrganizationInvitationRequest" } } ], "tags": [ "OrganizationInvitations" ] } }, "/v1/organization_invitations/{id}": { "get": { "summary": "Get Organization Invitation", "operationId": "GetOrganizationInvitation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetOrganizationInvitationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the invitation to get", "in": "path", "required": true, "type": "string" } ], "tags": [ "OrganizationInvitations" ] }, "delete": { "summary": "Delete Organization Invitation", "operationId": "DeleteOrganizationInvitation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteOrganizationInvitationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the organization invitation to delete", "in": "path", "required": true, "type": "string" } ], "tags": [ "OrganizationInvitations" ] } }, "/v1/organization_invitations/{id}/resend": { "post": { "summary": "Resend Organization Invitation", "operationId": "ResendOrganizationInvitation", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ResendOrganizationInvitationReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the organization invitation to resend", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object" } } ], "tags": [ "OrganizationInvitations" ] } }, "/v1/subscriptions/{id}": { "get": { "summary": "Get Subscription", "operationId": "GetSubscription", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetSubscriptionReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the instance", "in": "path", "required": true, "type": "string" } ], "tags": [ "Subscriptions" ] } }, "/v1/streams/logs/query": { "get": { "summary": "Query logs", "operationId": "QueryLogs", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/QueryLogsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "type", "description": "Type of logs to retrieve, either \"build\" or \"runtime\". Defaults to \"runtime\".", "in": "query", "required": false, "type": "string" }, { "name": "app_id", "description": "(Optional) Filter on the provided app_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "service_id", "description": "(Optional) Filter on the provided service_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "deployment_id", "description": "(Optional) Filter on the provided deployment_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "regional_deployment_id", "description": "(Optional) Filter on the provided regional_deployment_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "instance_id", "description": "Deprecated, prefer using instance_ids instead.", "in": "query", "required": false, "type": "string" }, { "name": "instance_ids", "description": "(Optional) Filter on the provided instance_ids. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "stream", "description": "Deprecated, prefer using streams instead.", "in": "query", "required": false, "type": "string" }, { "name": "streams", "description": "(Optional) Filter on stream: either \"stdout\", \"stderr\" or \"koyeb\" (for system logs).", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "start", "description": "(Optional) Must always be before `end`. Defaults to 15 minutes ago.", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "end", "description": "(Optional) Must always be after `start`. Defaults to now.", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "order", "description": "(Optional) `asc` or `desc`. Defaults to `desc`.", "in": "query", "required": false, "type": "string" }, { "name": "limit", "description": "(Optional) Defaults to 100. Maximum of 1000.", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "regex", "description": "(Optional) Apply a regex to filter logs. Can't be used with `text`.", "in": "query", "required": false, "type": "string" }, { "name": "text", "description": "(Optional) Looks for this string in logs. Can't be used with `regex`.", "in": "query", "required": false, "type": "string" }, { "name": "regions", "description": "(Optional) Filter on the provided regions (e.g. [\"fra\", \"was\"]).", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" } ], "tags": [ "Logs" ] } }, "/v1/streams/logs/tail": { "get": { "summary": "Tails logs", "operationId": "TailLogs", "responses": { "200": { "description": "A successful response.(streaming responses)", "schema": { "type": "object", "properties": { "result": { "$ref": "#/definitions/LogEntry" }, "error": { "$ref": "#/definitions/google.rpc.Status" } }, "title": "Stream result of LogEntry" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "type", "description": "Type of logs to retrieve, either \"build\" or \"runtime\". Defaults to \"runtime\".", "in": "query", "required": false, "type": "string" }, { "name": "app_id", "description": "(Optional) Filter on the provided app_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "service_id", "description": "(Optional) Filter on the provided service_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "deployment_id", "description": "(Optional) Filter on the provided deployment_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "regional_deployment_id", "description": "(Optional) Filter on the provided regional_deployment_id. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "string" }, { "name": "instance_id", "description": "Deprecated, prefer using instance_ids instead.", "in": "query", "required": false, "type": "string" }, { "name": "instance_ids", "description": "(Optional) Filter on the provided instance_ids. At least one of app_id, service_id, deployment_id, regional_deployment_id or instance_ids must be set.", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "stream", "description": "Deprecated, prefer using streams instead.", "in": "query", "required": false, "type": "string" }, { "name": "streams", "description": "(Optional) Filter on stream: either \"stdout\", \"stderr\" or \"koyeb\" (for system logs).", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "start", "description": "(Optional) Defaults to 24 hours ago.", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "limit", "description": "(Optional) Defaults to 1000. Maximum of 1000.", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "regex", "description": "(Optional) Apply a regex to filter logs. Can't be used with `text`.", "in": "query", "required": false, "type": "string" }, { "name": "text", "description": "(Optional) Looks for this string in logs. Can't be used with `regex`.", "in": "query", "required": false, "type": "string" }, { "name": "regions", "description": "(Optional) Filter on the provided regions (e.g. [\"fra\", \"was\"]).", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" } ], "tags": [ "Logs" ] } }, "/v1/streams/metrics": { "get": { "summary": "Get Metrics", "operationId": "GetMetrics", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetMetricsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "service_id", "description": "ID of the service to query instances metrics for. Ignored if instance_id is set.", "in": "query", "required": false, "type": "string" }, { "name": "instance_id", "description": "ID of the instance to query metrics for.", "in": "query", "required": false, "type": "string" }, { "name": "name", "description": "Metric to query.", "in": "query", "required": false, "type": "string", "enum": [ "UNKNOWN", "CPU_TOTAL_PERCENT", "MEM_RSS", "HTTP_THROUGHPUT", "HTTP_RESPONSE_TIME_50P", "HTTP_RESPONSE_TIME_90P", "HTTP_RESPONSE_TIME_99P", "HTTP_RESPONSE_TIME_MAX", "PUBLIC_DATA_TRANSFER_IN", "PUBLIC_DATA_TRANSFER_OUT" ], "default": "UNKNOWN" }, { "name": "start", "description": "(Optional) Defaults to an hour prior to end.", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "end", "description": "(Optional) Defaults to now.", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "step", "description": "(Optional) Must be a valid duration in hours (h) or minutes (m). Defaulst to 5m.", "in": "query", "required": false, "type": "string" } ], "tags": [ "Metrics" ] } }, "/v1/streams/instances/exec": { "get": { "summary": "Exec Command", "description": "This endpoint opens a websocket. Once open, all frames going through the websocket should be formatted in JSON. Input frames should match the format specified below. Output frames will match the response schema.", "operationId": "ExecCommand", "responses": { "200": { "description": "A successful response.(streaming responses)", "schema": { "type": "object", "properties": { "result": { "$ref": "#/definitions/ExecCommandReply" }, "error": { "$ref": "#/definitions/google.rpc.Status" } }, "title": "Stream result of ExecCommandReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "ID of the resource to exec on.", "in": "query", "required": false, "type": "string" }, { "name": "body.command", "description": "Command to exec. Mandatory in the first frame sent", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "body.tty_size.height", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "body.tty_size.width", "in": "query", "required": false, "type": "integer", "format": "int32" }, { "name": "body.stdin.data", "description": "Data is base64 encoded", "in": "query", "required": false, "type": "string", "format": "byte" }, { "name": "body.stdin.close", "description": "Indicate last data frame", "in": "query", "required": false, "type": "boolean" }, { "name": "body.disableTty", "description": "Disable TTY. It's enough to specify it in the first frame", "in": "query", "required": false, "type": "boolean" }, { "name": "id_type", "description": "When specified, it is used to determine if the kind of resource the id refers to. If missing, defaults to the instance id.", "in": "query", "required": false, "type": "string", "enum": [ "INVALID", "INSTANCE_ID", "SERVICE_ID" ], "default": "INVALID" } ], "tags": [ "Instances" ] } }, "/v1/activities": { "get": { "summary": "List Activities", "operationId": "ListActivities", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ActivityList" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "type": "string" }, { "name": "offset", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) Filter on object type", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" } ], "tags": [ "activity" ] } }, "/v1/notifications": { "get": { "summary": "List Notifications", "operationId": "ListNotifications", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/NotificationList" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "in": "query", "required": false, "type": "string" }, { "name": "offset", "in": "query", "required": false, "type": "string" }, { "name": "mark_read", "in": "query", "required": false, "type": "string" }, { "name": "mark_seen", "in": "query", "required": false, "type": "string" }, { "name": "unread", "in": "query", "required": false, "type": "string" }, { "name": "unseen", "in": "query", "required": false, "type": "string" } ], "tags": [ "activity" ] } }, "/v1/regional_deployment_events": { "get": { "summary": "List Regional Deployment events", "operationId": "ListRegionalDeploymentEvents", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListRegionalDeploymentEventsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "regional_deployment_id", "description": "(Optional) Filter on regional deployment id", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) Filter on regional deployment event types", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" } ], "tags": [ "RegionalDeployments" ] } }, "/v1/regional_deployments": { "get": { "summary": "List Regional Deployments", "description": "Experimental: use at your own risk", "operationId": "ListRegionalDeployments", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListRegionalDeploymentsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "deployment_id", "description": "(Optional) Filter on deployment id", "in": "query", "required": false, "type": "string" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" } ], "tags": [ "RegionalDeployments" ] } }, "/v1/regional_deployments/{id}": { "get": { "summary": "Get Regional Deployment", "description": "Experimental: use at your own risk", "operationId": "GetRegionalDeployment", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetRegionalDeploymentReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the regional deployment", "in": "path", "required": true, "type": "string" } ], "tags": [ "RegionalDeployments" ] } }, "/v1/snapshots": { "get": { "summary": "List all Snapshots", "operationId": "ListSnapshots", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListSnapshotsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "organization_id", "description": "(Optional) Filter by organization_id", "in": "query", "required": false, "type": "string" }, { "name": "statuses", "description": "(Optional) Filter by status\n\n - SNAPSHOT_STATUS_INVALID: zero value, invalid\n - SNAPSHOT_STATUS_CREATING: the snapshot is being created\n - SNAPSHOT_STATUS_AVAILABLE: the snapshot is complete and available\n - SNAPSHOT_STATUS_MIGRATING: the snapshot is being migrated\n - SNAPSHOT_STATUS_DELETING: the snapshot is being deleted\n - SNAPSHOT_STATUS_DELETED: the snapshot is deleted", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "SNAPSHOT_STATUS_INVALID", "SNAPSHOT_STATUS_CREATING", "SNAPSHOT_STATUS_AVAILABLE", "SNAPSHOT_STATUS_MIGRATING", "SNAPSHOT_STATUS_DELETING", "SNAPSHOT_STATUS_DELETED" ] }, "collectionFormat": "multi" }, { "name": "region", "description": "(Optional) A filter for the region", "in": "query", "required": false, "type": "string" } ], "tags": [ "Snapshots" ] }, "post": { "summary": "Create a Snapshot", "operationId": "CreateSnapshot", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateSnapshotReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateSnapshotRequest" } } ], "tags": [ "Snapshots" ] } }, "/v1/snapshots/{id}": { "get": { "summary": "Get a Snapshot", "operationId": "GetSnapshot", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetSnapshotReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Snapshots" ] }, "delete": { "summary": "Delete a Snapshot", "operationId": "DeleteSnapshot", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteSnapshotReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Snapshots" ] }, "post": { "summary": "Update a Snapshot", "operationId": "UpdateSnapshot", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateSnapshotReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the snapshot", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "name": { "type": "string", "title": "Change the name of the snapshot" } } } } ], "tags": [ "Snapshots" ] } }, "/v1/service_events": { "get": { "summary": "List Service events", "operationId": "ListServiceEvents", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListServiceEventsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "service_id", "description": "(Optional) Filter on service id", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) Filter on service event types", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" } ], "tags": [ "Services" ] } }, "/v1/services": { "get": { "summary": "List Services", "operationId": "ListServices", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListServicesReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "app_id", "description": "(Optional) The id of the app", "in": "query", "required": false, "type": "string" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "name", "description": "(Optional) A filter for name", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) Filter on service types", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "INVALID_TYPE", "WEB", "WORKER", "DATABASE", "SANDBOX" ] }, "collectionFormat": "multi" }, { "name": "statuses", "description": "(Optional) Filter on service statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "STARTING", "HEALTHY", "DEGRADED", "UNHEALTHY", "DELETING", "DELETED", "PAUSING", "PAUSED", "RESUMING" ] }, "collectionFormat": "multi" }, { "name": "regions", "description": "(Optional) Filter on regions", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "project_id", "description": "(Optional) A filter for the project ID", "in": "query", "required": false, "type": "string" } ], "tags": [ "Services" ] }, "post": { "summary": "Create Service", "operationId": "CreateService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateServiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "service", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateService" } }, { "name": "dry_run", "description": "If set only run validation", "in": "query", "required": false, "type": "boolean" } ], "tags": [ "Services" ] } }, "/v1/services-autocomplete": { "post": { "summary": "Autocomplete definition", "description": "Generate autocomplete definition for a service", "operationId": "Autocomplete", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/AutocompleteReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/AutocompleteRequest" } } ], "tags": [ "Services" ] } }, "/v1/services/{id}": { "get": { "summary": "Get Service", "operationId": "GetService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetServiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the Service", "in": "path", "required": true, "type": "string" } ], "tags": [ "Services" ] }, "delete": { "summary": "Delete Service", "description": "Service deletion is allowed for all status.", "operationId": "DeleteService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteServiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the entity to delete", "in": "path", "required": true, "type": "string" } ], "tags": [ "Services" ] }, "put": { "summary": "Update Service", "operationId": "UpdateService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateServiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the entity to update", "in": "path", "required": true, "type": "string" }, { "name": "service", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateService" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" }, { "name": "dry_run", "description": "If set, run validation and check that the service exists", "in": "query", "required": false, "type": "boolean" } ], "tags": [ "Services" ] }, "patch": { "summary": "Update Service", "operationId": "UpdateService2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateServiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the entity to update", "in": "path", "required": true, "type": "string" }, { "name": "service", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateService" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" }, { "name": "dry_run", "description": "If set, run validation and check that the service exists", "in": "query", "required": false, "type": "boolean" } ], "tags": [ "Services" ] } }, "/v1/services/{id}/pause": { "post": { "summary": "Pause Service", "description": "Service pause action is allowed for the following status:\n - starting\n - healthy\n - degraded\n - unhealthy\n - resuming", "operationId": "PauseService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PauseServiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the service to pause.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Services" ] } }, "/v1/services/{id}/redeploy": { "post": { "summary": "ReDeploy Service", "operationId": "ReDeploy", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RedeployReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "info", "in": "body", "required": true, "schema": { "$ref": "#/definitions/RedeployRequest.Info" } } ], "tags": [ "Services" ] } }, "/v1/services/{id}/resume": { "post": { "summary": "Resume Service", "description": "Service resume action is allowed for the following status:\n - paused", "operationId": "ResumeService", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ResumeServiceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the service to pause.", "in": "path", "required": true, "type": "string" }, { "name": "skip_build", "description": "If set to true, the build stage will be skipped and the image coming from the last successful build step will be used instead.\nThe call fails if no previous successful builds happened.", "in": "query", "required": false, "type": "boolean" }, { "name": "use_cache", "in": "query", "required": false, "type": "boolean" } ], "tags": [ "Services" ] } }, "/v1/services/{id}/scale": { "get": { "summary": "Get Service Scaling", "description": "Returns the current scaling configuration for a service", "operationId": "GetServiceScaling", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetServiceScalingReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the service", "in": "path", "required": true, "type": "string" } ], "tags": [ "Services" ] }, "delete": { "summary": "Delete Service Scaling", "description": "Deletes the manual scaling configuration for a service, reverting to \nthe scaling defined in the deployment definition.", "operationId": "DeleteServiceScaling", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteServiceScalingReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the service", "in": "path", "required": true, "type": "string" } ], "tags": [ "Services" ] }, "put": { "summary": "Update Service Scaling", "description": "Stores or updates the scaling configuration for a service to use manual scaling", "operationId": "UpdateServiceScaling", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateServiceScalingReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the service to scale", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "scalings": { "type": "array", "items": { "$ref": "#/definitions/ManualServiceScaling" }, "title": "The new scaling configuration" } } } } ], "tags": [ "Services" ] } }, "/v1/deployment/{id}/scaling": { "get": { "summary": "Get Deployment Scaling", "operationId": "GetDeploymentScaling", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetDeploymentScalingReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "region", "description": "(Optional) Filter on region", "in": "query", "required": false, "type": "string" }, { "name": "replica_index", "description": "(Optional) Filter on replica_index", "in": "query", "required": false, "type": "integer", "format": "int64" } ], "tags": [ "Deployments" ] } }, "/v1/deployment_events": { "get": { "summary": "List Deployment events", "operationId": "ListDeploymentEvents", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListDeploymentEventsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "deployment_id", "description": "(Optional) Filter on deployment id", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) Filter on deployment event types", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" } ], "tags": [ "Deployments" ] } }, "/v1/deployments": { "get": { "summary": "List Deployments", "operationId": "ListDeployments", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListDeploymentsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "app_id", "description": "(Optional) Filter on application id", "in": "query", "required": false, "type": "string" }, { "name": "service_id", "description": "(Optional) Filter on service id", "in": "query", "required": false, "type": "string" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "statuses", "description": "(Optional) Filter on statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "PENDING", "PROVISIONING", "SCHEDULED", "CANCELING", "CANCELED", "ALLOCATING", "STARTING", "HEALTHY", "DEGRADED", "UNHEALTHY", "STOPPING", "STOPPED", "ERRORING", "ERROR", "STASHED", "SLEEPING" ] }, "collectionFormat": "multi" } ], "tags": [ "Deployments" ] } }, "/v1/deployments/{id}": { "get": { "summary": "Get Deployment", "operationId": "GetDeployment", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetDeploymentReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the deployment", "in": "path", "required": true, "type": "string" } ], "tags": [ "Deployments" ] } }, "/v1/deployments/{id}/cancel": { "post": { "summary": "Cancel Deployment", "description": "Deployment cancellation is allowed for the following status:\n - pending\n - provisioning\n - scheduled", "operationId": "CancelDeployment", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CancelDeploymentReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the deployment to cancel.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Deployments" ] } }, "/v1/provisioning/{deployment_id}/status/{stage}/{attempt}": { "post": { "summary": "Create an attempt for a stage", "operationId": "CreateStageAttempt", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateStageAttemptReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "deployment_id", "in": "path", "required": true, "type": "string" }, { "name": "stage", "in": "path", "required": true, "type": "string" }, { "name": "attempt", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "secret": { "type": "string" }, "status": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.Status" }, "started_at": { "type": "string", "format": "date-time" }, "messages": { "type": "array", "items": { "type": "string" } }, "steps": { "type": "array", "items": { "type": "string" } } } } } ], "tags": [ "Provisioning" ] }, "patch": { "summary": "Declare stage progress", "operationId": "DeclareStageProgress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeclareStageProgressReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "deployment_id", "in": "path", "required": true, "type": "string" }, { "name": "stage", "in": "path", "required": true, "type": "string" }, { "name": "attempt", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "secret": { "type": "string" }, "status": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.Status" }, "finished_at": { "type": "string", "format": "date-time" }, "messages": { "type": "array", "items": { "type": "string" } }, "image_pushed": { "type": "boolean" }, "internal_failure": { "type": "boolean" }, "retryable_failure": { "type": "boolean" } } } } ], "tags": [ "Provisioning" ] } }, "/v1/provisioning/{deployment_id}/status/{stage}/{attempt}/{step}": { "patch": { "summary": "Declare step progress", "operationId": "DeclareStepProgress", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeclareStepProgressReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "deployment_id", "in": "path", "required": true, "type": "string" }, { "name": "stage", "in": "path", "required": true, "type": "string" }, { "name": "attempt", "in": "path", "required": true, "type": "string" }, { "name": "step", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "secret": { "type": "string" }, "status": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.Status" }, "started_at": { "type": "string", "format": "date-time" }, "finished_at": { "type": "string", "format": "date-time" }, "messages": { "type": "array", "items": { "type": "string" } } } } } ], "tags": [ "Provisioning" ] } }, "/v1/docker-helper/verify": { "get": { "summary": "Verify Docker Image", "description": "Verify if a docker image is reachable", "operationId": "VerifyDockerImage", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/VerifyDockerImageReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "image", "description": "The full image uri to be verified", "in": "query", "required": false, "type": "string" }, { "name": "secret_id", "description": "(Optional) the id of the secret to use to authenticate to the registry", "in": "query", "required": false, "type": "string" } ], "tags": [ "DockerHelper" ] } }, "/v1/secrets": { "get": { "summary": "List Secrets", "operationId": "ListSecrets", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListSecretsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "name", "in": "query", "required": false, "type": "string" }, { "name": "limit", "in": "query", "required": false, "type": "string" }, { "name": "offset", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "Filter by secret types", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "SIMPLE", "REGISTRY", "MANAGED" ] }, "collectionFormat": "multi" }, { "name": "project_id", "description": "(Optional) A filter for the project ID", "in": "query", "required": false, "type": "string" } ], "tags": [ "Secrets" ] }, "post": { "summary": "Create Secret", "operationId": "CreateSecret", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateSecretReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "secret", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateSecret" } } ], "tags": [ "Secrets" ] } }, "/v1/secrets/{id}": { "get": { "summary": "Get Secret", "operationId": "GetSecret", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetSecretReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Secrets" ] }, "delete": { "summary": "Delete Secret", "operationId": "DeleteSecret", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteSecretReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Secrets" ] }, "put": { "summary": "Update Secret", "operationId": "UpdateSecret", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateSecretReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "secret", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Secret" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Secrets" ] }, "patch": { "summary": "Update Secret", "operationId": "UpdateSecret2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateSecretReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "secret", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Secret" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Secrets" ] } }, "/v1/secrets/{id}/reveal": { "post": { "summary": "Reveal Secret", "operationId": "RevealSecret", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RevealSecretReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object" } } ], "tags": [ "Secrets" ] } }, "/v1/domains": { "get": { "summary": "List Domains", "operationId": "ListDomains", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListDomainsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) A filter for types\n\n - AUTOASSIGNED: Domain like -.koyeb.app", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "AUTOASSIGNED", "CUSTOM" ] }, "collectionFormat": "multi" }, { "name": "statuses", "description": "(Optional) A filter for statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "PENDING", "ACTIVE", "ERROR", "DELETING", "DELETED" ] }, "collectionFormat": "multi" }, { "name": "app_ids", "description": "(Optional) A filter for apps", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "name", "description": "(Optional) A filter for name", "in": "query", "required": false, "type": "string" }, { "name": "project_id", "description": "(Optional) A filter for the project ID", "in": "query", "required": false, "type": "string" } ], "tags": [ "Domains" ] }, "post": { "summary": "Create Domain", "operationId": "CreateDomain", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateDomainReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "domain", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateDomain" } } ], "tags": [ "Domains" ] } }, "/v1/domains/{id}": { "get": { "summary": "Get Domain", "operationId": "GetDomain", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetDomainReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Domains" ] }, "delete": { "summary": "Delete Domain", "operationId": "DeleteDomain", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteDomainReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Domains" ] }, "patch": { "summary": "Update Domain", "operationId": "UpdateDomain", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateDomainReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "domain", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateDomain" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" }, { "name": "dry_run", "description": "If set, run validation and check that the domain is available.", "in": "query", "required": false, "type": "boolean" } ], "tags": [ "Domains" ] } }, "/v1/domains/{id}/refresh": { "post": { "summary": "Refresh Domain Status", "operationId": "RefreshDomainStatus", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/RefreshDomainStatusReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "Domains" ] } }, "/v1/app_events": { "get": { "summary": "List App events", "operationId": "ListAppEvents", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListAppEventsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "app_id", "description": "(Optional) Filter on app id", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) Filter on app event types", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" } ], "tags": [ "Apps" ] } }, "/v1/apps": { "get": { "summary": "List App", "operationId": "ListApps", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListAppsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "name", "description": "(Optional) A filter for name", "in": "query", "required": false, "type": "string" }, { "name": "project_id", "description": "(Optional) A filter for the project ID", "in": "query", "required": false, "type": "string" } ], "tags": [ "Apps" ] }, "post": { "summary": "Create App", "operationId": "CreateApp", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateAppReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "app", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateApp" } } ], "tags": [ "Apps" ] } }, "/v1/apps/{id}": { "get": { "summary": "Get App", "operationId": "GetApp", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetAppReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the App", "in": "path", "required": true, "type": "string" } ], "tags": [ "Apps" ] }, "delete": { "summary": "Delete App", "description": "App deletion is allowed for all status.", "operationId": "DeleteApp", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeleteAppReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the App to delete", "in": "path", "required": true, "type": "string" } ], "tags": [ "Apps" ] }, "put": { "summary": "Update App", "operationId": "UpdateApp", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateAppReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the app to update.", "in": "path", "required": true, "type": "string" }, { "name": "app", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateApp" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Apps" ] }, "patch": { "summary": "Update App", "operationId": "UpdateApp2", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdateAppReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the app to update.", "in": "path", "required": true, "type": "string" }, { "name": "app", "in": "body", "required": true, "schema": { "$ref": "#/definitions/UpdateApp" } }, { "name": "update_mask", "in": "query", "required": false, "type": "string" } ], "tags": [ "Apps" ] } }, "/v1/apps/{id}/pause": { "post": { "summary": "Pause App", "description": "App pause action is allowed for the following status:\n - starting\n - healthy\n - degraded\n - unhealthy\n - resuming", "operationId": "PauseApp", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/PauseAppReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the app to pause.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Apps" ] } }, "/v1/apps/{id}/resume": { "post": { "summary": "Resume App", "description": "App resume action is allowed for the following status:\n - paused", "operationId": "ResumeApp", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ResumeAppReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the app to resume.", "in": "path", "required": true, "type": "string" } ], "tags": [ "Apps" ] } }, "/v1/volume_events": { "get": { "summary": "List Persistent Volume events", "operationId": "ListPersistentVolumeEvents", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListPersistentVolumeEventsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "persistent_volume_id", "description": "(Optional) Filter on persistent volume id", "in": "query", "required": false, "type": "string" }, { "name": "types", "description": "(Optional) Filter on persistent volume event types", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" } ], "tags": [ "PersistentVolumes" ] } }, "/v1/volumes": { "get": { "summary": "List all PersistentVolumes", "operationId": "ListPersistentVolumes", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListPersistentVolumesReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "service_id", "description": "(Optional) A filter for the service id", "in": "query", "required": false, "type": "string" }, { "name": "region", "description": "(Optional) A filter for the region", "in": "query", "required": false, "type": "string" }, { "name": "name", "description": "(Optional) A filter for the name", "in": "query", "required": false, "type": "string" }, { "name": "project_id", "description": "(Optional) A filter for the project ID", "in": "query", "required": false, "type": "string" } ], "tags": [ "PersistentVolumes" ] }, "post": { "summary": "Create a PersistentVolume", "operationId": "CreatePersistentVolume", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreatePersistentVolumeReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreatePersistentVolumeRequest" } } ], "tags": [ "PersistentVolumes" ] } }, "/v1/volumes/{id}": { "get": { "summary": "Get a PersistentVolume", "operationId": "GetPersistentVolume", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetPersistentVolumeReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "PersistentVolumes" ] }, "delete": { "summary": "Delete a PersistentVolume", "operationId": "DeletePersistentVolume", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/DeletePersistentVolumeReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" } ], "tags": [ "PersistentVolumes" ] }, "post": { "summary": "Update a PersistentVolume", "operationId": "UpdatePersistentVolume", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/UpdatePersistentVolumeReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "name": { "type": "string", "title": "(Optional) change the name of the volume" }, "max_size": { "type": "integer", "format": "int64", "title": "(Optional) increase the volume size (in Gigabyte / GB)" } } } } ], "tags": [ "PersistentVolumes" ] } }, "/v1/archives": { "post": { "summary": "Create Archive", "description": "Create a signed URL to upload an archive.", "operationId": "CreateArchive", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/CreateArchiveReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "archive", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateArchive" } } ], "tags": [ "Archives" ] } }, "/v1/instance_events": { "get": { "summary": "List Instance events", "operationId": "ListInstanceEvents", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListInstanceEventsReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "instance_ids", "description": "(Optional) Filter on list of instance id", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "types", "description": "(Optional) Filter on instance event types", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" } ], "tags": [ "Instances" ] } }, "/v1/instances": { "get": { "summary": "List Instances", "operationId": "ListInstances", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListInstancesReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "app_id", "description": "(Optional) Filter on application id", "in": "query", "required": false, "type": "string" }, { "name": "service_id", "description": "(Optional) Filter on service id", "in": "query", "required": false, "type": "string" }, { "name": "deployment_id", "description": "(Optional) Filter on deployment id", "in": "query", "required": false, "type": "string" }, { "name": "regional_deployment_id", "description": "(Optional) Filter on regional deployment id", "in": "query", "required": false, "type": "string" }, { "name": "allocation_id", "description": "(Optional) Filter on allocation id", "in": "query", "required": false, "type": "string" }, { "name": "replica_index", "description": "(Optional) Filter on replica index", "in": "query", "required": false, "type": "string" }, { "name": "statuses", "description": "(Optional) Filter on instance statuses", "in": "query", "required": false, "type": "array", "items": { "type": "string", "enum": [ "ALLOCATING", "STARTING", "HEALTHY", "UNHEALTHY", "STOPPING", "STOPPED", "ERROR", "SLEEPING" ] }, "collectionFormat": "multi" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" }, { "name": "starting_time", "description": "(Optional) The starting time of the period of running instance", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "ending_time", "description": "(Optional) The ending time of the period of running instance", "in": "query", "required": false, "type": "string", "format": "date-time" } ], "tags": [ "Instances" ] } }, "/v1/instances/{id}": { "get": { "summary": "Get Instance", "operationId": "GetInstance", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetInstanceReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The id of the instance", "in": "path", "required": true, "type": "string" } ], "tags": [ "Instances" ] } }, "/v1/quotas/capacity": { "post": { "summary": "DEPRECATED: Review Organization Capacity", "operationId": "ReviewOrganizationCapacity", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ReviewOrganizationCapacityReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ReviewOrganizationCapacityRequest" } } ], "tags": [ "Quotas" ] } }, "/v1/compose": { "post": { "summary": "Create resources from compose.", "operationId": "Compose", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ComposeReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "compose", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateCompose" } } ], "tags": [ "Compose" ] } }, "/v1/usages": { "get": { "summary": "Get organization usage", "operationId": "GetOrganizationUsage", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetOrganizationUsageReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "starting_time", "description": "The starting time of the period to get data from", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "ending_time", "description": "The ending time of the period to get data from", "in": "query", "required": false, "type": "string", "format": "date-time" } ], "tags": [ "Usages" ] } }, "/v1/usages/details": { "get": { "summary": "Get organization usage details", "operationId": "GetOrganizationUsageDetails", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetOrganizationUsageDetailsReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "starting_time", "description": "The starting time of the period to get data from", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "ending_time", "description": "The ending time of the period to get data from", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "order", "description": "(Optional) Sorts the list in the ascending or the descending order", "in": "query", "required": false, "type": "string" }, { "name": "Accept", "description": "If defined with the value 'text/csv', a csv file is returned", "in": "header", "required": false, "type": "string" } ], "tags": [ "Usages" ] } }, "/v1/catalog/regions": { "get": { "summary": "List Region", "operationId": "ListRegions", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListRegionsReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "id", "description": "(Optional) A filter for regions", "in": "query", "required": false, "type": "string" } ], "tags": [ "CatalogRegions" ] } }, "/v1/catalog/regions/{id}": { "get": { "summary": "Get Region", "operationId": "GetRegion", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetRegionReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The name of the region", "in": "path", "required": true, "type": "string" } ], "tags": [ "CatalogRegions" ] } }, "/v1/catalog/usage": { "get": { "operationId": "ListUsage", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListUsageReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "region", "in": "query", "required": false, "type": "string" } ], "tags": [ "CatalogInstanceUsage" ] } }, "/v1/catalog/instances": { "get": { "summary": "List Instances", "operationId": "ListCatalogInstances", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListCatalogInstancesReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "limit", "description": "(Optional) The number of items to return", "in": "query", "required": false, "type": "string" }, { "name": "offset", "description": "(Optional) The offset in the list of item to return", "in": "query", "required": false, "type": "string" }, { "name": "id", "description": "(Optional) A filter for instances", "in": "query", "required": false, "type": "string" } ], "tags": [ "CatalogInstances" ] } }, "/v1/catalog/instances/{id}": { "get": { "summary": "Get Instance", "operationId": "GetCatalogInstance", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetCatalogInstanceReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "id", "description": "The name of the instance", "in": "path", "required": true, "type": "string" } ], "tags": [ "CatalogInstances" ] } }, "/v1/catalog/datacenters": { "get": { "summary": "List datacenters", "operationId": "ListDatacenters", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ListDatacentersReply" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "tags": [ "CatalogDatacenters" ] } }, "/v1/search": { "get": { "summary": "Search", "operationId": "Search", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/ksearch.SearchReply" } }, "400": { "description": "Validation error", "schema": { "$ref": "#/definitions/ErrorWithFields" } }, "401": { "description": "Returned when the token is not valid.", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Returned when the resource does not exist.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Returned in case of server error.", "schema": { "$ref": "#/definitions/Error" } }, "503": { "description": "Service is unavailable.", "schema": { "$ref": "#/definitions/Error" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/google.rpc.Status" } } }, "parameters": [ { "name": "query", "description": "(Optional) Search query", "in": "query", "required": false, "type": "string" } ], "tags": [ "Search" ] } } }, "definitions": { "google.protobuf.Any": { "type": "object", "properties": { "@type": { "type": "string" } }, "additionalProperties": {} }, "google.rpc.Status": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "details": { "type": "array", "items": { "$ref": "#/definitions/google.protobuf.Any" } } } }, "Error": { "type": "object", "properties": { "status": { "type": "integer", "format": "int32" }, "code": { "type": "string" }, "message": { "type": "string" } } }, "ErrorField": { "type": "object", "properties": { "field": { "type": "string" }, "description": { "type": "string" } } }, "ErrorWithFields": { "type": "object", "properties": { "status": { "type": "integer", "format": "int32" }, "code": { "type": "string" }, "message": { "type": "string" }, "fields": { "type": "array", "items": { "$ref": "#/definitions/ErrorField" } } } }, "kgitproxy.Branch": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "repository_id": { "type": "string" }, "name": { "type": "string" }, "is_default": { "type": "boolean" }, "is_protected": { "type": "boolean" }, "provider": { "$ref": "#/definitions/kgitproxy.RepositoryProvider" } } }, "kgitproxy.GitHubRepository": { "type": "object", "properties": { "github_id": { "type": "string" } } }, "kgitproxy.ListBranchesReply": { "type": "object", "properties": { "branches": { "type": "array", "items": { "$ref": "#/definitions/kgitproxy.Branch" }, "description": "The collection of branches." }, "limit": { "type": "integer", "format": "int64", "description": "The limit in the request." }, "offset": { "type": "integer", "format": "int64", "description": "The offset in the request." }, "count": { "type": "integer", "format": "int64", "description": "The total number of items." } } }, "kgitproxy.ListRepositoriesReply": { "type": "object", "properties": { "repositories": { "type": "array", "items": { "$ref": "#/definitions/kgitproxy.Repository" }, "description": "The collection of repositories." }, "limit": { "type": "integer", "format": "int64", "description": "The limit in the request." }, "offset": { "type": "integer", "format": "int64", "description": "The offset in the request." }, "count": { "type": "integer", "format": "int64", "description": "The total number of items." } } }, "kgitproxy.Repository": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "name": { "type": "string" }, "url": { "type": "string" }, "description": { "type": "string" }, "is_private": { "type": "boolean" }, "is_disabled": { "type": "boolean" }, "default_branch": { "type": "string" }, "provider": { "$ref": "#/definitions/kgitproxy.RepositoryProvider" }, "last_push_date": { "type": "string", "format": "date-time" }, "github": { "$ref": "#/definitions/kgitproxy.GitHubRepository" } } }, "kgitproxy.RepositoryProvider": { "type": "string", "enum": [ "INVALID_PROVIDER", "GITHUB" ], "default": "INVALID_PROVIDER" }, "kgitproxy.ResyncOrganizationReply": { "type": "object" }, "DeleteUserReply": { "type": "object", "properties": { "user": { "$ref": "#/definitions/User" } } }, "User": { "type": "object", "example": { "id": "78352123-a06f-4ec2-81ed-27a056725385", "email": "john@snow.com", "name": "John Snow", "avatar_url": "https://www.gravatar.com/avatar/00000000000000000000000000000000", "is_admin": false, "is_test": true, "two_factor_authentication": false, "last_login": "0001-01-01T00:00:00Z", "last_login_id": "10.1.1.1", "updated_at": "0001-01-01T00:00:00Z", "created_at": "0001-01-01T00:00:00Z", "newsletter_subscribed": true, "email_validated": true }, "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "avatar_url": { "type": "string" }, "two_factor_authentication": { "type": "boolean" }, "last_login": { "type": "string", "format": "date-time" }, "last_login_ip": { "type": "string" }, "updated_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "newsletter_subscribed": { "type": "boolean" }, "github_id": { "type": "string" }, "github_user": { "type": "string" }, "flags": { "type": "array", "items": { "$ref": "#/definitions/UserFlags" } }, "name": { "type": "string" }, "email_validated": { "type": "boolean" }, "trialed": { "type": "boolean" } }, "title": "Represent a User" }, "UserFlags": { "type": "string", "enum": [ "ADMIN", "TEST", "RESTRICTED", "ACTIVE", "BETA", "MAX_ORGANIZATIONS_25", "MAX_ORGANIZATIONS_100", "MAX_ORGANIZATIONS_1000", "MAX_ORGANIZATIONS_10000", "MAX_ORGANIZATIONS_100000", "MAX_ORGANIZATIONS_1000000", "PARTNER_CSP", "IGNORE_ORGANIZATION_NAME_RESERVATION_RULE_NEON_PREFIX" ], "default": "ADMIN", "title": "- ADMIN: A user is an admin user\n - TEST: A user is a test user\n - RESTRICTED: Whether this account as restricted access\n - ACTIVE: Whether this account is active\n - BETA: Account in beta program\n - MAX_ORGANIZATIONS_25: User can create this much organizations, overriding the default amount\n - PARTNER_CSP: User can create sub-organizations\n - IGNORE_ORGANIZATION_NAME_RESERVATION_RULE_NEON_PREFIX: User can bypass organization name reservations rules" }, "google.protobuf.NullValue": { "type": "string", "enum": [ "NULL_VALUE" ], "default": "NULL_VALUE", "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." }, "AcceptOrganizationInvitationReply": { "type": "object", "properties": { "invitation": { "$ref": "#/definitions/OrganizationInvitation", "title": "The organization invitation accepted" } } }, "Action": { "type": "string", "enum": [ "signin", "signup", "register" ], "default": "signin" }, "Budget": { "type": "object", "properties": { "amount": { "type": "string", "format": "int64" }, "thresholds": { "type": "array", "items": { "type": "string", "format": "int64" } } } }, "CannyAuthReply": { "type": "object", "properties": { "token": { "type": "string" } } }, "CannyAuthRequest": { "type": "object" }, "ClearIdenfyVerificationResultReply": { "type": "object" }, "ClearIdenfyVerificationResultRequest": { "type": "object", "properties": { "user_id": { "type": "string" }, "organization_id": { "type": "string" } } }, "CreateAccessTokenReply": { "type": "object", "properties": { "token": { "type": "string" } } }, "CreateAccountRequest": { "type": "object", "example": { "email": "john@snow.com", "password": "..." }, "properties": { "email": { "type": "string" }, "password": { "type": "string" }, "name": { "type": "string" }, "captcha": { "type": "string" } }, "description": "Create new account", "title": "Create new account", "required": [ "email", "password" ] }, "CreateBudgetReply": { "type": "object", "properties": { "budget": { "$ref": "#/definitions/Budget" } } }, "CreateOrganizationReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "CreateOrganizationRequest": { "type": "object", "properties": { "name": { "type": "string" } } }, "DeactivateOrganizationReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "DeclineOrganizationInvitationReply": { "type": "object", "properties": { "invitation": { "$ref": "#/definitions/OrganizationInvitation", "title": "The organization invitation declined" } } }, "DeleteBudgetReply": { "type": "object" }, "DeleteOrganizationReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "DiscourseAuthReply": { "type": "object", "properties": { "sso": { "type": "string" }, "sig": { "type": "string" } } }, "DiscourseAuthRequest": { "type": "object", "properties": { "payload": { "type": "string" }, "sig": { "type": "string" } } }, "GetBudgetReply": { "type": "object", "properties": { "budget": { "$ref": "#/definitions/Budget" } } }, "GetGithubInstallationReply": { "type": "object", "properties": { "installation_id": { "type": "string" }, "installation_url": { "type": "string" }, "name": { "type": "string" }, "avatar_url": { "type": "string" }, "status": { "$ref": "#/definitions/kgitproxy.GithubInstallation.Status" }, "installed_at": { "type": "string", "format": "date-time" }, "suspended_at": { "type": "string", "format": "date-time" }, "indexing_status": { "$ref": "#/definitions/kgitproxy.IndexingStatus" }, "indexed_repositories": { "type": "integer", "format": "int64" }, "total_repositories": { "type": "integer", "format": "int64" } } }, "GetIdenfyTokenReply": { "type": "object", "properties": { "auth_token": { "type": "string" } } }, "GetOAuthOptionsReply": { "type": "object", "properties": { "oauth_providers": { "type": "array", "items": { "$ref": "#/definitions/OAuthProvider" } } }, "description": "A list of providers which you can use for single sign-on." }, "GetOrganizationReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "GetUserOrganizationInvitationReply": { "type": "object", "properties": { "invitation": { "$ref": "#/definitions/OrganizationInvitation" } } }, "GetUserSettingsReply": { "type": "object", "properties": { "settings": { "$ref": "#/definitions/UserSettings" } } }, "GithubInstallationReply": { "type": "object", "properties": { "app_name": { "type": "string", "title": "The github app name" }, "app_id": { "type": "string", "format": "int64", "title": "The github app id" }, "url": { "type": "string", "title": "The url to start the installation flow" }, "state": { "type": "string", "title": "The state required by the protocol, it is only valid 10 minutes and encodes\ninformation about the type of flow" } } }, "GithubInstallationRequest": { "type": "object", "properties": { "metadata": { "type": "string", "title": "A small (limited to 400 characters) string of arbitrary metadata which will\nbe encoded in the state" } } }, "HasUnpaidInvoicesReply": { "type": "object", "properties": { "has_unpaid_invoices": { "type": "boolean" } } }, "InviteUserRequest": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "message": { "type": "string" } } }, "ListUserOrganizationInvitationsReply": { "type": "object", "properties": { "invitations": { "type": "array", "items": { "$ref": "#/definitions/OrganizationInvitation" }, "title": "The collection of organization invitations" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" } } }, "ListUserOrganizationsReply": { "type": "object", "properties": { "organizations": { "type": "array", "items": { "$ref": "#/definitions/Organization" }, "title": "The collection of organizations" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "LoginMethodReply": { "type": "object", "properties": { "method": { "$ref": "#/definitions/LoginMethodReply.Method" } } }, "LoginMethodReply.Method": { "type": "string", "enum": [ "KOYEB", "WORKOS" ], "default": "KOYEB" }, "LoginReply": { "type": "object", "properties": { "token": { "$ref": "#/definitions/Token" } } }, "ManageReply": { "type": "object", "properties": { "url": { "type": "string" } } }, "NextInvoiceReply": { "type": "object", "properties": { "stripe_invoice": { "type": "object" }, "lines": { "type": "array", "items": { "$ref": "#/definitions/NextInvoiceReply.Line" } }, "discounts": { "type": "array", "items": { "$ref": "#/definitions/NextInvoiceReply.Discount" } } } }, "NextInvoiceReply.Discount": { "type": "object", "properties": { "type": { "$ref": "#/definitions/NextInvoiceReply.Discount.Type" }, "name": { "type": "string" }, "amount": { "type": "string", "format": "int64" } } }, "NextInvoiceReply.Discount.Type": { "type": "string", "enum": [ "PERCENT_OFF", "AMOUNT_OFF" ], "default": "PERCENT_OFF" }, "NextInvoiceReply.Line": { "type": "object", "properties": { "amount_excluding_tax": { "type": "integer", "format": "int32" }, "period": { "$ref": "#/definitions/NextInvoiceReply.Line.Period" }, "plan_nickname": { "type": "string" }, "price": { "$ref": "#/definitions/NextInvoiceReply.Line.Price" }, "quantity": { "type": "integer", "format": "int32" } } }, "NextInvoiceReply.Line.Period": { "type": "object", "properties": { "start": { "type": "string", "format": "date-time" }, "end": { "type": "string", "format": "date-time" } } }, "NextInvoiceReply.Line.Price": { "type": "object", "properties": { "unit_amount_decimal": { "type": "number", "format": "double" } } }, "OAuthCallbackReply": { "type": "object", "properties": { "token": { "$ref": "#/definitions/Token", "title": "A jwt token to be used for session" } } }, "OAuthCallbackRequest": { "type": "object", "properties": { "state": { "type": "string", "title": "The state created at the origin of the OAuth flow" }, "code": { "type": "string", "title": "The code returned by the OAuth provider" }, "setup_action": { "type": "string", "description": "setup_action is populated in the context of a GitHub app installation\nrequest. For logins and signups, it is not set." }, "installation_id": { "type": "string", "description": "installation_id is populated in the context of a GitHub app installation\nrequest. For logins and signups, it is not set." } } }, "OAuthProvider": { "type": "object", "properties": { "id": { "type": "string", "title": "The name of the provider (.e.g github, google)" }, "url": { "type": "string", "title": "The URL to call to initiate the OAuth flow" }, "state": { "type": "string", "title": "The OAuth state required by the protocol, it is only valid 10 minutes and\nencodes information about the type of flow" } } }, "Organization": { "type": "object", "properties": { "id": { "type": "string" }, "external_id": { "type": "string" }, "provisioning": { "type": "boolean" }, "address1": { "type": "string" }, "address2": { "type": "string" }, "city": { "type": "string" }, "postal_code": { "type": "string" }, "state": { "type": "string" }, "country": { "type": "string" }, "company": { "type": "boolean" }, "vat_number": { "type": "string" }, "billing_name": { "type": "string" }, "billing_email": { "type": "string" }, "name": { "type": "string" }, "plan": { "$ref": "#/definitions/Plan" }, "plan_updated_at": { "type": "string", "format": "date-time" }, "has_payment_method": { "type": "boolean" }, "subscription_id": { "type": "string" }, "current_subscription_id": { "type": "string" }, "latest_subscription_id": { "type": "string" }, "signup_qualification": { "type": "object" }, "status": { "$ref": "#/definitions/Organization.Status" }, "status_message": { "$ref": "#/definitions/OrganizationDetailedStatus" }, "deactivation_reason": { "$ref": "#/definitions/Organization.DeactivationReason" }, "verified": { "type": "boolean" }, "qualifies_for_hobby23": { "type": "boolean" }, "reprocess_after": { "type": "string", "format": "date-time" }, "trialing": { "type": "boolean" }, "trial_starts_at": { "type": "string", "format": "date-time" }, "trial_ends_at": { "type": "string", "format": "date-time" }, "email_domain_allowlist": { "type": "array", "items": { "type": "string" } } }, "title": "Represent an Organization" }, "Organization.DeactivationReason": { "type": "string", "enum": [ "INVALID", "REQUESTED_BY_OWNER", "SUBSCRIPTION_TERMINATION", "LOCKED_BY_ADMIN", "VERIFICATION_FAILED", "TRIAL_DID_NOT_CONVERT" ], "default": "INVALID" }, "Organization.Status": { "type": "string", "enum": [ "WARNING", "LOCKED", "ACTIVE", "DEACTIVATING", "DEACTIVATED", "DELETING", "DELETED" ], "default": "WARNING" }, "OrganizationDetailedStatus": { "type": "string", "enum": [ "NEW", "EMAIL_NOT_VALIDATED", "BILLING_INFO_MISSING", "LOCKED", "PAYMENT_FAILURE", "VALID", "PENDING_VERIFICATION", "VERIFICATION_FAILED", "REVIEWING_ACCOUNT", "PLAN_UPGRADE_REQUIRED" ], "default": "NEW" }, "OrganizationInvitation": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "role": { "$ref": "#/definitions/UserRole.Role" }, "status": { "$ref": "#/definitions/OrganizationInvitation.Status" }, "expires_at": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "organization": { "$ref": "#/definitions/PublicOrganization" }, "invitee_id": { "type": "string" }, "invitee": { "$ref": "#/definitions/PublicUser" }, "inviter_id": { "type": "string" }, "inviter": { "$ref": "#/definitions/PublicUser" } } }, "OrganizationInvitation.Status": { "type": "string", "enum": [ "INVALID", "PENDING", "ACCEPTED", "REFUSED", "EXPIRED" ], "default": "INVALID" }, "Plan": { "type": "string", "enum": [ "hobby", "starter", "startup", "business", "enterprise", "internal", "hobby23", "no_plan", "pro", "scale", "partner_csp", "partner_csp_unit" ], "default": "hobby" }, "PublicOrganization": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "plan": { "$ref": "#/definitions/Plan" }, "status": { "$ref": "#/definitions/Organization.Status" }, "external_id": { "type": "string" } } }, "PublicUser": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "avatar_url": { "type": "string" }, "github_id": { "type": "string" }, "github_user": { "type": "string" } } }, "ReactivateOrganizationReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "ResendEmailValidationReply": { "type": "object" }, "ResendEmailValidationRequest": { "type": "object" }, "ResetPasswordReply": { "type": "object" }, "ResetPasswordRequest": { "type": "object", "example": { "email": "john@snow.com" }, "properties": { "email": { "type": "string" } } }, "Token": { "type": "object", "example": { "id": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires": "2022-09-08T14:00:00Z", "user_id": "996d7822-6b58-11e9-956f-32001b70f000", "organization_id": "9f33b2c6-6b58-11e9-883c-32001b70f000" }, "properties": { "id": { "type": "string" }, "user_id": { "type": "string" }, "organization_id": { "type": "string" }, "expires_at": { "type": "string", "format": "date-time" } } }, "UnscopeOrganizationTokenRequest": { "type": "object" }, "UpdateBudgetReply": { "type": "object", "properties": { "budget": { "$ref": "#/definitions/Budget" } } }, "UpdateOrganizationNameReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "UpdateOrganizationPlanReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "UpdateOrganizationReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "UpdatePasswordRequest": { "type": "object", "example": { "id": "...", "password": "..." }, "properties": { "id": { "type": "string" }, "password": { "type": "string" } } }, "UpdateUserRequest.UserUpdateBody": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "current_password": { "type": "string" }, "password": { "type": "string" }, "newsletter_subscribed": { "type": "boolean" }, "name": { "type": "string" } } }, "UpdateUserSettingsReply": { "type": "object", "properties": { "settings": { "$ref": "#/definitions/UserSettings" } } }, "UpdateUserSettingsRequest": { "type": "object", "properties": { "failed_deployment_email_notification": { "type": "boolean", "description": "(Optional) Toggle failed deployment email notification." } } }, "UpsertSignupQualificationReply": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/Organization" } } }, "UserReply": { "type": "object", "properties": { "user": { "$ref": "#/definitions/User" } } }, "UserRole.Role": { "type": "string", "enum": [ "INVALID", "OWNER" ], "default": "INVALID" }, "UserSettings": { "type": "object", "properties": { "id": { "type": "string" }, "user_id": { "type": "string" }, "failed_deployment_email_notification": { "type": "boolean" } } }, "Activity": { "type": "object", "properties": { "id": { "type": "string" }, "actor": { "$ref": "#/definitions/Object" }, "object": { "$ref": "#/definitions/Object" }, "verb": { "type": "string" }, "metadata": { "type": "object" }, "created_at": { "type": "string", "format": "date-time" } } }, "ActivityList": { "type": "object", "properties": { "activities": { "type": "array", "items": { "$ref": "#/definitions/Activity" } }, "limit": { "type": "integer", "format": "int64" }, "offset": { "type": "integer", "format": "int64" }, "has_next": { "type": "boolean" } } }, "Object": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "metadata": { "type": "object" }, "deleted": { "type": "boolean" } } }, "Empty": { "type": "object" }, "kgitproxy.GithubInstallation.Status": { "type": "string", "enum": [ "INVALID", "INSTALLED", "SUSPENDED", "DELETED" ], "default": "INVALID" }, "kgitproxy.IndexingStatus": { "type": "string", "enum": [ "INVALID_INDEXING_STATUS", "NOT_STARTED", "IN_PROGRESS", "COMPLETED" ], "default": "INVALID_INDEXING_STATUS" }, "AppsSummary": { "type": "object", "properties": { "total": { "type": "string", "format": "int64", "title": "Total number of apps" }, "by_status": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" }, "title": "Number of apps grouped by status" } } }, "DomainsSummary": { "type": "object", "properties": { "total": { "type": "string", "format": "int64", "title": "Total number of domains" }, "by_status": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" }, "title": "Number of domains grouped by status" } } }, "GetOrganizationSummaryReply": { "type": "object", "properties": { "summary": { "$ref": "#/definitions/OrganizationSummary", "title": "Organization usage summary" } } }, "InstancesSummary": { "type": "object", "properties": { "total": { "type": "string", "format": "int64", "title": "Total number of instances" }, "by_type": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" }, "title": "Number of instances grouped by type" } } }, "MembersSummary": { "type": "object", "properties": { "total": { "type": "string", "format": "int64", "title": "Number of members" }, "invitations_by_status": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" }, "title": "Number of invitations grouped by status" } } }, "NeonPostgresSummary": { "type": "object", "properties": { "total": { "type": "string", "format": "int64", "title": "Total number of databases" }, "by_instance_type": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" }, "title": "Number of databases grouped by instance type" } } }, "OrganizationSummary": { "type": "object", "properties": { "organization_id": { "type": "string" }, "instances": { "$ref": "#/definitions/InstancesSummary" }, "apps": { "$ref": "#/definitions/AppsSummary" }, "services": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ServiceSummary" }, "title": "Number of services grouped by type" }, "domains": { "$ref": "#/definitions/DomainsSummary" }, "secrets": { "$ref": "#/definitions/SecretsSummary" }, "neon_postgres": { "$ref": "#/definitions/NeonPostgresSummary" }, "members": { "$ref": "#/definitions/MembersSummary" } } }, "SecretsSummary": { "type": "object", "properties": { "total": { "type": "string", "format": "int64", "title": "Total number of secrets" }, "by_type": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" }, "title": "Number of secrets grouped by type" } } }, "ServiceSummary": { "type": "object", "properties": { "total": { "type": "string", "format": "int64", "title": "Total number of services" }, "by_status": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" }, "title": "Number of services grouped by status" } } }, "CreateCredential": { "type": "object", "properties": { "name": { "type": "string", "title": "Credential name" }, "description": { "type": "string", "title": "Credential description" }, "type": { "$ref": "#/definitions/Credential.Type", "title": "Credential type" }, "organization_id": { "type": "string", "title": "Organization id for user credential" } } }, "CreateCredentialReply": { "type": "object", "properties": { "credential": { "$ref": "#/definitions/Credential" } } }, "Credential": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "$ref": "#/definitions/Credential.Type" }, "name": { "type": "string" }, "token": { "type": "string" }, "description": { "type": "string" }, "user_id": { "type": "string" }, "organization_id": { "type": "string" }, "updated_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "expires_at": { "type": "string", "format": "date-time" } } }, "Credential.Type": { "type": "string", "enum": [ "INVALID", "USER", "ORGANIZATION" ], "default": "INVALID" }, "DeleteCredentialReply": { "type": "object" }, "GetCredentialReply": { "type": "object", "properties": { "credential": { "$ref": "#/definitions/Credential" } } }, "ListCredentialsReply": { "type": "object", "properties": { "credentials": { "type": "array", "items": { "$ref": "#/definitions/Credential" } }, "limit": { "type": "integer", "format": "int64" }, "offset": { "type": "integer", "format": "int64" }, "count": { "type": "integer", "format": "int64" } } }, "UpdateCredentialReply": { "type": "object", "properties": { "credential": { "$ref": "#/definitions/Credential" } } }, "LoginRequest": { "type": "object", "example": { "email": "john@snow.com", "password": "..." }, "properties": { "email": { "type": "string", "title": "User email" }, "password": { "type": "string", "title": "User password" }, "organization_id": { "type": "string", "title": "(Optional) Login into this organization" } } }, "LogoutReply": { "type": "object" }, "ConfirmOrganizationActionReply": { "type": "object" }, "GetIntercomProfileReply": { "type": "object", "properties": { "hash": { "type": "string" } } }, "RedeemCouponReply": { "type": "object" }, "RedeemCouponRequest": { "type": "object", "properties": { "code": { "type": "string" } } }, "CreateProject": { "type": "object", "properties": { "name": { "type": "string", "title": "Project name" }, "description": { "type": "string", "title": "Project description" } } }, "CreateProjectReply": { "type": "object", "properties": { "project": { "$ref": "#/definitions/Project" } } }, "DeleteProjectReply": { "type": "object" }, "GetProjectReply": { "type": "object", "properties": { "project": { "$ref": "#/definitions/Project" } } }, "ListProjectsReply": { "type": "object", "properties": { "projects": { "type": "array", "items": { "$ref": "#/definitions/Project" } }, "limit": { "type": "integer", "format": "int64" }, "offset": { "type": "integer", "format": "int64" } } }, "Project": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "organization_id": { "type": "string" }, "updated_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" } } }, "UpdateProjectReply": { "type": "object", "properties": { "project": { "$ref": "#/definitions/Project" } } }, "ListOrganizationMembersReply": { "type": "object", "properties": { "members": { "type": "array", "items": { "$ref": "#/definitions/OrganizationMember" }, "title": "The collection of organization members" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" } } }, "OrganizationMember": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "user_id": { "type": "string" }, "external_id": { "type": "string" }, "joined_at": { "type": "string", "format": "date-time" }, "role": { "$ref": "#/definitions/UserRole.Role" }, "status": { "$ref": "#/definitions/OrganizationMember.Status" }, "user": { "$ref": "#/definitions/PublicUser" }, "organization": { "$ref": "#/definitions/PublicOrganization" } } }, "OrganizationMember.Status": { "type": "string", "enum": [ "INVALID", "ACTIVE", "DELETED" ], "default": "INVALID" }, "RemoveOrganizationMemberReply": { "type": "object", "properties": { "member": { "$ref": "#/definitions/OrganizationMember" } } }, "ConfirmPaymentAuthorizationReply": { "type": "object", "properties": { "payment_method": { "$ref": "#/definitions/PaymentMethod" } } }, "CreatePaymentAuthorizationReply": { "type": "object", "properties": { "payment_method": { "$ref": "#/definitions/PaymentMethod" } } }, "CreatePaymentAuthorizationRequest": { "type": "object" }, "DeletePaymentMethodReply": { "type": "object" }, "GetPaymentMethodReply": { "type": "object", "properties": { "payment_method": { "$ref": "#/definitions/PaymentMethod" } } }, "ListPaymentMethodsReply": { "type": "object", "properties": { "payment_methods": { "type": "array", "items": { "$ref": "#/definitions/PaymentMethod" }, "title": "The collection of payment methods" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" } } }, "PaymentMethod": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "version": { "type": "string", "format": "uint64" }, "organization_id": { "type": "string" }, "type": { "type": "string" }, "provider": { "type": "string" }, "status": { "$ref": "#/definitions/PaymentMethod.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "stripe_payment_method_id": { "type": "string" }, "authorization_verified_at": { "type": "string", "format": "date-time" }, "authorization_canceled_at": { "type": "string", "format": "date-time" }, "authorization_stripe_payment_intent_id": { "type": "string" }, "authorization_stripe_payment_intent_client_secret": { "type": "string" }, "card_brand": { "type": "string" }, "card_country": { "type": "string" }, "card_funding": { "type": "string" }, "card_fingerprint": { "type": "string" }, "card_last_digits": { "type": "string" }, "card_expiration_month": { "type": "integer", "format": "int64" }, "card_expiration_year": { "type": "integer", "format": "int64" } } }, "PaymentMethod.Status": { "type": "string", "enum": [ "INVALID", "CREATED", "AUTHORIZED", "DECLINED", "CANCELED", "EXPIRED", "UNCHECKED" ], "default": "INVALID" }, "DomainLoadBalancerQuotas": { "type": "object", "properties": { "max_koyeb": { "type": "integer", "format": "int64" } } }, "GetQuotasReply": { "type": "object", "properties": { "quotas": { "$ref": "#/definitions/Quotas" } } }, "LifecycleQuotas": { "type": "object", "properties": { "delete_after_sleep_min": { "type": "integer", "format": "int64", "title": "delete after sleep limits" }, "delete_after_sleep_max": { "type": "integer", "format": "int64" }, "delete_after_create_min": { "type": "integer", "format": "int64", "title": "delete after create limits" }, "delete_after_create_max": { "type": "integer", "format": "int64" } } }, "PersistentVolumeQuotas": { "type": "object", "properties": { "max_total_size": { "type": "integer", "format": "int64", "description": "MaxTotalSize for all volumes on a region (in Gigabyte / GB)." }, "max_volume_size": { "type": "integer", "format": "int64", "description": "MaxVolumeSize for one volume (in Gigabyte / GB)." }, "max_per_instance_size": { "type": "integer", "format": "int64", "description": "MaxPerInstanceSize for all volumes on an instance (in Gigabyte / GB)." } } }, "Quotas": { "type": "object", "properties": { "apps": { "type": "string", "format": "int64" }, "services": { "type": "string", "format": "int64" }, "domains": { "type": "string", "format": "int64", "title": "Deprecated, use custom_domains instead" }, "services_by_app": { "type": "string", "format": "int64" }, "service_provisioning_concurrency": { "type": "string", "format": "int64" }, "memory_mb": { "type": "string", "format": "int64" }, "instance_types": { "type": "array", "items": { "type": "string" } }, "regions": { "type": "array", "items": { "type": "string" } }, "max_organization_members": { "type": "string", "format": "int64" }, "max_instances_by_type": { "type": "object", "additionalProperties": { "type": "string", "format": "int64" } }, "persistent_volumes_by_region": { "type": "object", "additionalProperties": { "$ref": "#/definitions/PersistentVolumeQuotas" } }, "custom_domains": { "type": "string", "format": "int64" }, "domains_load_balancer": { "$ref": "#/definitions/DomainLoadBalancerQuotas" }, "metrics_retention": { "type": "integer", "format": "int32", "title": "Time in days" }, "logs_retention": { "type": "integer", "format": "int32", "title": "Time in days" }, "access_reserved_subdomains": { "type": "array", "items": { "type": "string" }, "title": "The mapping between reserved_subdomain names and their value is in the code" }, "proxy_ports": { "type": "integer", "format": "int64" }, "scale_to_zero": { "$ref": "#/definitions/ScaleToZeroQuotas" }, "archives": { "type": "string", "format": "int64" }, "archive_max_size_mb": { "type": "string", "format": "int64" }, "lifecycle": { "$ref": "#/definitions/LifecycleQuotas" }, "max_projects": { "type": "string", "format": "int64" } } }, "ScaleToZeroQuotas": { "type": "object", "properties": { "is_deep_sleep_enabled": { "type": "boolean", "title": "deep sleep limits" }, "deep_sleep_idle_delay_min": { "type": "integer", "format": "int64" }, "deep_sleep_idle_delay_max": { "type": "integer", "format": "int64" }, "is_light_sleep_enabled": { "type": "boolean", "title": "light sleep limits" }, "light_sleep_idle_delay_min": { "type": "integer", "format": "int64" }, "light_sleep_idle_delay_max": { "type": "integer", "format": "int64" } } }, "CreateOrganizationInvitationReply": { "type": "object", "properties": { "invitation": { "$ref": "#/definitions/OrganizationInvitation", "title": "The organization invitation sent" } } }, "CreateOrganizationInvitationRequest": { "type": "object", "properties": { "email": { "type": "string", "title": "The email of the person to invite" } } }, "DeleteOrganizationInvitationReply": { "type": "object" }, "GetOrganizationInvitationReply": { "type": "object", "properties": { "invitation": { "$ref": "#/definitions/OrganizationInvitation" } } }, "ListOrganizationInvitationsReply": { "type": "object", "properties": { "invitations": { "type": "array", "items": { "$ref": "#/definitions/OrganizationInvitation" }, "title": "The collection of organization invitations" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" } } }, "ResendOrganizationInvitationReply": { "type": "object", "properties": { "invitation": { "$ref": "#/definitions/OrganizationInvitation", "title": "The organization invitation resent" } } }, "GetSubscriptionReply": { "type": "object", "properties": { "subscription": { "$ref": "#/definitions/Subscription" } } }, "Subscription": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "version": { "type": "string", "format": "uint64" }, "organization_id": { "type": "string" }, "stripe_subscription_id": { "type": "string" }, "status": { "$ref": "#/definitions/Subscription.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "has_pending_update": { "type": "boolean" }, "stripe_pending_invoice_id": { "type": "string" }, "terminate_at": { "type": "string", "format": "date-time" }, "canceled_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" }, "current_period_start": { "type": "string", "format": "date-time" }, "current_period_end": { "type": "string", "format": "date-time" }, "currency": { "type": "string" }, "amount_payable": { "type": "string", "format": "int64" }, "amount_paid": { "type": "string", "format": "int64" }, "amount_remaining": { "type": "string", "format": "int64" }, "payment_failure": { "$ref": "#/definitions/Subscription.PaymentFailure" }, "trialing": { "type": "boolean" }, "trial_ends_at": { "type": "string", "format": "date-time" }, "trial_max_spend": { "type": "string", "format": "int64" }, "current_spend": { "type": "string", "format": "int64" } } }, "Subscription.PaymentFailure": { "type": "object", "properties": { "failed_at": { "type": "string", "format": "date-time" }, "next_attempt": { "type": "string", "format": "date-time" }, "attempt_count": { "type": "string", "format": "int64" }, "error_code": { "type": "string" }, "error_reason": { "type": "string" }, "error_type": { "type": "string" }, "error_message": { "type": "string" }, "payment_method_required": { "type": "boolean" }, "redirect_url": { "type": "string" }, "stripe_sdk": { "$ref": "#/definitions/Subscription.PaymentFailure.StripeSDK" } } }, "Subscription.PaymentFailure.StripeSDK": { "type": "object", "properties": { "client_secret_key": { "type": "string" }, "raw_json": { "type": "string" } } }, "Subscription.Status": { "type": "string", "enum": [ "INVALID", "CREATED", "ACTIVE", "WARNING", "URGENT", "CANCELING", "CANCELED", "TERMINATING", "TERMINATED" ], "default": "INVALID" }, "LogEntry": { "type": "object", "properties": { "msg": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "labels": { "type": "object" } } }, "QueryLogsReply": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/LogEntry" } }, "pagination": { "$ref": "#/definitions/QueryLogsReplyPagination" } } }, "QueryLogsReplyPagination": { "type": "object", "properties": { "has_more": { "type": "boolean" }, "next_start": { "type": "string", "format": "date-time" }, "next_end": { "type": "string", "format": "date-time" } } }, "GetMetricsReply": { "type": "object", "properties": { "metrics": { "type": "array", "items": { "$ref": "#/definitions/GetMetricsReply.Metric" } } } }, "GetMetricsReply.Metric": { "type": "object", "properties": { "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "samples": { "type": "array", "items": { "$ref": "#/definitions/Sample" } } } }, "MetricName": { "type": "string", "enum": [ "UNKNOWN", "CPU_TOTAL_PERCENT", "MEM_RSS", "HTTP_THROUGHPUT", "HTTP_RESPONSE_TIME_50P", "HTTP_RESPONSE_TIME_90P", "HTTP_RESPONSE_TIME_99P", "HTTP_RESPONSE_TIME_MAX", "PUBLIC_DATA_TRANSFER_IN", "PUBLIC_DATA_TRANSFER_OUT" ], "default": "UNKNOWN" }, "Sample": { "type": "object", "properties": { "timestamp": { "type": "string" }, "value": { "type": "number", "format": "double" } } }, "ExecCommandIO": { "type": "object", "properties": { "data": { "type": "string", "format": "byte", "description": "Data is base64 encoded" }, "close": { "type": "boolean", "description": "Indicate last data frame" } } }, "ExecCommandReply": { "type": "object", "properties": { "stdout": { "$ref": "#/definitions/ExecCommandIO" }, "stderr": { "$ref": "#/definitions/ExecCommandIO" }, "exited": { "type": "boolean" }, "exit_code": { "type": "integer", "format": "int32" } } }, "ExecCommandRequest.Body": { "type": "object", "properties": { "command": { "type": "array", "items": { "type": "string" }, "description": "Command to exec. Mandatory in the first frame sent" }, "tty_size": { "$ref": "#/definitions/ExecCommandRequest.TerminalSize" }, "stdin": { "$ref": "#/definitions/ExecCommandIO" }, "disableTty": { "type": "boolean", "description": "Disable TTY. It's enough to specify it in the first frame" } } }, "ExecCommandRequest.IdType": { "type": "string", "enum": [ "INVALID", "INSTANCE_ID", "SERVICE_ID" ], "default": "INVALID" }, "ExecCommandRequest.TerminalSize": { "type": "object", "properties": { "height": { "type": "integer", "format": "int32" }, "width": { "type": "integer", "format": "int32" } } }, "Notification": { "type": "object", "properties": { "id": { "type": "string" }, "activity": { "$ref": "#/definitions/Activity" }, "is_read": { "type": "boolean" }, "is_seen": { "type": "boolean" }, "created_at": { "type": "string", "format": "date-time" } } }, "NotificationList": { "type": "object", "properties": { "notifications": { "type": "array", "items": { "$ref": "#/definitions/Notification" } }, "limit": { "type": "integer", "format": "int64" }, "offset": { "type": "integer", "format": "int64" }, "count": { "type": "integer", "format": "int64" }, "is_read": { "type": "boolean" }, "is_seen": { "type": "boolean" }, "unread": { "type": "integer", "format": "int64" }, "unseen": { "type": "integer", "format": "int64" } } }, "BasicAuthPolicy": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" } } }, "SecurityPolicies": { "type": "object", "properties": { "basic_auths": { "type": "array", "items": { "$ref": "#/definitions/BasicAuthPolicy" } }, "api_keys": { "type": "array", "items": { "type": "string" } } } }, "ArchiveSource": { "type": "object", "properties": { "id": { "type": "string", "title": "The ID of the archive to deploy" }, "buildpack": { "$ref": "#/definitions/BuildpackBuilder" }, "docker": { "$ref": "#/definitions/DockerBuilder" } } }, "BuildpackBuilder": { "type": "object", "properties": { "build_command": { "type": "string", "title": "A command used to override the build command, run after all build steps" }, "run_command": { "type": "string", "title": "A command used to override the default run command" }, "privileged": { "type": "boolean", "title": "A flag to run the container in privileged mode" } } }, "ConfigFile": { "type": "object", "properties": { "path": { "type": "string", "title": "the path where the file is copied" }, "permissions": { "type": "string", "title": "the permissions of the file in format 0644" }, "content": { "type": "string", "title": "the content of the file" } } }, "DeploymentHealthCheck": { "type": "object", "properties": { "grace_period": { "type": "integer", "format": "int64", "title": "An optional initial period in seconds to wait for the instance to become healthy, default is 5s" }, "interval": { "type": "integer", "format": "int64", "title": "An optional period in seconds between two health checks, default is 60s" }, "restart_limit": { "type": "integer", "format": "int64", "title": "An optional number of consecutive failures before attempting to restart the service, default is 3" }, "timeout": { "type": "integer", "format": "int64", "title": "An optional maximum time to wait in seconds before considering the check as a failure, default is 5s" }, "tcp": { "$ref": "#/definitions/TCPHealthCheck" }, "http": { "$ref": "#/definitions/HTTPHealthCheck" } } }, "DeploymentProvisioningInfo": { "type": "object", "properties": { "sha": { "type": "string", "description": "The git sha for this build (we resolve the reference at the start of the build)." }, "image": { "type": "string", "description": "The docker image built as a result of this build." }, "stages": { "type": "array", "items": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage" }, "description": "Some info about the build." } } }, "DeploymentProvisioningInfo.Stage": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "started_at": { "type": "string", "format": "date-time" }, "finished_at": { "type": "string", "format": "date-time" }, "build_attempts": { "type": "array", "items": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.BuildAttempt" } } } }, "DeploymentProvisioningInfo.Stage.BuildAttempt": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "status": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "started_at": { "type": "string", "format": "date-time" }, "finished_at": { "type": "string", "format": "date-time" }, "steps": { "type": "array", "items": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.BuildAttempt.BuildStep" } }, "image_pushed": { "type": "boolean" }, "internal_failure": { "type": "boolean" }, "retryable_failure": { "type": "boolean" }, "wait_completion": { "type": "boolean", "description": "This flag is used to finalize the build, and continue the deployment in case of success, or cancel and potentially retry the build in case of failure." } } }, "DeploymentProvisioningInfo.Stage.BuildAttempt.BuildStep": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "$ref": "#/definitions/DeploymentProvisioningInfo.Stage.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "started_at": { "type": "string", "format": "date-time" }, "finished_at": { "type": "string", "format": "date-time" } } }, "DeploymentProvisioningInfo.Stage.Status": { "type": "string", "enum": [ "UNKNOWN", "PENDING", "RUNNING", "FAILED", "COMPLETED", "ABORTED" ], "default": "UNKNOWN" }, "DeploymentScalingTarget": { "type": "object", "properties": { "average_cpu": { "$ref": "#/definitions/DeploymentScalingTargetAverageCPU" }, "average_mem": { "$ref": "#/definitions/DeploymentScalingTargetAverageMem" }, "requests_per_second": { "$ref": "#/definitions/DeploymentScalingTargetRequestsPerSecond" }, "concurrent_requests": { "$ref": "#/definitions/DeploymentScalingTargetConcurrentRequests" }, "requests_response_time": { "$ref": "#/definitions/DeploymentScalingTargetRequestsResponseTime" }, "sleep_idle_delay": { "$ref": "#/definitions/DeploymentScalingTargetSleepIdleDelay" } } }, "DeploymentScalingTargetAverageCPU": { "type": "object", "properties": { "value": { "type": "integer", "format": "int64" } } }, "DeploymentScalingTargetAverageMem": { "type": "object", "properties": { "value": { "type": "integer", "format": "int64" } } }, "DeploymentScalingTargetConcurrentRequests": { "type": "object", "properties": { "value": { "type": "integer", "format": "int64" } } }, "DeploymentScalingTargetRequestsPerSecond": { "type": "object", "properties": { "value": { "type": "integer", "format": "int64" } } }, "DeploymentScalingTargetRequestsResponseTime": { "type": "object", "properties": { "value": { "type": "integer", "format": "int64" }, "quantile": { "type": "integer", "format": "int64", "description": "The quantile to use for autoscaling. For example, set to 95 to use the 95th\npercentile (p95) for autoscaling. Valid values are between 0 and 100." } } }, "DeploymentScalingTargetSleepIdleDelay": { "type": "object", "properties": { "value": { "type": "integer", "format": "int64", "description": "DEPRECATED: use deep_sleep_value instead.\nDelay in seconds after which a service which received 0 request is put to deep sleep." }, "deep_sleep_value": { "type": "integer", "format": "int64", "description": "Delay in seconds after which a service which received 0 request is put to deep sleep." }, "light_sleep_value": { "type": "integer", "format": "int64", "description": "Delay in seconds after which a service which received 0 request is put to light sleep." } } }, "DeploymentStrategy": { "type": "object", "properties": { "type": { "$ref": "#/definitions/DeploymentStrategyType", "title": "Strategy type" } } }, "DeploymentStrategyType": { "type": "string", "enum": [ "DEPLOYMENT_STRATEGY_TYPE_INVALID", "DEPLOYMENT_STRATEGY_TYPE_DEFAULT", "DEPLOYMENT_STRATEGY_TYPE_CANARY", "DEPLOYMENT_STRATEGY_TYPE_ROLLING", "DEPLOYMENT_STRATEGY_TYPE_BLUE_GREEN", "DEPLOYMENT_STRATEGY_TYPE_IMMEDIATE" ], "default": "DEPLOYMENT_STRATEGY_TYPE_INVALID", "description": " - DEPLOYMENT_STRATEGY_TYPE_INVALID: DEPRECATED: Use DEPLOYMENT_STRATEGY_TYPE_DEFAULT instead.\n - DEPLOYMENT_STRATEGY_TYPE_DEFAULT: Default/unspecified strategy (resolves to platform default, currently ROLLING).\n - DEPLOYMENT_STRATEGY_TYPE_CANARY: Use canary strategy.\n - DEPLOYMENT_STRATEGY_TYPE_ROLLING: Use rolling strategy.\n - DEPLOYMENT_STRATEGY_TYPE_BLUE_GREEN: Use blue green strategy.\n - DEPLOYMENT_STRATEGY_TYPE_IMMEDIATE: Use immediate strategy." }, "DockerBuilder": { "type": "object", "properties": { "dockerfile": { "type": "string", "title": "A path to the Dockerfile" }, "entrypoint": { "type": "array", "items": { "type": "string" }, "title": "The docker ENTRYPOINT" }, "command": { "type": "string", "title": "The docker CMD" }, "args": { "type": "array", "items": { "type": "string" }, "title": "The docker CMD args" }, "target": { "type": "string", "title": "The target for multi-stage builds" }, "privileged": { "type": "boolean", "title": "A flag to run the container in privileged mode" } } }, "DockerSource": { "type": "object", "properties": { "image": { "type": "string" }, "command": { "type": "string" }, "args": { "type": "array", "items": { "type": "string" } }, "image_registry_secret": { "type": "string" }, "entrypoint": { "type": "array", "items": { "type": "string" } }, "privileged": { "type": "boolean", "title": "A flag to run the container in privileged mode" } } }, "Env": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": "string" }, "secret": { "type": "string" } } }, "GetRegionalDeploymentReply": { "type": "object", "properties": { "regional_deployment": { "$ref": "#/definitions/RegionalDeployment" } } }, "GitSource": { "type": "object", "properties": { "repository": { "type": "string", "description": "A url to a git repository (contains the provider as well) .e.g: github.com/koyeb/test." }, "branch": { "type": "string", "title": "A git branch that will be tracked for new commits and deployments will be created" }, "tag": { "type": "string", "title": "A git tag that should be built" }, "sha": { "type": "string", "title": "A git commit that should be built (useful for pinning to a commit, this will always be set when a deployment is created by a code push)" }, "build_command": { "type": "string", "title": "A command used to override the build command, run after all build steps \u2014 deprecated, use buildpack.build_command instead" }, "run_command": { "type": "string", "title": "A command used to override the default run command - deprecated, use buildpack.run_command instead" }, "no_deploy_on_push": { "type": "boolean", "title": "A flag to disable a new deployment when a push event is detected" }, "workdir": { "type": "string", "title": "A subdirectory to use as the build directory" }, "buildpack": { "$ref": "#/definitions/BuildpackBuilder" }, "docker": { "$ref": "#/definitions/DockerBuilder" } } }, "HTTPHeader": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": "string" } } }, "HTTPHealthCheck": { "type": "object", "properties": { "port": { "type": "integer", "format": "int64", "title": "The port to use to perform the health check, must be declared in the ports section" }, "path": { "type": "string", "title": "The path to use to perform the HTTP health check" }, "method": { "type": "string", "title": "An optional HTTP method to use to perform the health check, default is GET" }, "headers": { "type": "array", "items": { "$ref": "#/definitions/HTTPHeader" }, "title": "An optional list of HTTP headers to provide when performing the request, default is empty" } } }, "ListRegionalDeploymentEventsReply": { "type": "object", "properties": { "events": { "type": "array", "items": { "$ref": "#/definitions/RegionalDeploymentEvent" }, "title": "The collection of events" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "order": { "type": "string", "title": "The order in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "ListRegionalDeploymentsReply": { "type": "object", "properties": { "regional_deployments": { "type": "array", "items": { "$ref": "#/definitions/RegionalDeploymentListItem" }, "title": "The collection of regional deployments" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "Port": { "type": "object", "properties": { "port": { "type": "integer", "format": "int64" }, "protocol": { "type": "string" } } }, "RegionalDeployment": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "scheduled_at": { "type": "string", "format": "date-time" }, "allocated_at": { "type": "string", "format": "date-time" }, "started_at": { "type": "string", "format": "date-time" }, "succeeded_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" }, "region": { "type": "string" }, "parent_id": { "type": "string" }, "child_id": { "type": "string" }, "status": { "$ref": "#/definitions/RegionalDeployment.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "definition": { "$ref": "#/definitions/RegionalDeploymentDefinition" }, "datacenters": { "type": "array", "items": { "type": "string" } }, "metadata": { "$ref": "#/definitions/RegionalDeploymentMetadata" }, "provisioning_info": { "$ref": "#/definitions/DeploymentProvisioningInfo" }, "role": { "$ref": "#/definitions/RegionalDeployment.Role" }, "version": { "type": "string", "format": "uint64" }, "deployment_group": { "type": "string", "title": "Legacy stuff" }, "deployment_id": { "type": "string" } } }, "RegionalDeployment.Role": { "type": "string", "enum": [ "INVALID", "ACTIVE", "UPCOMING", "CURRENT" ], "default": "INVALID" }, "RegionalDeployment.Status": { "type": "string", "enum": [ "PENDING", "PROVISIONING", "SCHEDULED", "CANCELING", "CANCELED", "ALLOCATING", "STARTING", "HEALTHY", "DEGRADED", "UNHEALTHY", "STOPPING", "STOPPED", "ERRORING", "ERROR", "SLEEPING" ], "default": "PENDING" }, "RegionalDeploymentDefinition": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "$ref": "#/definitions/RegionalDeploymentDefinition.Type" }, "strategy": { "$ref": "#/definitions/DeploymentStrategy" }, "routes": { "type": "array", "items": { "$ref": "#/definitions/Route" } }, "ports": { "type": "array", "items": { "$ref": "#/definitions/Port" } }, "env": { "type": "array", "items": { "$ref": "#/definitions/Env" } }, "region": { "type": "string" }, "scaling": { "$ref": "#/definitions/Scaling" }, "instance_type": { "type": "string" }, "deployment_group": { "type": "string" }, "health_checks": { "type": "array", "items": { "$ref": "#/definitions/DeploymentHealthCheck" } }, "volumes": { "type": "array", "items": { "$ref": "#/definitions/RegionalDeploymentVolume" } }, "config_files": { "type": "array", "items": { "$ref": "#/definitions/ConfigFile" } }, "skip_cache": { "type": "boolean" }, "docker": { "$ref": "#/definitions/DockerSource" }, "git": { "$ref": "#/definitions/GitSource" }, "archive": { "$ref": "#/definitions/ArchiveSource" } } }, "RegionalDeploymentDefinition.Type": { "type": "string", "enum": [ "INVALID", "WEB", "WORKER", "_", "SANDBOX" ], "default": "INVALID", "title": "- _: We match with DeploymentDefinition.Type, so we skip 3 which is DATABASE" }, "RegionalDeploymentEvent": { "type": "object", "properties": { "id": { "type": "string" }, "when": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "regional_deployment_id": { "type": "string" }, "type": { "type": "string" }, "message": { "type": "string" }, "metadata": { "type": "object" } } }, "RegionalDeploymentListItem": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "region": { "type": "string" }, "status": { "$ref": "#/definitions/RegionalDeployment.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "definition": { "$ref": "#/definitions/RegionalDeploymentDefinition" } } }, "RegionalDeploymentMetadata": { "type": "object" }, "RegionalDeploymentVolume": { "type": "object", "properties": { "id": { "type": "string", "title": "the id of the volume" }, "path": { "type": "string", "title": "the path where the volume is mounted to" }, "replica_index": { "type": "integer", "format": "int64", "title": "the replica index to mount the volume to" } } }, "Route": { "type": "object", "properties": { "port": { "type": "integer", "format": "int64" }, "path": { "type": "string" }, "security_policies": { "$ref": "#/definitions/SecurityPolicies" } } }, "Scaling": { "type": "object", "properties": { "min": { "type": "integer", "format": "int64" }, "max": { "type": "integer", "format": "int64" }, "targets": { "type": "array", "items": { "$ref": "#/definitions/DeploymentScalingTarget" } } } }, "TCPHealthCheck": { "type": "object", "properties": { "port": { "type": "integer", "format": "int64", "title": "The port to use to perform the health check, must be declared in the ports section" } } }, "CreateSnapshotReply": { "type": "object", "properties": { "snapshot": { "$ref": "#/definitions/Snapshot" } } }, "CreateSnapshotRequest": { "type": "object", "properties": { "parent_volume_id": { "type": "string", "title": "The id of the volume to snapshot" }, "name": { "type": "string", "title": "The name of the snapshot" }, "project_id": { "type": "string", "title": "(Optional) The project ID to associate with the snapshot" } } }, "DeleteSnapshotReply": { "type": "object", "properties": { "snapshot": { "$ref": "#/definitions/Snapshot" } } }, "GetSnapshotReply": { "type": "object", "properties": { "snapshot": { "$ref": "#/definitions/Snapshot" } } }, "ListSnapshotsReply": { "type": "object", "properties": { "snapshots": { "type": "array", "items": { "$ref": "#/definitions/Snapshot" }, "title": "The collection of snapshots" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "Snapshot": { "type": "object", "properties": { "id": { "type": "string", "title": "the identifier of the snapshot object" }, "name": { "type": "string", "title": "the snapshot name" }, "size": { "type": "integer", "format": "int64", "title": "the original volume size" }, "created_at": { "type": "string", "format": "date-time", "title": "creation timestamp" }, "updated_at": { "type": "string", "format": "date-time", "title": "last change timestamp" }, "deleted_at": { "type": "string", "format": "date-time", "title": "deletion timestamp" }, "organization_id": { "type": "string", "title": "the organization to which the snapshot belongs to" }, "parent_volume_id": { "type": "string", "title": "the volume from which the snapshot has been created" }, "region": { "type": "string", "title": "the region where the snapshot resides, if any" }, "status": { "$ref": "#/definitions/SnapshotStatus", "title": "the status of the snapshot" }, "type": { "$ref": "#/definitions/SnapshotType", "title": "the type of snapshot (can be local or remote)" } }, "description": "The object that represents a snapshot. It can either be local, on a node, or remote, in a cold storage." }, "SnapshotStatus": { "type": "string", "enum": [ "SNAPSHOT_STATUS_INVALID", "SNAPSHOT_STATUS_CREATING", "SNAPSHOT_STATUS_AVAILABLE", "SNAPSHOT_STATUS_MIGRATING", "SNAPSHOT_STATUS_DELETING", "SNAPSHOT_STATUS_DELETED" ], "default": "SNAPSHOT_STATUS_INVALID", "title": "- SNAPSHOT_STATUS_INVALID: zero value, invalid\n - SNAPSHOT_STATUS_CREATING: the snapshot is being created\n - SNAPSHOT_STATUS_AVAILABLE: the snapshot is complete and available\n - SNAPSHOT_STATUS_MIGRATING: the snapshot is being migrated\n - SNAPSHOT_STATUS_DELETING: the snapshot is being deleted\n - SNAPSHOT_STATUS_DELETED: the snapshot is deleted" }, "SnapshotType": { "type": "string", "enum": [ "SNAPSHOT_TYPE_INVALID", "SNAPSHOT_TYPE_LOCAL", "SNAPSHOT_TYPE_REMOTE" ], "default": "SNAPSHOT_TYPE_INVALID", "title": "- SNAPSHOT_TYPE_INVALID: zero value, invalid\n - SNAPSHOT_TYPE_LOCAL: the snapshot is local to the machine\n - SNAPSHOT_TYPE_REMOTE: the snapshot is remote in a cold storage" }, "UpdateSnapshotReply": { "type": "object", "properties": { "snapshot": { "$ref": "#/definitions/Snapshot" } } }, "ArchiveDeploymentMetadata": { "type": "object", "properties": { "last_provisioned_deployment_id": { "type": "string" } } }, "AutoRelease": { "type": "object", "properties": { "groups": { "type": "array", "items": { "$ref": "#/definitions/AutoRelease.Group" } } } }, "AutoRelease.Group": { "type": "object", "properties": { "name": { "type": "string" }, "repository": { "type": "string" }, "git_ref": { "type": "string", "title": "A git ref to track (.e.g: refs/tags/ or refs/heads/" }, "latest_sha": { "type": "string", "title": "The last hash that was resolved (used to avoid triggering releases when things haven't changed)" } }, "title": "Configuration extracted from the latest deployment in this deployment_group" }, "AutocompleteReply": { "type": "object", "properties": { "secrets": { "type": "array", "items": { "type": "string" }, "title": "List of available secrets" }, "user_env": { "type": "array", "items": { "type": "string" }, "title": "List of available user's environment variables" }, "system_env": { "type": "array", "items": { "type": "string" }, "title": "List of available system's environment variables" } } }, "AutocompleteRequest": { "type": "object", "properties": { "definition": { "$ref": "#/definitions/DeploymentDefinition", "title": "Deployment definition" } } }, "CreateService": { "type": "object", "properties": { "app_id": { "type": "string" }, "definition": { "$ref": "#/definitions/DeploymentDefinition" }, "life_cycle": { "$ref": "#/definitions/ServiceLifeCycle" }, "project_id": { "type": "string", "title": "(Optional) The project ID to associate with the service" } } }, "CreateServiceReply": { "type": "object", "properties": { "service": { "$ref": "#/definitions/Service", "title": "The entity created" } } }, "DatabaseDeploymentMetadata": { "type": "object", "properties": { "neon_postgres": { "$ref": "#/definitions/NeonPostgresDatabaseDeploymentMetadata" } } }, "DatabaseSource": { "type": "object", "properties": { "neon_postgres": { "$ref": "#/definitions/NeonPostgresDatabase" } } }, "DeleteServiceReply": { "type": "object" }, "DeleteServiceScalingReply": { "type": "object", "title": "Empty reply - success is indicated by no error" }, "Deployment": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "allocated_at": { "type": "string", "format": "date-time" }, "started_at": { "type": "string", "format": "date-time" }, "succeeded_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" }, "parent_id": { "type": "string" }, "child_id": { "type": "string" }, "status": { "$ref": "#/definitions/Deployment.Status" }, "metadata": { "$ref": "#/definitions/DeploymentMetadata" }, "definition": { "$ref": "#/definitions/DeploymentDefinition" }, "messages": { "type": "array", "items": { "type": "string" } }, "provisioning_info": { "$ref": "#/definitions/DeploymentProvisioningInfo" }, "database_info": { "$ref": "#/definitions/DeploymentDatabaseInfo" }, "skip_build": { "type": "boolean" }, "role": { "$ref": "#/definitions/Deployment.Role" }, "version": { "type": "string", "format": "uint64" }, "deployment_group": { "type": "string" } } }, "Deployment.Role": { "type": "string", "enum": [ "INVALID", "ACTIVE", "UPCOMING", "CURRENT" ], "default": "INVALID" }, "Deployment.Status": { "type": "string", "enum": [ "PENDING", "PROVISIONING", "SCHEDULED", "CANCELING", "CANCELED", "ALLOCATING", "STARTING", "HEALTHY", "DEGRADED", "UNHEALTHY", "STOPPING", "STOPPED", "ERRORING", "ERROR", "STASHED", "SLEEPING" ], "default": "PENDING" }, "DeploymentDatabaseInfo": { "type": "object", "properties": { "neon_postgres": { "$ref": "#/definitions/DeploymentNeonPostgresDatabaseInfo" } } }, "DeploymentDefinition": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "$ref": "#/definitions/DeploymentDefinition.Type" }, "strategy": { "$ref": "#/definitions/DeploymentStrategy" }, "routes": { "type": "array", "items": { "$ref": "#/definitions/DeploymentRoute" } }, "ports": { "type": "array", "items": { "$ref": "#/definitions/DeploymentPort" } }, "proxy_ports": { "type": "array", "items": { "$ref": "#/definitions/DeploymentProxyPort" } }, "env": { "type": "array", "items": { "$ref": "#/definitions/DeploymentEnv" } }, "regions": { "type": "array", "items": { "type": "string" } }, "scalings": { "type": "array", "items": { "$ref": "#/definitions/DeploymentScaling" } }, "instance_types": { "type": "array", "items": { "$ref": "#/definitions/DeploymentInstanceType" } }, "health_checks": { "type": "array", "items": { "$ref": "#/definitions/DeploymentHealthCheck" } }, "volumes": { "type": "array", "items": { "$ref": "#/definitions/DeploymentVolume" } }, "config_files": { "type": "array", "items": { "$ref": "#/definitions/ConfigFile" } }, "skip_cache": { "type": "boolean" }, "docker": { "$ref": "#/definitions/DockerSource" }, "git": { "$ref": "#/definitions/GitSource" }, "database": { "$ref": "#/definitions/DatabaseSource" }, "archive": { "$ref": "#/definitions/ArchiveSource" } } }, "DeploymentDefinition.Type": { "type": "string", "enum": [ "INVALID", "WEB", "WORKER", "DATABASE", "SANDBOX" ], "default": "INVALID" }, "DeploymentEnv": { "type": "object", "properties": { "scopes": { "type": "array", "items": { "type": "string" } }, "key": { "type": "string" }, "value": { "type": "string" }, "secret": { "type": "string" } } }, "DeploymentInstanceType": { "type": "object", "properties": { "scopes": { "type": "array", "items": { "type": "string" } }, "type": { "type": "string" } } }, "DeploymentMetadata": { "type": "object", "properties": { "trigger": { "$ref": "#/definitions/TriggerDeploymentMetadata" }, "database": { "$ref": "#/definitions/DatabaseDeploymentMetadata" }, "git": { "$ref": "#/definitions/GitDeploymentMetadata" }, "archive": { "$ref": "#/definitions/ArchiveDeploymentMetadata" }, "proxy_ports": { "type": "array", "items": { "$ref": "#/definitions/DeploymentProxyPortMetadata" } } } }, "DeploymentNeonPostgresDatabaseInfo": { "type": "object", "properties": { "active_time_seconds": { "type": "string", "format": "int64" }, "compute_time_seconds": { "type": "string", "format": "int64" }, "written_data_bytes": { "type": "string", "format": "int64" }, "data_transfer_bytes": { "type": "string", "format": "int64" }, "data_storage_bytes_hour": { "type": "string", "format": "int64" }, "server_host": { "type": "string" }, "server_port": { "type": "integer", "format": "int64" }, "endpoint_state": { "type": "string" }, "endpoint_last_active": { "type": "string", "format": "date-time" }, "default_branch_id": { "type": "string" }, "default_branch_name": { "type": "string" }, "default_branch_state": { "type": "string" }, "default_branch_logical_size": { "type": "string", "format": "int64" }, "roles": { "type": "array", "items": { "$ref": "#/definitions/DeploymentNeonPostgresDatabaseInfoRole" } } } }, "DeploymentNeonPostgresDatabaseInfoRole": { "type": "object", "properties": { "name": { "type": "string" }, "secret_id": { "type": "string" } } }, "DeploymentPort": { "type": "object", "properties": { "port": { "type": "integer", "format": "int64" }, "protocol": { "type": "string", "title": "One of http, http2, tcp" } } }, "DeploymentProxyPort": { "type": "object", "properties": { "port": { "type": "integer", "format": "int64" }, "protocol": { "$ref": "#/definitions/ProxyPortProtocol" } } }, "DeploymentProxyPortMetadata": { "type": "object", "properties": { "host": { "type": "string" }, "public_port": { "type": "integer", "format": "int64" }, "port": { "type": "integer", "format": "int64" }, "protocol": { "$ref": "#/definitions/ProxyPortProtocol" } } }, "DeploymentRoute": { "type": "object", "properties": { "port": { "type": "integer", "format": "int64" }, "path": { "type": "string" }, "security_policies": { "$ref": "#/definitions/SecurityPolicies" } } }, "DeploymentScaling": { "type": "object", "properties": { "scopes": { "type": "array", "items": { "type": "string" } }, "min": { "type": "integer", "format": "int64" }, "max": { "type": "integer", "format": "int64" }, "targets": { "type": "array", "items": { "$ref": "#/definitions/DeploymentScalingTarget" } } } }, "DeploymentVolume": { "type": "object", "properties": { "id": { "type": "string", "title": "the id of the volume" }, "path": { "type": "string", "title": "the path where the volume is mounted to" }, "replica_index": { "type": "integer", "format": "int64", "title": "optionally, explicitly choose the replica index to mount the volume to" }, "scopes": { "type": "array", "items": { "type": "string" }, "title": "scope of the associated" } } }, "DesiredDeployment": { "type": "object", "properties": { "groups": { "type": "array", "items": { "$ref": "#/definitions/DesiredDeployment.Group" } } } }, "DesiredDeployment.Group": { "type": "object", "properties": { "name": { "type": "string" }, "deployment_ids": { "type": "array", "items": { "type": "string" } } } }, "GetServiceReply": { "type": "object", "properties": { "service": { "$ref": "#/definitions/Service", "title": "The Service retrieved" } } }, "GetServiceScalingReply": { "type": "object", "properties": { "scalings": { "type": "array", "items": { "$ref": "#/definitions/ManualServiceScaling" }, "title": "The current manual scaling configuration" } } }, "GitDeploymentMetadata": { "type": "object", "properties": { "last_provisioned_deployment_id": { "type": "string" }, "git_env": { "$ref": "#/definitions/GitEnvDeploymentMetadata" } } }, "GitEnvDeploymentMetadata": { "type": "object", "properties": { "sha": { "type": "string" }, "commit_author": { "type": "string" }, "commit_message": { "type": "string" } } }, "ListServiceEventsReply": { "type": "object", "properties": { "events": { "type": "array", "items": { "$ref": "#/definitions/ServiceEvent" }, "title": "The collection of events" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "order": { "type": "string", "title": "The order in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "ListServicesReply": { "type": "object", "properties": { "services": { "type": "array", "items": { "$ref": "#/definitions/ServiceListItem" } }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "ManualServiceScaling": { "type": "object", "properties": { "scopes": { "type": "array", "items": { "type": "string" } }, "instances": { "type": "integer", "format": "int64" } } }, "NeonPostgresDatabase": { "type": "object", "properties": { "pg_version": { "type": "integer", "format": "int64" }, "region": { "type": "string" }, "instance_type": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/definitions/NeonPostgresDatabase.NeonRole" } }, "databases": { "type": "array", "items": { "$ref": "#/definitions/NeonPostgresDatabase.NeonDatabase" } } } }, "NeonPostgresDatabase.NeonDatabase": { "type": "object", "properties": { "name": { "type": "string" }, "owner": { "type": "string" } } }, "NeonPostgresDatabase.NeonRole": { "type": "object", "properties": { "name": { "type": "string" }, "secret": { "type": "string" } } }, "NeonPostgresDatabaseDeploymentMetadata": { "type": "object", "properties": { "reset_role_passwords": { "type": "array", "items": { "type": "string" } } } }, "PauseServiceReply": { "type": "object" }, "ProxyPortProtocol": { "type": "string", "enum": [ "tcp" ], "default": "tcp" }, "RedeployReply": { "type": "object", "properties": { "deployment": { "$ref": "#/definitions/Deployment", "title": "The entity updated" } } }, "RedeployRequest.Info": { "type": "object", "properties": { "deployment_group": { "type": "string" }, "sha": { "type": "string" }, "use_cache": { "type": "boolean" }, "skip_build": { "type": "boolean", "description": "If set to true, the build stage will be skipped and the image coming from the last successful build step will be used instead.\nThe call fails if no previous successful builds happened." } } }, "ResumeServiceReply": { "type": "object" }, "Service": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "started_at": { "type": "string", "format": "date-time" }, "succeeded_at": { "type": "string", "format": "date-time" }, "paused_at": { "type": "string", "format": "date-time" }, "resumed_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" }, "name": { "type": "string" }, "type": { "$ref": "#/definitions/Service.Type" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "status": { "$ref": "#/definitions/Service.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "version": { "type": "string", "format": "uint64" }, "active_deployment_id": { "type": "string" }, "latest_deployment_id": { "type": "string" }, "last_provisioned_deployment_id": { "type": "string" }, "state": { "$ref": "#/definitions/ServiceState", "title": "Legacy stuff" }, "life_cycle": { "$ref": "#/definitions/ServiceLifeCycle" } } }, "Service.Status": { "type": "string", "enum": [ "STARTING", "HEALTHY", "DEGRADED", "UNHEALTHY", "DELETING", "DELETED", "PAUSING", "PAUSED", "RESUMING" ], "default": "STARTING" }, "Service.Type": { "type": "string", "enum": [ "INVALID_TYPE", "WEB", "WORKER", "DATABASE", "SANDBOX" ], "default": "INVALID_TYPE" }, "ServiceEvent": { "type": "object", "properties": { "id": { "type": "string" }, "when": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "service_id": { "type": "string" }, "type": { "type": "string" }, "message": { "type": "string" }, "metadata": { "type": "object" } } }, "ServiceLifeCycle": { "type": "object", "properties": { "delete_after_sleep": { "type": "integer", "format": "int64" }, "delete_after_create": { "type": "integer", "format": "int64" } } }, "ServiceListItem": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "$ref": "#/definitions/Service.Type" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "updated_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/definitions/Service.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "version": { "type": "string", "format": "uint64", "title": "A version updated whenever this state changes (useful for caching)" }, "state": { "$ref": "#/definitions/ServiceState" }, "active_deployment_id": { "type": "string" }, "latest_deployment_id": { "type": "string" }, "life_cycle": { "$ref": "#/definitions/ServiceLifeCycle" } } }, "ServiceState": { "type": "object", "properties": { "desired_deployment": { "$ref": "#/definitions/DesiredDeployment" }, "auto_release": { "$ref": "#/definitions/AutoRelease" } } }, "TriggerDeploymentMetadata": { "type": "object", "properties": { "type": { "$ref": "#/definitions/TriggerDeploymentMetadata.TriggerType" }, "actor": { "$ref": "#/definitions/TriggerDeploymentMetadata.ActorType" }, "git": { "$ref": "#/definitions/TriggerGitDeploymentMetadata" } } }, "TriggerDeploymentMetadata.ActorType": { "type": "string", "enum": [ "UNKNOWN_ACTOR", "USER", "SYSTEM" ], "default": "UNKNOWN_ACTOR" }, "TriggerDeploymentMetadata.TriggerType": { "type": "string", "enum": [ "UNKNOWN_TYPE", "GIT", "RESUME", "DATABASE_SYNC" ], "default": "UNKNOWN_TYPE" }, "TriggerGitDeploymentMetadata": { "type": "object", "properties": { "provider": { "$ref": "#/definitions/TriggerGitDeploymentMetadata.Provider" }, "repository": { "type": "string" }, "branch": { "type": "string" }, "sha": { "type": "string" }, "message": { "type": "string" }, "sender_username": { "type": "string" }, "sender_avatar_url": { "type": "string" }, "sender_profile_url": { "type": "string" } } }, "TriggerGitDeploymentMetadata.Provider": { "type": "string", "enum": [ "UNKNOWN", "GITHUB" ], "default": "UNKNOWN" }, "UpdateService": { "type": "object", "properties": { "definition": { "$ref": "#/definitions/DeploymentDefinition" }, "metadata": { "$ref": "#/definitions/DeploymentMetadata" }, "skip_build": { "type": "boolean", "description": "If set to true, the build stage will be skipped and the image coming from the last successful build step will be used instead.\nThe call fails if no previous successful builds happened." }, "save_only": { "type": "boolean", "title": "If set, do not trigger a deployment, only store the new settings" }, "life_cycle": { "$ref": "#/definitions/ServiceLifeCycle" } } }, "UpdateServiceReply": { "type": "object", "properties": { "service": { "$ref": "#/definitions/Service", "title": "The entity updated" } } }, "UpdateServiceScalingReply": { "type": "object", "title": "Empty reply - success is indicated by no error" }, "CancelDeploymentReply": { "type": "object" }, "DeploymentEvent": { "type": "object", "properties": { "id": { "type": "string" }, "when": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "deployment_id": { "type": "string" }, "type": { "type": "string" }, "message": { "type": "string" }, "metadata": { "type": "object" } } }, "DeploymentListItem": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "allocated_at": { "type": "string", "format": "date-time" }, "started_at": { "type": "string", "format": "date-time" }, "succeeded_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" }, "parent_id": { "type": "string" }, "child_id": { "type": "string" }, "status": { "$ref": "#/definitions/Deployment.Status" }, "metadata": { "$ref": "#/definitions/DeploymentMetadata" }, "definition": { "$ref": "#/definitions/DeploymentDefinition" }, "messages": { "type": "array", "items": { "type": "string" } }, "provisioning_info": { "$ref": "#/definitions/DeploymentProvisioningInfo" }, "database_info": { "$ref": "#/definitions/DeploymentDatabaseInfo" }, "version": { "type": "string", "format": "uint64" }, "deployment_group": { "type": "string" } } }, "GetDeploymentReply": { "type": "object", "properties": { "deployment": { "$ref": "#/definitions/Deployment" } } }, "GetDeploymentScalingReply": { "type": "object", "properties": { "replicas": { "type": "array", "items": { "$ref": "#/definitions/GetDeploymentScalingReplyItem" }, "title": "The replicas" } } }, "GetDeploymentScalingReplyItem": { "type": "object", "properties": { "region": { "type": "string", "title": "The replica region" }, "replica_index": { "type": "integer", "format": "int64" }, "instances": { "type": "array", "items": { "$ref": "#/definitions/Instance" }, "description": "An array of `active` and `starting` instances.\n\nStatus of the active instance (and if none the most recent instance)\n string status = 4;\n Status message of the active instance (and if none the most recent instance)\n string message = 5;" } } }, "Instance": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" }, "regional_deployment_id": { "type": "string" }, "allocation_id": { "type": "string" }, "type": { "type": "string" }, "replica_index": { "type": "integer", "format": "int64" }, "region": { "type": "string" }, "datacenter": { "type": "string" }, "hypervisor": { "type": "string" }, "status": { "$ref": "#/definitions/Instance.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "started_at": { "type": "string", "format": "date-time" }, "succeeded_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" }, "xyz_deployment_id": { "type": "string", "description": "WARNING: Please don't use the following attribute.\nKoyeb doesn't guarantee backwards compatible breaking change and reserve the right to completely drop it without notice.\nUSE AT YOUR OWN RISK." } } }, "Instance.Status": { "type": "string", "enum": [ "ALLOCATING", "STARTING", "HEALTHY", "UNHEALTHY", "STOPPING", "STOPPED", "ERROR", "SLEEPING" ], "default": "ALLOCATING" }, "ListDeploymentEventsReply": { "type": "object", "properties": { "events": { "type": "array", "items": { "$ref": "#/definitions/DeploymentEvent" }, "title": "The collection of events" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "order": { "type": "string", "title": "The order in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "ListDeploymentsReply": { "type": "object", "properties": { "deployments": { "type": "array", "items": { "$ref": "#/definitions/DeploymentListItem" }, "title": "The collection of deployments" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "CreateStageAttemptReply": { "type": "object" }, "DeclareStageProgressReply": { "type": "object" }, "DeclareStepProgressReply": { "type": "object" }, "VerifyDockerImageReply": { "type": "object", "properties": { "success": { "type": "boolean", "title": "Whether the image is accessible or not" }, "reason": { "type": "string", "title": "(Optional) If the image is not accessible, the reason" }, "code": { "$ref": "#/definitions/VerifyDockerImageReply.ErrCode", "title": "(Optional) If the image is not accessible, return an error code" } } }, "VerifyDockerImageReply.ErrCode": { "type": "string", "enum": [ "UNKNOWN", "AUTH_ACCESS_DENIED", "ANON_ACCESS_DENIED", "AUTH_NOT_FOUND", "ANON_NOT_FOUND", "REGISTRY_ERROR", "TIMEOUT", "DNS", "MALFORMED", "INVALID_OS", "INVALID_ARCH", "INVALID_SCHEME", "GENERIC" ], "default": "UNKNOWN", "description": "- UNKNOWN: Default value\n - AUTH_ACCESS_DENIED: The registry denied access to an authenticated request\n - ANON_ACCESS_DENIED: The registry denied access to an anonymous request\n - AUTH_NOT_FOUND: The image has not been found after an authenticated request\n - ANON_NOT_FOUND: The image has not been found after an anonymous request\n - REGISTRY_ERROR: The registry returned an error\n - TIMEOUT: The request to the registry timed out\n - DNS: There was an error trying to resolve the name of the registry\n - MALFORMED: The provided image name is malformed\n - INVALID_OS: The operating system is not supported\n - INVALID_ARCH: The architecture is not supported\n - INVALID_SCHEME: The scheme is not https\n - GENERIC: Generic catch-all error code", "title": "The error code associated to each specific failure mode" }, "AzureContainerRegistryConfiguration": { "type": "object", "properties": { "registry_name": { "type": "string" }, "username": { "type": "string" }, "password": { "type": "string" } } }, "CreateSecret": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "$ref": "#/definitions/SecretType" }, "value": { "type": "string" }, "docker_hub_registry": { "$ref": "#/definitions/DockerHubRegistryConfiguration" }, "private_registry": { "$ref": "#/definitions/PrivateRegistryConfiguration" }, "digital_ocean_registry": { "$ref": "#/definitions/DigitalOceanRegistryConfiguration" }, "github_registry": { "$ref": "#/definitions/GitHubRegistryConfiguration" }, "gitlab_registry": { "$ref": "#/definitions/GitLabRegistryConfiguration" }, "gcp_container_registry": { "$ref": "#/definitions/GCPContainerRegistryConfiguration" }, "azure_container_registry": { "$ref": "#/definitions/AzureContainerRegistryConfiguration" }, "project_id": { "type": "string", "title": "(Optional) The project ID to associate with the secret" } } }, "CreateSecretReply": { "type": "object", "properties": { "secret": { "$ref": "#/definitions/Secret" } } }, "DatabaseRolePassword": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" } } }, "DeleteSecretReply": { "type": "object" }, "DigitalOceanRegistryConfiguration": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" } } }, "DockerHubRegistryConfiguration": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" } } }, "GCPContainerRegistryConfiguration": { "type": "object", "properties": { "keyfile_content": { "type": "string" }, "url": { "type": "string" } } }, "GetSecretReply": { "type": "object", "properties": { "secret": { "$ref": "#/definitions/Secret" } } }, "GitHubRegistryConfiguration": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" } } }, "GitLabRegistryConfiguration": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" } } }, "ListSecretsReply": { "type": "object", "properties": { "secrets": { "type": "array", "items": { "$ref": "#/definitions/Secret" } }, "limit": { "type": "integer", "format": "int64" }, "offset": { "type": "integer", "format": "int64" }, "count": { "type": "integer", "format": "int64" } } }, "PrivateRegistryConfiguration": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" }, "url": { "type": "string" } } }, "RevealSecretReply": { "type": "object", "properties": { "value": {} } }, "Secret": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "organization_id": { "type": "string" }, "type": { "$ref": "#/definitions/SecretType" }, "updated_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "value": { "type": "string" }, "docker_hub_registry": { "$ref": "#/definitions/DockerHubRegistryConfiguration" }, "private_registry": { "$ref": "#/definitions/PrivateRegistryConfiguration" }, "digital_ocean_registry": { "$ref": "#/definitions/DigitalOceanRegistryConfiguration" }, "github_registry": { "$ref": "#/definitions/GitHubRegistryConfiguration" }, "gitlab_registry": { "$ref": "#/definitions/GitLabRegistryConfiguration" }, "gcp_container_registry": { "$ref": "#/definitions/GCPContainerRegistryConfiguration" }, "azure_container_registry": { "$ref": "#/definitions/AzureContainerRegistryConfiguration" }, "database_role_password": { "$ref": "#/definitions/DatabaseRolePassword" } } }, "SecretType": { "type": "string", "enum": [ "SIMPLE", "REGISTRY", "MANAGED" ], "default": "SIMPLE" }, "UpdateSecretReply": { "type": "object", "properties": { "secret": { "$ref": "#/definitions/Secret" } } }, "CreateDomain": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "$ref": "#/definitions/Domain.Type" }, "app_id": { "type": "string", "title": "to auto-attach to an app. Optional" }, "cloudflare": { "$ref": "#/definitions/Domain.LoadBalancerCloudflare" }, "koyeb": { "$ref": "#/definitions/Domain.LoadBalancerKoyeb", "description": "Only applicable to auto-assigned domains, for organizations on the Scale plan." }, "project_id": { "type": "string", "title": "(Optional) The project ID to associate with the domain" } } }, "CreateDomainReply": { "type": "object", "properties": { "domain": { "$ref": "#/definitions/Domain" } } }, "DeleteDomainReply": { "type": "object" }, "Domain": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "name": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/definitions/Domain.Status" }, "type": { "$ref": "#/definitions/Domain.Type" }, "app_id": { "type": "string" }, "deployment_group": { "type": "string" }, "verified_at": { "type": "string", "format": "date-time" }, "intended_cname": { "type": "string" }, "messages": { "type": "array", "items": { "type": "string" } }, "version": { "type": "string", "format": "uint64" }, "cloudflare": { "$ref": "#/definitions/Domain.LoadBalancerCloudflare" }, "koyeb": { "$ref": "#/definitions/Domain.LoadBalancerKoyeb" } } }, "Domain.LoadBalancerCloudflare": { "type": "object" }, "Domain.LoadBalancerKoyeb": { "type": "object", "properties": { "request_timeout_seconds": { "type": "integer", "format": "int64", "title": "Between 100 and 900" } } }, "Domain.Status": { "type": "string", "enum": [ "PENDING", "ACTIVE", "ERROR", "DELETING", "DELETED" ], "default": "PENDING" }, "Domain.Type": { "type": "string", "enum": [ "AUTOASSIGNED", "CUSTOM" ], "default": "AUTOASSIGNED", "title": "- AUTOASSIGNED: Domain like -.koyeb.app" }, "GetDomainReply": { "type": "object", "properties": { "domain": { "$ref": "#/definitions/Domain" } } }, "ListDomainsReply": { "type": "object", "properties": { "domains": { "type": "array", "items": { "$ref": "#/definitions/Domain" } }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" } } }, "RefreshDomainStatusReply": { "type": "object" }, "UpdateDomain": { "type": "object", "properties": { "app_id": { "type": "string", "description": "To attach or detach from an app for custom domain." }, "subdomain": { "type": "string", "description": "To change subdomain for auto-assigned domain." } } }, "UpdateDomainReply": { "type": "object", "properties": { "domain": { "$ref": "#/definitions/Domain" } } }, "App": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "organization_id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "started_at": { "type": "string", "format": "date-time" }, "succeeded_at": { "type": "string", "format": "date-time" }, "paused_at": { "type": "string", "format": "date-time" }, "resumed_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/definitions/App.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "version": { "type": "string", "format": "uint64" }, "domains": { "type": "array", "items": { "$ref": "#/definitions/Domain" } }, "life_cycle": { "$ref": "#/definitions/AppLifeCycle" } } }, "App.Status": { "type": "string", "enum": [ "STARTING", "HEALTHY", "DEGRADED", "UNHEALTHY", "DELETING", "DELETED", "PAUSING", "PAUSED", "RESUMING" ], "default": "STARTING" }, "AppEvent": { "type": "object", "properties": { "id": { "type": "string" }, "when": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "type": { "type": "string" }, "message": { "type": "string" }, "metadata": { "type": "object" } } }, "AppLifeCycle": { "type": "object", "properties": { "delete_when_empty": { "type": "boolean" } } }, "AppListItem": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "organization_id": { "type": "string" }, "updated_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "domains": { "type": "array", "items": { "$ref": "#/definitions/Domain" } }, "status": { "$ref": "#/definitions/App.Status" }, "messages": { "type": "array", "items": { "type": "string" } } } }, "CreateApp": { "type": "object", "properties": { "name": { "type": "string" }, "life_cycle": { "$ref": "#/definitions/AppLifeCycle" }, "project_id": { "type": "string", "title": "(Optional) The project ID to associate with the app" } } }, "CreateAppReply": { "type": "object", "properties": { "app": { "$ref": "#/definitions/App", "title": "The entity created" } } }, "DeleteAppReply": { "type": "object" }, "GetAppReply": { "type": "object", "properties": { "app": { "$ref": "#/definitions/App", "title": "The App retrieved" } } }, "ListAppEventsReply": { "type": "object", "properties": { "events": { "type": "array", "items": { "$ref": "#/definitions/AppEvent" }, "title": "The collection of events" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "order": { "type": "string", "title": "The order in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "ListAppsReply": { "type": "object", "properties": { "apps": { "type": "array", "items": { "$ref": "#/definitions/AppListItem" } }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "PauseAppReply": { "type": "object" }, "ResumeAppReply": { "type": "object" }, "UpdateApp": { "type": "object", "properties": { "name": { "type": "string" }, "life_cycle": { "$ref": "#/definitions/AppLifeCycle" } } }, "UpdateAppReply": { "type": "object", "properties": { "app": { "$ref": "#/definitions/App", "title": "The entity updated" } } }, "CreatePersistentVolumeReply": { "type": "object", "properties": { "volume": { "$ref": "#/definitions/PersistentVolume" } } }, "CreatePersistentVolumeRequest": { "type": "object", "properties": { "volume_type": { "$ref": "#/definitions/PersistentVolumeBackingStore", "title": "the volume backing store type" }, "name": { "type": "string", "title": "the volume name" }, "region": { "type": "string", "title": "the volume region" }, "read_only": { "type": "boolean", "title": "whether the volume must be set as read only" }, "max_size": { "type": "integer", "format": "int64", "title": "the size of the volume (in Gigabyte / GB)" }, "snapshot_id": { "type": "string", "title": "(optional) the id of the snapshot whence the volume comes from" }, "project_id": { "type": "string", "title": "(Optional) The project ID to associate with the volume" } } }, "DeletePersistentVolumeReply": { "type": "object", "properties": { "volume": { "$ref": "#/definitions/PersistentVolume" } } }, "GetPersistentVolumeReply": { "type": "object", "properties": { "volume": { "$ref": "#/definitions/PersistentVolume" } } }, "ListPersistentVolumeEventsReply": { "type": "object", "properties": { "events": { "type": "array", "items": { "$ref": "#/definitions/PersistentVolumeEvent" }, "title": "The collection of events" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "order": { "type": "string", "title": "The order in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "ListPersistentVolumesReply": { "type": "object", "properties": { "volumes": { "type": "array", "items": { "$ref": "#/definitions/PersistentVolume" }, "title": "The collection of persistent volumes" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "PersistentVolume": { "type": "object", "properties": { "id": { "type": "string", "title": "the identifier for the volume object" }, "name": { "type": "string", "title": "the volume name" }, "snapshot_id": { "type": "string", "title": "(optional) the id of the snapshot whence the volume comes from" }, "created_at": { "type": "string", "format": "date-time", "title": "creation timestamp" }, "updated_at": { "type": "string", "format": "date-time", "title": "last change timestamp" }, "deleted_at": { "type": "string", "format": "date-time", "title": "deletion timestamp" }, "organization_id": { "type": "string", "title": "the organization to which the volume belongs to" }, "service_id": { "type": "string", "title": "the service_id to which the volume is eventually bound to" }, "region": { "type": "string", "title": "the region where the volume exists" }, "read_only": { "type": "boolean", "title": "whether to mount the volume in read-only mode" }, "max_size": { "type": "integer", "format": "int64", "title": "the maximum size of the volume (in Gigabyte / GB)" }, "cur_size": { "type": "integer", "format": "int64", "title": "the used amount of space as measured the last time (in Gigabyte / GB)" }, "status": { "$ref": "#/definitions/PersistentVolumeStatus", "title": "the status of the volume" }, "backing_store": { "$ref": "#/definitions/PersistentVolumeBackingStore", "title": "the backing store type" } }, "title": "The object that represent a volume to handle persistency for deployments" }, "PersistentVolumeBackingStore": { "type": "string", "enum": [ "PERSISTENT_VOLUME_BACKING_STORE_INVALID", "PERSISTENT_VOLUME_BACKING_STORE_LOCAL_BLK" ], "default": "PERSISTENT_VOLUME_BACKING_STORE_INVALID", "title": "- PERSISTENT_VOLUME_BACKING_STORE_INVALID: zero value, invalid\n - PERSISTENT_VOLUME_BACKING_STORE_LOCAL_BLK: the backing store is a locally reachable block device" }, "PersistentVolumeEvent": { "type": "object", "properties": { "id": { "type": "string" }, "when": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "persistent_volume_id": { "type": "string" }, "type": { "type": "string" }, "message": { "type": "string" }, "metadata": { "type": "object" } } }, "PersistentVolumeStatus": { "type": "string", "enum": [ "PERSISTENT_VOLUME_STATUS_INVALID", "PERSISTENT_VOLUME_STATUS_ATTACHED", "PERSISTENT_VOLUME_STATUS_DETACHED", "PERSISTENT_VOLUME_STATUS_DELETING", "PERSISTENT_VOLUME_STATUS_DELETED", "PERSISTENT_VOLUME_STATUS_ARCHIVING" ], "default": "PERSISTENT_VOLUME_STATUS_INVALID", "title": "- PERSISTENT_VOLUME_STATUS_INVALID: zero value, invalid\n - PERSISTENT_VOLUME_STATUS_ATTACHED: the volume is attached to an instance\n - PERSISTENT_VOLUME_STATUS_DETACHED: the volume is free to use\n - PERSISTENT_VOLUME_STATUS_DELETING: the volume will be deleted\n - PERSISTENT_VOLUME_STATUS_DELETED: the volume was deleted\n - PERSISTENT_VOLUME_STATUS_ARCHIVING: the volume is being archived (snapshot being created and migrated to remote storage)" }, "UpdatePersistentVolumeReply": { "type": "object", "properties": { "volume": { "$ref": "#/definitions/PersistentVolume" } } }, "Archive": { "type": "object", "properties": { "id": { "type": "string", "description": "The archive id, that can be referenced when creating or updating a service." }, "organization_id": { "type": "string", "description": "Organization owning the archive." }, "upload_url": { "type": "string", "description": "The URL where to upload the archive. This URL is signed and can only be\nused to upload the archive until `valid_until`." }, "size": { "type": "string", "format": "uint64", "description": "The provisioned space for the archive." }, "created_at": { "type": "string", "format": "date-time", "description": "Date of creation of the archive." }, "deleted_at": { "type": "string", "format": "date-time", "description": "This field is automatically set by Koyeb when the\narchive is garbage collected." } } }, "CreateArchive": { "type": "object", "properties": { "size": { "type": "string", "format": "uint64", "description": "How much space to provision for the archive, in bytes." }, "project_id": { "type": "string", "title": "(Optional) The project ID to associate with the archive" } } }, "CreateArchiveReply": { "type": "object", "properties": { "archive": { "$ref": "#/definitions/Archive" } } }, "GetInstanceReply": { "type": "object", "properties": { "instance": { "$ref": "#/definitions/Instance" } } }, "InstanceEvent": { "type": "object", "properties": { "id": { "type": "string" }, "when": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "instance_id": { "type": "string" }, "type": { "type": "string" }, "message": { "type": "string" }, "metadata": { "type": "object" } } }, "InstanceListItem": { "type": "object", "properties": { "id": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" }, "regional_deployment_id": { "type": "string" }, "allocation_id": { "type": "string" }, "type": { "type": "string" }, "replica_index": { "type": "integer", "format": "int64" }, "region": { "type": "string" }, "datacenter": { "type": "string" }, "status": { "$ref": "#/definitions/Instance.Status" }, "messages": { "type": "array", "items": { "type": "string" } }, "xyz_deployment_id": { "type": "string", "description": "WARNING: Please don't use the following attribute.\nKoyeb doesn't guarantee backwards compatible breaking change and reserve the right to completely drop it without notice.\nUSE AT YOUR OWN RISK." } } }, "ListInstanceEventsReply": { "type": "object", "properties": { "events": { "type": "array", "items": { "$ref": "#/definitions/InstanceEvent" }, "title": "The collection of events" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "order": { "type": "string", "title": "The order in the request" }, "has_next": { "type": "boolean", "title": "If there is more items after in the collection" } } }, "ListInstancesReply": { "type": "object", "properties": { "instances": { "type": "array", "items": { "$ref": "#/definitions/InstanceListItem" }, "title": "The collection of instances" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" }, "order": { "type": "string", "title": "The order in the request" } } }, "ReviewOrganizationCapacityReply": { "type": "object", "properties": { "has_capacity": { "type": "boolean" } } }, "ReviewOrganizationCapacityRequest": { "type": "object", "properties": { "plan": { "type": "string" }, "trialing": { "type": "boolean" } } }, "ComposeReply": { "type": "object", "properties": { "app": { "$ref": "#/definitions/App" }, "services": { "type": "array", "items": { "$ref": "#/definitions/Service" } } } }, "CreateCompose": { "type": "object", "properties": { "app": { "$ref": "#/definitions/CreateApp" }, "services": { "type": "array", "items": { "$ref": "#/definitions/CreateService" } } } }, "AppUsage": { "type": "object", "properties": { "app_id": { "type": "string" }, "app_name": { "type": "string" }, "services": { "type": "array", "items": { "$ref": "#/definitions/ServiceUsage" } }, "databases": { "type": "array", "items": { "$ref": "#/definitions/DatabaseUsage" } } } }, "DatabaseUsage": { "type": "object", "properties": { "service_id": { "type": "string" }, "service_name": { "type": "string" }, "compute_time_seconds": { "type": "integer", "format": "int64" }, "data_storage_megabytes_hours": { "type": "integer", "format": "int64" } } }, "DatabaseUsageDetails": { "type": "object", "properties": { "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "app_name": { "type": "string" }, "service_id": { "type": "string" }, "service_name": { "type": "string" }, "compute_time_seconds": { "type": "integer", "format": "int64" }, "data_storage_megabytes_hour": { "type": "integer", "format": "int64" }, "started_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" } } }, "GetOrganizationUsageDetailsReply": { "type": "object", "properties": { "usage_details": { "type": "array", "items": { "$ref": "#/definitions/UsageDetails" }, "title": "The collection of usage instances" }, "database_details": { "type": "array", "items": { "$ref": "#/definitions/DatabaseUsageDetails" }, "title": "The collection of database deployments used during the month" }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" }, "order": { "type": "string", "title": "The order in the request" } } }, "GetOrganizationUsageReply": { "type": "object", "properties": { "usage": { "$ref": "#/definitions/Usage", "title": "The computed usage of instances per month" } } }, "InstanceUsage": { "type": "object", "properties": { "duration_seconds": { "type": "integer", "format": "int64" } } }, "PeriodUsage": { "type": "object", "properties": { "starting_time": { "type": "string", "format": "date-time" }, "ending_time": { "type": "string", "format": "date-time" }, "apps": { "type": "array", "items": { "$ref": "#/definitions/AppUsage" } } } }, "RegionUsage": { "type": "object", "properties": { "instances": { "type": "object", "additionalProperties": { "$ref": "#/definitions/InstanceUsage" } } } }, "ServiceUsage": { "type": "object", "properties": { "service_id": { "type": "string" }, "service_name": { "type": "string" }, "regions": { "type": "object", "additionalProperties": { "$ref": "#/definitions/RegionUsage" } } } }, "Usage": { "type": "object", "properties": { "organization_id": { "type": "string" }, "periods": { "type": "object", "additionalProperties": { "$ref": "#/definitions/PeriodUsage" } } } }, "UsageDetails": { "type": "object", "properties": { "organization_id": { "type": "string" }, "instance_id": { "type": "string" }, "app_id": { "type": "string" }, "app_name": { "type": "string" }, "service_id": { "type": "string" }, "service_name": { "type": "string" }, "regional_deployment_id": { "type": "string" }, "region": { "type": "string" }, "deployment_id": { "type": "string" }, "instance_type": { "type": "string" }, "duration_seconds": { "type": "integer", "format": "int64" }, "started_at": { "type": "string", "format": "date-time" }, "terminated_at": { "type": "string", "format": "date-time" } } }, "GetRegionReply": { "type": "object", "properties": { "region": { "$ref": "#/definitions/Region", "title": "The Region retrieved" } } }, "ListRegionsReply": { "type": "object", "properties": { "regions": { "type": "array", "items": { "$ref": "#/definitions/RegionListItem" } }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" } } }, "Region": { "type": "object", "properties": { "id": { "type": "string", "title": "The id of the region" }, "name": { "type": "string", "title": "The name of the region" }, "coordinates": { "type": "array", "items": { "type": "string" }, "title": "The coordinates of the region (lat/long)" }, "status": { "type": "string", "title": "The status of the region" }, "instances": { "type": "array", "items": { "type": "string" }, "title": "A list of instances available in this region" }, "datacenters": { "type": "array", "items": { "type": "string" }, "title": "A list of datacenters available in this region" }, "volumes_enabled": { "type": "boolean", "title": "Are the volumes enabled for this instance type" }, "scope": { "type": "string", "description": "The scope of the region, continent, metropolitan area, etc." } } }, "RegionListItem": { "type": "object", "properties": { "id": { "type": "string", "title": "The id of the region" }, "name": { "type": "string", "title": "The name of the region" }, "coordinates": { "type": "array", "items": { "type": "string" }, "title": "The coordinates of the region (lat/long)" }, "status": { "type": "string", "title": "The status of the region" }, "instances": { "type": "array", "items": { "type": "string" }, "title": "A list of instances available in this region" }, "datacenters": { "type": "array", "items": { "type": "string" }, "title": "A list of datacenters available in this region" }, "volumes_enabled": { "type": "boolean", "title": "Are the volumes enabled for this instance type" }, "scope": { "type": "string", "description": "The scope of the region, continent, metropolitan area, etc." } } }, "AvailabilityLevel": { "type": "string", "enum": [ "UNKNOWN", "LOW", "MEDIUM", "HIGH" ], "default": "UNKNOWN" }, "CatalogUsage": { "type": "object", "properties": { "instances": { "type": "object", "additionalProperties": { "$ref": "#/definitions/InstanceAvailability" } } } }, "InstanceAvailability": { "type": "object", "properties": { "regions": { "type": "object", "additionalProperties": { "$ref": "#/definitions/RegionAvailability" } }, "availability": { "$ref": "#/definitions/AvailabilityLevel" } } }, "ListUsageReply": { "type": "object", "properties": { "usage": { "$ref": "#/definitions/CatalogUsage", "title": "The Usage retrieved" } } }, "RegionAvailability": { "type": "object", "properties": { "availability": { "$ref": "#/definitions/AvailabilityLevel" } } }, "CatalogGPUDetails": { "type": "object", "properties": { "count": { "type": "integer", "format": "int64", "title": "The number of GPUs" }, "brand": { "type": "string", "title": "The brand of GPU" }, "memory": { "type": "string", "title": "GPU memory" }, "name": { "type": "string", "title": "Name of GPU" } } }, "CatalogInstance": { "type": "object", "properties": { "id": { "type": "string", "title": "The name of the instance" }, "description": { "type": "string", "title": "A short description of the instance" }, "vcpu": { "type": "integer", "format": "int64", "description": "The number of cpus. Deprecated. Use vcpu_shares instead." }, "memory": { "type": "string", "title": "The memory in bytes in a format like 5MB" }, "disk": { "type": "string", "title": "The size of the disk in bytes in a format like 5MB" }, "price_per_second": { "type": "string", "title": "The price to pay per second" }, "price_hourly": { "type": "string", "title": "The price to pay per hour" }, "price_monthly": { "type": "string", "title": "The price to pay per month" }, "regions": { "type": "array", "items": { "type": "string" }, "title": "The regions where this instance type is available" }, "status": { "type": "string", "title": "The status of the instance" }, "require_plan": { "type": "array", "items": { "type": "string" }, "title": "The plan required to use instance" }, "vcpu_shares": { "type": "number", "format": "float", "description": "The number of vcpu shares reserved for the instance." }, "display_name": { "type": "string", "title": "The display name of the instance" }, "aliases": { "type": "array", "items": { "type": "string" }, "title": "Aliases" }, "type": { "type": "string", "title": "The type of the instance (e.g. \"gpu\")" }, "gpu": { "$ref": "#/definitions/CatalogGPUDetails", "title": "GPU details" }, "service_types": { "type": "array", "items": { "type": "string" }, "title": "Allowed service types for this instance (e.g. [\"web\", \"worker\"])" }, "volumes_enabled": { "type": "boolean", "title": "Are the volumes enabled for this instance type" }, "light_sleep_enabled": { "type": "boolean", "title": "Is light sleep enabled for this instance type" } } }, "CatalogInstanceListItem": { "type": "object", "properties": { "id": { "type": "string", "title": "The name of the instance" }, "description": { "type": "string", "title": "A short description of the instance" }, "vcpu": { "type": "integer", "format": "int64", "description": "The number of cpus. Deprecated. Use vcpu_shares instead." }, "memory": { "type": "string", "title": "The memory in bytes in a format like 5MB" }, "disk": { "type": "string", "title": "The size of the disk in bytes in a format like 5MB" }, "price_per_second": { "type": "string", "title": "The price to pay per second" }, "price_hourly": { "type": "string", "title": "The price to pay per hour" }, "price_monthly": { "type": "string", "title": "The price to pay per month" }, "regions": { "type": "array", "items": { "type": "string" }, "title": "The regions where this instance type is available" }, "status": { "type": "string", "title": "The status of the instance" }, "require_plan": { "type": "array", "items": { "type": "string" }, "title": "The plan required to use instance" }, "vcpu_shares": { "type": "number", "format": "float", "description": "The number of vcpu shares reserved for the instance." }, "display_name": { "type": "string", "title": "The display name of the instance" }, "aliases": { "type": "array", "items": { "type": "string" }, "title": "Aliases" }, "type": { "type": "string", "title": "The type of the instance (e.g. \"gpu\")" }, "gpu": { "$ref": "#/definitions/CatalogGPUDetails", "title": "GPU details" }, "service_types": { "type": "array", "items": { "type": "string" }, "title": "Allowed service types for this instance (e.g. [\"web\", \"worker\"])" }, "volumes_enabled": { "type": "boolean", "title": "Are the volumes enabled for this instance type" }, "light_sleep_enabled": { "type": "boolean", "title": "Is light sleep enabled for this instance type" } } }, "GetCatalogInstanceReply": { "type": "object", "properties": { "instance": { "$ref": "#/definitions/CatalogInstance", "title": "The instance retrieved" } } }, "ListCatalogInstancesReply": { "type": "object", "properties": { "instances": { "type": "array", "items": { "$ref": "#/definitions/CatalogInstanceListItem" } }, "limit": { "type": "integer", "format": "int64", "title": "The limit in the request" }, "offset": { "type": "integer", "format": "int64", "title": "The offset in the request" }, "count": { "type": "integer", "format": "int64", "title": "The total number of items" } } }, "DatacenterListItem": { "type": "object", "properties": { "id": { "type": "string", "title": "e.g. \"par1\"" }, "region_id": { "type": "string", "title": "e.g. \"par\"" }, "domain": { "type": "string", "title": "e.g. \"all-par1.infra.prod.koyeb.com\"" }, "coordinates": { "type": "array", "items": { "type": "string" }, "title": "e.g. \"8.856614\" ,\"2.352221\"?" }, "use_gpu": { "type": "boolean", "title": "e.g. true" }, "regions": { "type": "array", "items": { "type": "string" }, "title": "e.g. \"par\", \"fra\"" } } }, "ListDatacentersReply": { "type": "object", "properties": { "datacenters": { "type": "array", "items": { "$ref": "#/definitions/DatacenterListItem" } } } }, "ksearch.App": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "name": { "type": "string" } } }, "ksearch.GlobalDeployment": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" } } }, "ksearch.Instance": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" }, "allocation_id": { "type": "string" } } }, "ksearch.Organization": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } }, "ksearch.RegionalDeployment": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "service_id": { "type": "string" }, "region": { "type": "string" } } }, "ksearch.SearchReply": { "type": "object", "properties": { "organizations": { "type": "array", "items": { "$ref": "#/definitions/ksearch.Organization" } }, "users": { "type": "array", "items": { "$ref": "#/definitions/ksearch.User" } }, "apps": { "type": "array", "items": { "$ref": "#/definitions/ksearch.App" } }, "services": { "type": "array", "items": { "$ref": "#/definitions/ksearch.Service" } }, "global_deployments": { "type": "array", "items": { "$ref": "#/definitions/ksearch.GlobalDeployment" } }, "regional_deployments": { "type": "array", "items": { "$ref": "#/definitions/ksearch.RegionalDeployment" } }, "instances": { "type": "array", "items": { "$ref": "#/definitions/ksearch.Instance" } } } }, "ksearch.Service": { "type": "object", "properties": { "id": { "type": "string" }, "organization_id": { "type": "string" }, "app_id": { "type": "string" }, "name": { "type": "string" } } }, "ksearch.User": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "github_user": { "type": "string" } } } }, "securityDefinitions": { "Bearer": { "type": "apiKey", "name": "Authorization", "in": "header" } } }