{ "components": { "schemas": { "AddApplicationDomainRequest": { "description": "AddApplicationDomainRequest schema", "properties": { "domain": { "type": "string" }, "port": { "nullable": true, "type": "integer" }, "service_name": { "nullable": true, "type": "string" } }, "type": "object" }, "AddApplicationToFamilyRequest": { "description": "AddApplicationToFamilyRequest schema", "properties": { "branch": { "description": "Git branch. Defaults to main if not specified", "example": "main", "nullable": true, "type": "string" }, "build_pack": { "description": "Build strategy. Defaults to dockerfile if not specified", "example": "dockerfile", "nullable": true, "type": "string" }, "build_variables": { "additionalProperties": { "description": "Key-value pairs passed as build arguments to Docker", "nullable": true, "type": "string" }, "description": "Key-value pairs passed as build arguments to Docker", "nullable": true, "type": "object" }, "dockerfile_path": { "description": "Path to the Dockerfile. Defaults to Dockerfile if not specified", "example": "Dockerfile", "nullable": true, "type": "string" }, "domains": { "description": "Custom domains for the application", "items": { "description": "Custom domains for the application", "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "environment": { "description": "Deployment environment. Defaults to development if not specified", "example": "development", "nullable": true, "type": "string" }, "environment_variables": { "additionalProperties": { "description": "Key-value pairs set as runtime environment variables", "nullable": true, "type": "string" }, "description": "Key-value pairs set as runtime environment variables", "nullable": true, "type": "object" }, "family_id": { "description": "Family ID to add the application to. Creates new family if not provided", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "name": { "description": "Application name", "example": "my-api", "type": "string" }, "path": { "description": "Base path for the application. Defaults to /", "example": "api/", "type": "string" }, "port": { "description": "Port the application listens on. Defaults to 8080 if not specified", "example": 8080, "nullable": true, "type": "integer" }, "post_run_command": { "description": "Command to run after the application starts", "example": "npm run seed", "nullable": true, "type": "string" }, "pre_run_command": { "description": "Command to run before the application starts", "example": "npm run migrate", "nullable": true, "type": "string" }, "repository": { "description": "Git repository URL or identifier", "example": "github.com/org/repo", "type": "string" } }, "required": [ "name", "repository" ], "type": "object" }, "AddCustomDomainRequest": { "description": "AddCustomDomainRequest schema", "properties": { "name": { "description": "Fully qualified domain name to add", "example": "app.example.com", "maxLength": 255, "minLength": 3, "type": "string" } }, "required": [ "name" ], "type": "object" }, "AdminRegisteredResponse": { "description": "AdminRegisteredResponse schema", "properties": { "data": { "properties": { "admin_registered": { "type": "boolean" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "Application": { "nullable": true, "properties": { "base_path": { "type": "string" }, "branch": { "type": "string" }, "build_pack": { "type": "string" }, "build_variables": { "type": "string" }, "compose_services": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "deployments": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "nullable": true, "type": "array" }, "dockerfile_path": { "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "$ref": "#/components/schemas/ApplicationDomain" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "environment": { "type": "string" }, "environment_variables": { "type": "string" }, "family_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_live_deployment": { "type": "boolean" }, "labels": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "post_run_command": { "type": "string" }, "pre_run_command": { "type": "string" }, "proxy_server": { "type": "string" }, "repository": { "type": "string" }, "routing_strategy": { "type": "string" }, "servers": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "source": { "type": "string" }, "status": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "template_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "ApplicationDeployment": { "properties": { "application": { "nullable": true, "properties": { "base_path": { "type": "string" }, "branch": { "type": "string" }, "build_pack": { "type": "string" }, "build_variables": { "type": "string" }, "compose_services": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "deployments": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "nullable": true, "type": "array" }, "dockerfile_path": { "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "$ref": "#/components/schemas/ApplicationDomain" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "environment": { "type": "string" }, "environment_variables": { "type": "string" }, "family_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_live_deployment": { "type": "boolean" }, "labels": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "post_run_command": { "type": "string" }, "pre_run_command": { "type": "string" }, "proxy_server": { "type": "string" }, "repository": { "type": "string" }, "routing_strategy": { "type": "string" }, "servers": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "source": { "type": "string" }, "status": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "template_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "application_id": { "format": "uuid", "type": "string" }, "children": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "nullable": true, "type": "array" }, "commit_hash": { "type": "string" }, "container_id": { "format": "uuid", "type": "string" }, "container_image": { "type": "string" }, "container_name": { "type": "string" }, "container_status": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "image_s3_key": { "type": "string" }, "image_size": { "format": "int64", "type": "integer" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "parent_deployment_id": { "format": "uuid", "type": "string" }, "server_id": { "format": "uuid", "type": "string" }, "status": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "ApplicationDomain": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "ApplicationResponse": { "description": "ApplicationResponse schema", "properties": { "data": { "properties": { "base_path": { "type": "string" }, "branch": { "type": "string" }, "build_pack": { "type": "string" }, "build_variables": { "type": "string" }, "compose_services": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "deployments": { "items": { "nullable": true, "properties": { "application": { "$ref": "#/components/schemas/Application" }, "application_id": { "format": "uuid", "type": "string" }, "children": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "type": "array" }, "commit_hash": { "type": "string" }, "container_id": { "format": "uuid", "type": "string" }, "container_image": { "type": "string" }, "container_name": { "type": "string" }, "container_status": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "image_s3_key": { "type": "string" }, "image_size": { "format": "int64", "type": "integer" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "parent_deployment_id": { "format": "uuid", "type": "string" }, "server_id": { "format": "uuid", "type": "string" }, "status": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "dockerfile_path": { "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "$ref": "#/components/schemas/ApplicationDomain" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "environment": { "type": "string" }, "environment_variables": { "type": "string" }, "family_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_live_deployment": { "type": "boolean" }, "labels": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "post_run_command": { "type": "string" }, "pre_run_command": { "type": "string" }, "proxy_server": { "type": "string" }, "repository": { "type": "string" }, "routing_strategy": { "type": "string" }, "servers": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "source": { "type": "string" }, "status": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "template_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ApplicationServersResponse": { "description": "ApplicationServersResponse schema", "properties": { "data": { "items": { "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ArtifactDeleteResponse": { "description": "ArtifactDeleteResponse schema", "properties": { "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ArtifactDownloadResponse": { "description": "ArtifactDownloadResponse schema", "properties": { "data": { "properties": { "expires_in_seconds": { "type": "integer" }, "url": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ArtifactListResponse": { "description": "ArtifactListResponse schema", "properties": { "data": { "items": { "properties": { "app_name": { "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "type": "string" }, "deployment_id": { "format": "uuid", "type": "string" }, "s3_key": { "type": "string" }, "size": { "format": "int64", "type": "integer" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "BackupListResponse": { "description": "BackupListResponse schema", "properties": { "data": { "properties": { "backups": { "items": { "properties": { "completed_at": { "format": "date-time", "nullable": true, "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "error": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "machine_name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "provision_id": { "format": "uuid", "type": "string" }, "s3_path": { "nullable": true, "type": "string" }, "size_bytes": { "format": "int64", "type": "integer" }, "snapshot_path": { "nullable": true, "type": "string" }, "started_at": { "format": "date-time", "nullable": true, "type": "string" }, "status": { "type": "string" }, "trigger": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "type": "array" }, "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "total_count": { "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "BackupScheduleData": { "description": "BackupScheduleData schema", "properties": { "backup_paths": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "day_of_week": { "type": "integer" }, "enabled": { "type": "boolean" }, "frequency": { "type": "string" }, "hour_utc": { "type": "integer" }, "retention_count": { "type": "integer" } }, "type": "object" }, "BackupScheduleResponse": { "description": "BackupScheduleResponse schema", "properties": { "data": { "properties": { "backup_paths": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "day_of_week": { "type": "integer" }, "enabled": { "type": "boolean" }, "frequency": { "type": "string" }, "hour_utc": { "type": "integer" }, "retention_count": { "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "BootstrapResponse": { "description": "BootstrapResponse schema", "properties": { "activeOrganizationId": { "nullable": true, "type": "string" }, "hasServers": { "type": "boolean" }, "organizations": { "items": { "properties": { "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "role": { "type": "string" } }, "type": "object" }, "type": "array" }, "provisionId": { "nullable": true, "type": "string" }, "provisionStep": { "nullable": true, "type": "string" }, "user": { "properties": { "email": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "isOnboarded": { "type": "boolean" }, "name": { "type": "string" }, "provisionStatus": { "type": "string" } }, "type": "object" } }, "type": "object" }, "CallToolRequest": { "description": "CallToolRequest schema", "properties": { "arguments": { "additionalProperties": { "description": "Variable value (string, number, boolean, or JSON as string)", "type": "string" }, "description": "Tool-specific arguments as key-value pairs", "nullable": true, "type": "object" }, "server_id": { "description": "ID of the MCP server to call the tool on", "format": "uuid", "type": "string" }, "tool_name": { "description": "Name of the MCP tool to invoke", "example": "search", "type": "string" } }, "required": [ "server_id", "tool_name" ], "type": "object" }, "CancelDeploymentRequest": { "description": "CancelDeploymentRequest schema", "properties": { "deployment_id": { "description": "Deployment ID to cancel", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "deployment_id" ], "type": "object" }, "CategoriesResponse": { "description": "CategoriesResponse schema", "properties": { "data": { "items": { "type": "string" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ComposeService": { "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "ComposeServicesResponse": { "description": "ComposeServicesResponse schema", "properties": { "data": { "items": { "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ContainerActionResponse": { "description": "ContainerActionResponse schema", "properties": { "data": { "properties": { "status": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ContainerLogsRequest": { "description": "ContainerLogsRequest schema", "properties": { "follow": { "type": "boolean" }, "id": { "format": "uuid", "type": "string" }, "since": { "type": "string" }, "stderr": { "type": "boolean" }, "stdout": { "type": "boolean" }, "tail": { "type": "integer" }, "until": { "type": "string" } }, "type": "object" }, "ContainerLogsResponse": { "description": "ContainerLogsResponse schema", "properties": { "data": { "type": "string" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "CreateDeploymentRequest": { "description": "CreateDeploymentRequest schema", "properties": { "base_path": { "description": "Base path for the application. Defaults to /", "example": "/", "nullable": true, "type": "string" }, "branch": { "description": "Git branch to deploy", "example": "main", "type": "string" }, "build_pack": { "description": "Build strategy for the application", "example": "dockerfile", "type": "string" }, "build_variables": { "additionalProperties": { "description": "Key-value pairs passed as build arguments to Docker", "type": "string" }, "description": "Key-value pairs passed as build arguments to Docker", "type": "object" }, "compose_domains": { "description": "Domain-to-service mappings for compose deployments", "items": { "description": "Domain-to-service mappings for compose deployments", "nullable": true, "properties": { "domain": { "description": "Domain name for the compose service", "example": "app.example.com", "type": "string" }, "port": { "description": "Port override for the compose service", "example": 8080, "nullable": true, "type": "integer" }, "service_name": { "description": "Name of the compose service to route to", "example": "web", "nullable": true, "type": "string" } }, "required": [ "domain" ], "type": "object" }, "nullable": true, "type": "array" }, "dockerfile_path": { "description": "Path to the Dockerfile relative to the repository root", "example": "Dockerfile", "nullable": true, "type": "string" }, "domains": { "description": "Custom domains for the application", "items": { "description": "Custom domains for the application", "maxLength": 5, "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "environment": { "description": "Deployment environment", "example": "production", "type": "string" }, "environment_variables": { "additionalProperties": { "description": "Key-value pairs set as runtime environment variables", "type": "string" }, "description": "Key-value pairs set as runtime environment variables", "type": "object" }, "name": { "description": "Application name", "example": "my-web-app", "type": "string" }, "port": { "description": "Port the application listens on", "example": 3000, "maximum": 65535, "minimum": 1, "type": "integer" }, "post_run_command": { "description": "Command to run after the application starts", "example": "npm run seed", "type": "string" }, "pre_run_command": { "description": "Command to run before the application starts", "example": "npm run migrate", "type": "string" }, "primary_server_id": { "description": "Primary server ID for routing", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "repository": { "description": "Git repository URL or identifier", "example": "github.com/org/repo", "type": "string" }, "routing_strategy": { "description": "Routing strategy for multi-server deployments", "example": "round-robin", "nullable": true, "type": "string" }, "server_ids": { "description": "Server IDs to deploy the application to", "items": { "description": "Server IDs to deploy the application to", "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "source": { "description": "Source type of the repository", "example": "github", "nullable": true, "type": "string" }, "target_server_ids": { "description": "Specific server IDs to target for this deployment", "items": { "description": "Specific server IDs to target for this deployment", "format": "uuid", "type": "string" }, "nullable": true, "type": "array" } }, "required": [ "branch", "build_pack", "environment", "name", "port", "repository" ], "type": "object" }, "CreateGithubConnectorRequest": { "description": "CreateGithubConnectorRequest schema", "properties": { "app_id": { "description": "GitHub App ID. Required if providing custom app credentials", "example": "123456", "format": "uuid", "type": "string" }, "client_id": { "description": "GitHub App OAuth client ID", "example": "Iv1.abc123def456", "format": "uuid", "type": "string" }, "client_secret": { "description": "GitHub App OAuth client secret", "type": "string" }, "installation_id": { "description": "GitHub App installation ID", "example": "12345678", "format": "uuid", "nullable": true, "type": "string" }, "pem": { "description": "GitHub App private key in PEM format", "type": "string" }, "slug": { "description": "GitHub App slug", "example": "my-github-app", "type": "string" }, "webhook_secret": { "description": "GitHub App webhook secret", "type": "string" } }, "type": "object" }, "CreateHealthCheckRequest": { "description": "CreateHealthCheckRequest schema", "properties": { "application_id": { "description": "ID of the application to monitor", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "body": { "description": "Request body to send with health check requests", "nullable": true, "type": "string" }, "endpoint": { "description": "Health check endpoint path or URL. Defaults to /", "example": "/health", "type": "string" }, "expected_status_codes": { "description": "Expected HTTP status codes. Defaults to [200]", "items": { "description": "Expected HTTP status codes. Defaults to [200]", "nullable": true, "type": "integer" }, "nullable": true, "type": "array" }, "failure_threshold": { "description": "Consecutive failures before marking unhealthy (1-10). Defaults to 3", "example": 3, "maximum": 10, "minimum": 1, "nullable": true, "type": "integer" }, "headers": { "additionalProperties": { "description": "Custom HTTP headers to include in health check requests", "nullable": true, "type": "string" }, "description": "Custom HTTP headers to include in health check requests", "nullable": true, "type": "object" }, "interval_seconds": { "description": "Check interval in seconds (30-3600). Defaults to 60", "example": 60, "maximum": 3600, "minimum": 30, "nullable": true, "type": "integer" }, "method": { "description": "HTTP method to use. Must be GET, POST, or HEAD. Defaults to GET", "example": "GET", "type": "string" }, "retention_days": { "description": "Number of days to retain health check results (1-365). Defaults to 30", "example": 30, "maximum": 365, "minimum": 1, "nullable": true, "type": "integer" }, "success_threshold": { "description": "Consecutive successes before marking healthy (1-10). Defaults to 1", "example": 1, "maximum": 10, "minimum": 1, "nullable": true, "type": "integer" }, "timeout_seconds": { "description": "Request timeout in seconds (5-120). Defaults to 30", "example": 30, "maximum": 120, "minimum": 5, "nullable": true, "type": "integer" } }, "required": [ "application_id" ], "type": "object" }, "CreateMachineRequest": { "description": "CreateMachineRequest schema", "properties": { "host": { "type": "string" }, "name": { "type": "string" }, "port": { "type": "integer" }, "user": { "type": "string" } }, "required": [ "host", "name" ], "type": "object" }, "CreateMachineResponse": { "description": "CreateMachineResponse schema", "properties": { "host": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "port": { "type": "integer" }, "public_key": { "type": "string" }, "user": { "type": "string" } }, "type": "object" }, "CreateProjectRequest": { "description": "CreateProjectRequest schema", "properties": { "base_path": { "description": "Base path for the application. Defaults to / if not specified", "example": "/", "nullable": true, "type": "string" }, "branch": { "description": "Git branch to deploy. Defaults to main if not specified", "example": "main", "nullable": true, "type": "string" }, "build_pack": { "description": "Build strategy. Defaults to dockerfile if not specified", "example": "dockerfile", "nullable": true, "type": "string" }, "build_variables": { "additionalProperties": { "description": "Key-value pairs passed as build arguments to Docker", "nullable": true, "type": "string" }, "description": "Key-value pairs passed as build arguments to Docker", "nullable": true, "type": "object" }, "compose_domains": { "description": "Domain-to-service mappings for compose deployments", "items": { "description": "Domain-to-service mappings for compose deployments", "nullable": true, "properties": { "domain": { "description": "Domain name for the compose service", "example": "app.example.com", "type": "string" }, "port": { "description": "Port override for the compose service", "example": 8080, "nullable": true, "type": "integer" }, "service_name": { "description": "Name of the compose service to route to", "example": "web", "nullable": true, "type": "string" } }, "required": [ "domain" ], "type": "object" }, "nullable": true, "type": "array" }, "compose_services": { "description": "Compose services configuration", "items": { "description": "Compose services configuration", "nullable": true, "properties": { "port": { "description": "Port the service listens on", "example": 8080, "type": "integer" }, "service_name": { "description": "Name of the compose service", "example": "web", "type": "string" } }, "required": [ "port", "service_name" ], "type": "object" }, "nullable": true, "type": "array" }, "dockerfile_path": { "description": "Path to the Dockerfile. Defaults to Dockerfile if not specified", "example": "Dockerfile", "nullable": true, "type": "string" }, "domains": { "description": "Custom domains for the project", "items": { "description": "Custom domains for the project", "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "environment": { "description": "Deployment environment. Defaults to production if not specified", "example": "production", "nullable": true, "type": "string" }, "environment_variables": { "additionalProperties": { "description": "Key-value pairs set as runtime environment variables", "nullable": true, "type": "string" }, "description": "Key-value pairs set as runtime environment variables", "nullable": true, "type": "object" }, "name": { "description": "Project name", "example": "my-web-app", "type": "string" }, "port": { "description": "Port the application listens on. Defaults to 3000 if not specified", "example": 3000, "nullable": true, "type": "integer" }, "post_run_command": { "description": "Command to run after the application starts", "example": "npm run seed", "nullable": true, "type": "string" }, "pre_run_command": { "description": "Command to run before the application starts", "example": "npm run migrate", "nullable": true, "type": "string" }, "primary_server_id": { "description": "Primary server ID for routing", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "repository": { "description": "Git repository URL or identifier", "example": "github.com/org/repo", "type": "string" }, "routing_strategy": { "description": "Routing strategy for multi-server deployments", "example": "round-robin", "nullable": true, "type": "string" }, "server_ids": { "description": "Server IDs to deploy the application to", "items": { "description": "Server IDs to deploy the application to", "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "source": { "description": "Source type of the repository", "example": "github", "nullable": true, "type": "string" } }, "required": [ "name", "repository" ], "type": "object" }, "CreateSMTPConfigRequest": { "description": "CreateSMTPConfigRequest schema", "properties": { "from_email": { "description": "Sender email address for outgoing emails", "example": "noreply@example.com", "type": "string" }, "from_name": { "description": "Display name for outgoing emails", "example": "Nixopus", "type": "string" }, "host": { "description": "SMTP server hostname", "example": "smtp.gmail.com", "type": "string" }, "organization_id": { "description": "Organization this SMTP config belongs to", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "password": { "description": "SMTP authentication password", "example": "app-password", "type": "string" }, "port": { "description": "SMTP server port", "example": 587, "type": "integer" }, "username": { "description": "SMTP authentication username", "example": "user@gmail.com", "type": "string" } }, "required": [ "host", "organization_id", "password", "port", "username" ], "type": "object" }, "CreateServerRequest": { "description": "CreateServerRequest schema", "properties": { "credentials": { "additionalProperties": { "description": "Provider-specific credential key-value pairs", "type": "string" }, "description": "Provider-specific credential key-value pairs", "type": "object" }, "custom_url": { "description": "Custom server URL. Required when provider_id is 'custom'. Must use HTTPS", "nullable": true, "type": "string" }, "enabled": { "description": "Whether the server is active", "type": "boolean" }, "name": { "description": "Display name for this MCP server", "example": "My OpenAI Server", "type": "string" }, "provider_id": { "description": "MCP provider identifier (e.g. 'openai', 'anthropic', 'custom')", "example": "openai", "format": "uuid", "type": "string" } }, "required": [ "name", "provider_id" ], "type": "object" }, "CreateTemplateDeploymentRequest": { "description": "CreateTemplateDeploymentRequest schema", "properties": { "environment": { "description": "Deployment environment", "example": "production", "nullable": true, "type": "string" }, "name": { "description": "Name for the deployed application", "example": "my-wordpress", "type": "string" }, "primary_server_id": { "description": "Primary server ID for routing", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "routing_strategy": { "description": "Routing strategy for multi-server deployments", "example": "round-robin", "nullable": true, "type": "string" }, "server_ids": { "description": "Server IDs to deploy to", "items": { "description": "Server IDs to deploy to", "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "template_id": { "description": "Template ID to deploy from", "example": "wordpress", "format": "uuid", "type": "string" }, "variables": { "additionalProperties": { "description": "Variable value (string, number, boolean, or JSON as string)", "type": "string" }, "description": "Template-specific configuration variables", "type": "object" } }, "required": [ "name", "template_id" ], "type": "object" }, "CreateWebhookConfigRequest": { "description": "CreateWebhookConfigRequest schema", "properties": { "type": { "description": "Webhook integration type", "example": "slack", "type": "string" }, "webhook_url": { "description": "Webhook URL for the integration", "example": "https://hooks.slack.com/services/...", "type": "string" } }, "required": [ "type", "webhook_url" ], "type": "object" }, "CustomDomainResponse": { "description": "CustomDomainResponse schema", "properties": { "data": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "dns_provider": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "target_subdomain": { "nullable": true, "type": "string" }, "type": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" }, "verification_token": { "nullable": true, "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "DNSCheckResponse": { "description": "DNSCheckResponse schema", "properties": { "dns_status": { "type": "string" }, "message": { "type": "string" }, "status": { "type": "string" }, "verified": { "type": "boolean" } }, "type": "object" }, "DNSSetupResponse": { "description": "DNSSetupResponse schema", "properties": { "data": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "dns_provider": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "target_subdomain": { "nullable": true, "type": "string" }, "type": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" }, "verification_token": { "nullable": true, "type": "string" } }, "type": "object" }, "dns_provider": { "type": "string" }, "instructions": { "items": { "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "record_type": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "DeleteDeploymentRequest": { "description": "DeleteDeploymentRequest schema", "properties": { "id": { "description": "Application ID to delete", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "DeleteGithubConnectorRequest": { "description": "DeleteGithubConnectorRequest schema", "properties": { "id": { "description": "GitHub connector ID to delete", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "DeleteMachineResponse": { "description": "DeleteMachineResponse schema", "properties": { "status": { "type": "string" } }, "type": "object" }, "DeleteSMTPConfigRequest": { "description": "DeleteSMTPConfigRequest schema", "properties": { "id": { "description": "SMTP configuration ID to delete", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "DeleteServerRequest": { "description": "DeleteServerRequest schema", "properties": { "id": { "format": "uuid", "type": "string" } }, "type": "object" }, "DeleteWebhookConfigRequest": { "description": "DeleteWebhookConfigRequest schema", "properties": { "type": { "description": "Webhook integration type to delete", "example": "slack", "type": "string" } }, "required": [ "type" ], "type": "object" }, "DeployProjectRequest": { "description": "DeployProjectRequest schema", "properties": { "id": { "description": "Project ID to deploy", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "DeploymentResponse": { "description": "DeploymentResponse schema", "properties": { "data": { "properties": { "application": { "nullable": true, "properties": { "base_path": { "type": "string" }, "branch": { "type": "string" }, "build_pack": { "type": "string" }, "build_variables": { "type": "string" }, "compose_services": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "deployments": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "nullable": true, "type": "array" }, "dockerfile_path": { "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "$ref": "#/components/schemas/ApplicationDomain" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "environment": { "type": "string" }, "environment_variables": { "type": "string" }, "family_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_live_deployment": { "type": "boolean" }, "labels": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "post_run_command": { "type": "string" }, "pre_run_command": { "type": "string" }, "proxy_server": { "type": "string" }, "repository": { "type": "string" }, "routing_strategy": { "type": "string" }, "servers": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "source": { "type": "string" }, "status": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "template_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "application_id": { "format": "uuid", "type": "string" }, "children": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "nullable": true, "type": "array" }, "commit_hash": { "type": "string" }, "container_id": { "format": "uuid", "type": "string" }, "container_image": { "type": "string" }, "container_name": { "type": "string" }, "container_status": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "image_s3_key": { "type": "string" }, "image_size": { "format": "int64", "type": "integer" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "parent_deployment_id": { "format": "uuid", "type": "string" }, "server_id": { "format": "uuid", "type": "string" }, "status": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "DuplicateProjectRequest": { "description": "DuplicateProjectRequest schema", "properties": { "branch": { "description": "Git branch override for the duplicate", "example": "develop", "nullable": true, "type": "string" }, "domains": { "description": "Custom domains for the duplicated project", "items": { "description": "Custom domains for the duplicated project", "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "environment": { "description": "Environment for the duplicated project", "example": "staging", "type": "string" }, "primary_server_id": { "description": "Primary server ID for routing", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "routing_strategy": { "description": "Routing strategy for multi-server deployments", "example": "round-robin", "nullable": true, "type": "string" }, "server_ids": { "description": "Server IDs to deploy the duplicate to", "items": { "description": "Server IDs to deploy the duplicate to", "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "source_project_id": { "description": "ID of the project to duplicate", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "environment", "source_project_id" ], "type": "object" }, "EnvironmentsInFamilyResponse": { "description": "EnvironmentsInFamilyResponse schema", "properties": { "data": { "properties": { "environments": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ErrorEnvelope": { "properties": { "code": { "description": "Machine-readable error code", "example": "invalid_request", "type": "string" }, "details": { "additionalProperties": { "type": "string" }, "description": "Additional context for programmatic handling", "type": "object" }, "message": { "description": "Human-readable error message", "example": "Request validation failed", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "ExtensionResponse": { "description": "ExtensionResponse schema", "properties": { "data": { "properties": { "author": { "type": "string" }, "category": { "type": "string" }, "content_hash": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "type": "string" }, "extension_id": { "format": "uuid", "type": "string" }, "extension_type": { "type": "string" }, "featured": { "type": "boolean" }, "icon": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_verified": { "type": "boolean" }, "name": { "type": "string" }, "parent_extension_id": { "format": "uuid", "type": "string" }, "parsed_content": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "validation_errors": { "type": "string" }, "validation_status": { "type": "string" }, "variables": { "items": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "default_value": { "description": "JSON-encoded value", "type": "string" }, "description": { "type": "string" }, "extension_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_required": { "type": "boolean" }, "validation_pattern": { "type": "string" }, "variable_name": { "type": "string" }, "variable_type": { "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "version": { "type": "string" }, "yaml_content": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "GetActivitiesResponse": { "description": "GetActivitiesResponse schema", "properties": { "data": { "properties": { "activities": { "items": { "nullable": true, "properties": { "action": { "type": "string" }, "action_color": { "type": "string" }, "actor": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "message": { "type": "string" }, "metadata": { "additionalProperties": { "description": "Variable value (string, number, boolean, or JSON as string)", "type": "string" }, "nullable": true, "type": "object" }, "resource": { "type": "string" }, "resource_id": { "format": "uuid", "type": "string" }, "timestamp": { "type": "string" } }, "type": "object" }, "type": "array" }, "pagination": { "properties": { "current_page": { "type": "integer" }, "has_next": { "type": "boolean" }, "has_prev": { "type": "boolean" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "total_count": { "type": "integer" }, "total_pages": { "type": "integer" } }, "type": "object" } }, "type": "object" }, "message": { "nullable": true, "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "GetContainerResponse": { "description": "GetContainerResponse schema", "properties": { "data": { "properties": { "command": { "type": "string" }, "created": { "type": "string" }, "host_config": { "properties": { "cpu_shares": { "format": "int64", "type": "integer" }, "memory": { "format": "int64", "type": "integer" }, "memory_swap": { "format": "int64", "type": "integer" } }, "type": "object" }, "id": { "format": "uuid", "type": "string" }, "image": { "type": "string" }, "ip_address": { "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "type": "object" }, "mounts": { "items": { "properties": { "destination": { "type": "string" }, "mode": { "type": "string" }, "source": { "type": "string" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "type": "string" }, "networks": { "items": { "properties": { "aliases": { "items": { "type": "string" }, "type": "array" }, "gateway": { "type": "string" }, "ip_address": { "type": "string" }, "mac_address": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "type": "array" }, "ports": { "items": { "properties": { "private_port": { "type": "integer" }, "public_port": { "type": "integer" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "state": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "GetGithubRepositoryBranchesRequest": { "description": "GetGithubRepositoryBranchesRequest schema", "properties": { "repository_name": { "type": "string" } }, "required": [ "repository_name" ], "type": "object" }, "HTTPError": { "description": "HTTPError schema", "properties": { "detail": { "description": "Human readable error message", "nullable": true, "type": "string" }, "errors": { "items": { "nullable": true, "properties": { "more": { "additionalProperties": { "description": "Variable value (string, number, boolean, or JSON as string)", "type": "string" }, "description": "Additional information about the error", "nullable": true, "type": "object" }, "name": { "description": "For example, name of the parameter that caused the error", "type": "string" }, "reason": { "description": "Human readable error message", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "instance": { "nullable": true, "type": "string" }, "status": { "description": "HTTP status code", "example": 403, "nullable": true, "type": "integer" }, "title": { "description": "Short title of the error", "nullable": true, "type": "string" }, "type": { "description": "URL of the error type. Can be used to lookup the error in a documentation", "nullable": true, "type": "string" } }, "type": "object" }, "HealthCheckMessageResponse": { "description": "HealthCheckMessageResponse schema", "properties": { "error": { "nullable": true, "type": "string" }, "message": { "nullable": true, "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "HealthCheckResponse": { "description": "HealthCheckResponse schema", "properties": { "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "HealthCheckResultsResponse": { "description": "HealthCheckResultsResponse schema", "properties": { "data": { "items": { "nullable": true, "properties": { "checked_at": { "format": "date-time", "type": "string" }, "error_message": { "nullable": true, "type": "string" }, "health_check_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "response_time_ms": { "type": "integer" }, "status": { "type": "string" }, "status_code": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "error": { "nullable": true, "type": "string" }, "message": { "nullable": true, "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "HealthCheckStatsResponse": { "description": "HealthCheckStatsResponse schema", "properties": { "data": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "avg_response_time_ms": { "type": "integer" }, "failed_checks": { "type": "integer" }, "last_status": { "type": "string" }, "period": { "default": "24h", "enum": [ "1h", "24h", "7d", "30d" ], "type": "string" }, "successful_checks": { "type": "integer" }, "total_checks": { "type": "integer" }, "uptime_percentage": { "format": "double", "type": "number" } }, "type": "object" }, "error": { "nullable": true, "type": "string" }, "message": { "nullable": true, "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "HostExecRequest": { "description": "HostExecRequest schema", "properties": { "command": { "type": "string" } }, "required": [ "command" ], "type": "object" }, "HostExecResponse": { "description": "HostExecResponse schema", "properties": { "data": { "properties": { "exit_code": { "type": "integer" }, "stderr": { "type": "string" }, "stdout": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "IsFeatureEnabledResponse": { "description": "IsFeatureEnabledResponse schema", "properties": { "data": { "properties": { "is_enabled": { "type": "boolean" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "IsOnboardedResponse": { "description": "IsOnboardedResponse schema", "properties": { "data": { "properties": { "is_onboarded": { "type": "boolean" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "LabelsResponse": { "description": "LabelsResponse schema", "properties": { "data": { "items": { "type": "string" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListApplicationsResponse": { "description": "ListApplicationsResponse schema", "properties": { "data": { "properties": { "applications": { "items": { "properties": { "base_path": { "type": "string" }, "branch": { "type": "string" }, "build_pack": { "type": "string" }, "build_variables": { "type": "string" }, "compose_services": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "deployments": { "items": { "nullable": true, "properties": { "application": { "$ref": "#/components/schemas/Application" }, "application_id": { "format": "uuid", "type": "string" }, "children": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "type": "array" }, "commit_hash": { "type": "string" }, "container_id": { "format": "uuid", "type": "string" }, "container_image": { "type": "string" }, "container_name": { "type": "string" }, "container_status": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "image_s3_key": { "type": "string" }, "image_size": { "format": "int64", "type": "integer" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "parent_deployment_id": { "format": "uuid", "type": "string" }, "server_id": { "format": "uuid", "type": "string" }, "status": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "dockerfile_path": { "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "$ref": "#/components/schemas/ApplicationDomain" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "environment": { "type": "string" }, "environment_variables": { "type": "string" }, "family_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_live_deployment": { "type": "boolean" }, "labels": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "post_run_command": { "type": "string" }, "pre_run_command": { "type": "string" }, "proxy_server": { "type": "string" }, "repository": { "type": "string" }, "routing_strategy": { "type": "string" }, "servers": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "source": { "type": "string" }, "status": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "template_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "type": "array" }, "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "total_count": { "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListBranchesResponse": { "description": "ListBranchesResponse schema", "properties": { "data": { "items": { "properties": { "commit": { "properties": { "sha": { "type": "string" }, "url": { "type": "string" } }, "type": "object" }, "name": { "type": "string" }, "protected": { "type": "boolean" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListConnectorsResponse": { "description": "ListConnectorsResponse schema", "properties": { "data": { "items": { "properties": { "app_id": { "format": "uuid", "type": "string" }, "client_id": { "format": "uuid", "type": "string" }, "client_secret": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "installation_id": { "format": "uuid", "type": "string" }, "pem": { "type": "string" }, "slug": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" }, "webhook_secret": { "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListContainersResponse": { "description": "ListContainersResponse schema", "properties": { "data": { "properties": { "containers": { "items": { "properties": { "command": { "type": "string" }, "created": { "type": "string" }, "host_config": { "properties": { "cpu_shares": { "format": "int64", "type": "integer" }, "memory": { "format": "int64", "type": "integer" }, "memory_swap": { "format": "int64", "type": "integer" } }, "type": "object" }, "id": { "format": "uuid", "type": "string" }, "image": { "type": "string" }, "ip_address": { "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "type": "object" }, "mounts": { "items": { "properties": { "destination": { "type": "string" }, "mode": { "type": "string" }, "source": { "type": "string" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "type": "string" }, "networks": { "items": { "properties": { "aliases": { "items": { "type": "string" }, "type": "array" }, "gateway": { "type": "string" }, "ip_address": { "type": "string" }, "mac_address": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "type": "array" }, "ports": { "items": { "properties": { "private_port": { "type": "integer" }, "public_port": { "type": "integer" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "state": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "type": "array" }, "group_count": { "type": "integer" }, "groups": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "application_name": { "type": "string" }, "containers": { "items": { "properties": { "command": { "type": "string" }, "created": { "type": "string" }, "host_config": { "properties": { "cpu_shares": { "format": "int64", "type": "integer" }, "memory": { "format": "int64", "type": "integer" }, "memory_swap": { "format": "int64", "type": "integer" } }, "type": "object" }, "id": { "format": "uuid", "type": "string" }, "image": { "type": "string" }, "ip_address": { "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "type": "object" }, "mounts": { "items": { "properties": { "destination": { "type": "string" }, "mode": { "type": "string" }, "source": { "type": "string" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "type": "string" }, "networks": { "items": { "properties": { "aliases": { "items": { "type": "string" }, "type": "array" }, "gateway": { "type": "string" }, "ip_address": { "type": "string" }, "mac_address": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "type": "array" }, "ports": { "items": { "properties": { "private_port": { "type": "integer" }, "public_port": { "type": "integer" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "state": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "nullable": true, "type": "array" }, "image": { "type": "string" }, "name": { "type": "string" }, "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "search": { "type": "string" }, "sort_by": { "type": "string" }, "sort_order": { "enum": [ "asc", "desc" ], "type": "string" }, "status": { "type": "string" }, "total_count": { "type": "integer" }, "ungrouped": { "items": { "nullable": true, "properties": { "command": { "type": "string" }, "created": { "type": "string" }, "host_config": { "properties": { "cpu_shares": { "format": "int64", "type": "integer" }, "memory": { "format": "int64", "type": "integer" }, "memory_swap": { "format": "int64", "type": "integer" } }, "type": "object" }, "id": { "format": "uuid", "type": "string" }, "image": { "type": "string" }, "ip_address": { "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "type": "object" }, "mounts": { "items": { "properties": { "destination": { "type": "string" }, "mode": { "type": "string" }, "source": { "type": "string" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "name": { "type": "string" }, "networks": { "items": { "properties": { "aliases": { "items": { "type": "string" }, "type": "array" }, "gateway": { "type": "string" }, "ip_address": { "type": "string" }, "mac_address": { "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "type": "array" }, "ports": { "items": { "properties": { "private_port": { "type": "integer" }, "public_port": { "type": "integer" }, "type": { "type": "string" } }, "type": "object" }, "type": "array" }, "state": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListDeploymentsResponse": { "description": "ListDeploymentsResponse schema", "properties": { "data": { "properties": { "deployments": { "items": { "properties": { "application": { "nullable": true, "properties": { "base_path": { "type": "string" }, "branch": { "type": "string" }, "build_pack": { "type": "string" }, "build_variables": { "type": "string" }, "compose_services": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "deployments": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "nullable": true, "type": "array" }, "dockerfile_path": { "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "$ref": "#/components/schemas/ApplicationDomain" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "environment": { "type": "string" }, "environment_variables": { "type": "string" }, "family_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_live_deployment": { "type": "boolean" }, "labels": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "post_run_command": { "type": "string" }, "pre_run_command": { "type": "string" }, "proxy_server": { "type": "string" }, "repository": { "type": "string" }, "routing_strategy": { "type": "string" }, "servers": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "source": { "type": "string" }, "status": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "template_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "application_id": { "format": "uuid", "type": "string" }, "children": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "nullable": true, "type": "array" }, "commit_hash": { "type": "string" }, "container_id": { "format": "uuid", "type": "string" }, "container_image": { "type": "string" }, "container_name": { "type": "string" }, "container_status": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "image_s3_key": { "type": "string" }, "image_size": { "format": "int64", "type": "integer" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "parent_deployment_id": { "format": "uuid", "type": "string" }, "server_id": { "format": "uuid", "type": "string" }, "status": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "total_count": { "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListDomainsResponse": { "description": "ListDomainsResponse schema", "properties": { "data": { "items": { "properties": { "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "dns_provider": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "target_subdomain": { "nullable": true, "type": "string" }, "type": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" }, "verification_token": { "nullable": true, "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListExtensionsResponse": { "description": "ListExtensionsResponse schema", "properties": { "data": { "properties": { "extensions": { "items": { "properties": { "author": { "type": "string" }, "category": { "type": "string" }, "content_hash": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "type": "string" }, "extension_id": { "format": "uuid", "type": "string" }, "extension_type": { "type": "string" }, "featured": { "type": "boolean" }, "icon": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_verified": { "type": "boolean" }, "name": { "type": "string" }, "parent_extension_id": { "format": "uuid", "type": "string" }, "parsed_content": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "validation_errors": { "type": "string" }, "validation_status": { "type": "string" }, "variables": { "items": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "default_value": { "description": "JSON-encoded value", "type": "string" }, "description": { "type": "string" }, "extension_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_required": { "type": "boolean" }, "validation_pattern": { "type": "string" }, "variable_name": { "type": "string" }, "variable_type": { "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "version": { "type": "string" }, "yaml_content": { "type": "string" } }, "type": "object" }, "type": "array" }, "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "total": { "type": "integer" }, "total_pages": { "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListFeatureFlagsResponse": { "description": "ListFeatureFlagsResponse schema", "properties": { "data": { "items": { "properties": { "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "feature_name": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_enabled": { "type": "boolean" }, "organization_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListImagesRequest": { "description": "ListImagesRequest schema", "properties": { "all": { "nullable": true, "type": "boolean" }, "container_id": { "format": "uuid", "nullable": true, "type": "string" }, "image_prefix": { "nullable": true, "type": "string" } }, "type": "object" }, "ListImagesResponse": { "description": "ListImagesResponse schema", "properties": { "data": { "items": { "properties": { "created": { "format": "int64", "type": "integer" }, "id": { "format": "uuid", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "type": "object" }, "repo_digests": { "items": { "type": "string" }, "type": "array" }, "repo_tags": { "items": { "type": "string" }, "type": "array" }, "shared_size": { "format": "int64", "type": "integer" }, "size": { "format": "int64", "type": "integer" }, "virtual_size": { "format": "int64", "type": "integer" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListMachinesResponse": { "description": "ListMachinesResponse schema", "properties": { "data": { "properties": { "is_active": { "nullable": true, "type": "boolean" }, "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "search": { "type": "string" }, "servers": { "items": { "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "provision": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "disk_size_gb": { "type": "integer" }, "domain": { "nullable": true, "type": "string" }, "error": { "nullable": true, "type": "string" }, "guest_ip": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "lxd_container_name": { "nullable": true, "type": "string" }, "memory_mb": { "type": "integer" }, "organization_id": { "format": "uuid", "type": "string" }, "server_id": { "format": "uuid", "type": "string" }, "ssh_key_id": { "format": "uuid", "type": "string" }, "step": { "nullable": true, "type": "string" }, "subdomain": { "nullable": true, "type": "string" }, "type": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" }, "vcpu_count": { "type": "integer" } }, "type": "object" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "total_disk_gb": { "type": "integer" }, "total_ram_mb": { "type": "integer" }, "total_vcpu": { "type": "integer" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "type": "array" }, "sort_by": { "type": "string" }, "sort_order": { "enum": [ "asc", "desc" ], "type": "string" }, "status": { "type": "string" }, "total_count": { "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ListPlansResponse": { "description": "ListPlansResponse schema", "properties": { "data": { "items": { "properties": { "id": { "format": "uuid", "type": "string" }, "monthly_cost_cents": { "type": "integer" }, "monthly_cost_usd": { "type": "string" }, "name": { "type": "string" }, "ram_mb": { "type": "integer" }, "storage_mb": { "type": "integer" }, "tier": { "type": "string" }, "vcpu": { "type": "integer" } }, "type": "object" }, "type": "array" }, "status": { "type": "string" } }, "type": "object" }, "ListRepositoriesResponse": { "description": "ListRepositoriesResponse schema", "properties": { "data": { "properties": { "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "repositories": { "items": { "properties": { "allow_forking": { "type": "boolean" }, "archive_url": { "type": "string" }, "archived": { "type": "boolean" }, "assignees_url": { "type": "string" }, "blobs_url": { "type": "string" }, "branches_url": { "type": "string" }, "clone_url": { "type": "string" }, "collaborators_url": { "type": "string" }, "comments_url": { "type": "string" }, "commits_url": { "type": "string" }, "compare_url": { "type": "string" }, "contents_url": { "type": "string" }, "contributors_url": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "default_branch": { "type": "string" }, "deployments_url": { "type": "string" }, "description": { "nullable": true, "type": "string" }, "disabled": { "type": "boolean" }, "downloads_url": { "type": "string" }, "events_url": { "type": "string" }, "fork": { "type": "boolean" }, "forks": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "forks_count": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "forks_url": { "type": "string" }, "full_name": { "type": "string" }, "git_commits_url": { "type": "string" }, "git_refs_url": { "type": "string" }, "git_tags_url": { "type": "string" }, "git_url": { "type": "string" }, "has_discussions": { "type": "boolean" }, "has_downloads": { "type": "boolean" }, "has_issues": { "type": "boolean" }, "has_pages": { "type": "boolean" }, "has_projects": { "type": "boolean" }, "has_wiki": { "type": "boolean" }, "homepage": { "nullable": true, "type": "string" }, "hooks_url": { "type": "string" }, "html_url": { "type": "string" }, "id": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "is_template": { "type": "boolean" }, "issue_comment_url": { "type": "string" }, "issue_events_url": { "type": "string" }, "issues_url": { "type": "string" }, "keys_url": { "type": "string" }, "labels_url": { "type": "string" }, "language": { "nullable": true, "type": "string" }, "languages_url": { "type": "string" }, "license": { "nullable": true, "properties": { "key": { "type": "string" }, "name": { "type": "string" }, "node_id": { "format": "uuid", "type": "string" }, "spdx_id": { "format": "uuid", "type": "string" }, "url": { "nullable": true, "type": "string" } }, "type": "object" }, "merges_url": { "type": "string" }, "milestones_url": { "type": "string" }, "mirror_url": { "nullable": true, "type": "string" }, "name": { "type": "string" }, "node_id": { "format": "uuid", "type": "string" }, "notifications_url": { "type": "string" }, "open_issues": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "open_issues_count": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "owner": { "properties": { "avatar_url": { "type": "string" }, "events_url": { "type": "string" }, "followers_url": { "type": "string" }, "following_url": { "type": "string" }, "gists_url": { "type": "string" }, "gravatar_id": { "format": "uuid", "type": "string" }, "html_url": { "type": "string" }, "id": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "login": { "type": "string" }, "node_id": { "format": "uuid", "type": "string" }, "organizations_url": { "type": "string" }, "received_events_url": { "type": "string" }, "repos_url": { "type": "string" }, "site_admin": { "type": "boolean" }, "starred_url": { "type": "string" }, "subscriptions_url": { "type": "string" }, "type": { "type": "string" }, "url": { "type": "string" } }, "type": "object" }, "permissions": { "nullable": true, "properties": { "admin": { "type": "boolean" }, "maintain": { "type": "boolean" }, "pull": { "type": "boolean" }, "push": { "type": "boolean" }, "triage": { "type": "boolean" } }, "type": "object" }, "private": { "type": "boolean" }, "pulls_url": { "type": "string" }, "pushed_at": { "format": "date-time", "type": "string" }, "releases_url": { "type": "string" }, "size": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "ssh_url": { "type": "string" }, "stargazers_count": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "stargazers_url": { "type": "string" }, "statuses_url": { "type": "string" }, "subscribers_url": { "type": "string" }, "subscription_url": { "type": "string" }, "svn_url": { "type": "string" }, "tags_url": { "type": "string" }, "teams_url": { "type": "string" }, "topics": { "items": { "type": "string" }, "type": "array" }, "trees_url": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "url": { "type": "string" }, "visibility": { "type": "string" }, "watchers": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "watchers_count": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "web_commit_signoff_required": { "type": "boolean" } }, "type": "object" }, "type": "array" }, "total_count": { "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "LogsResponse": { "description": "LogsResponse schema", "properties": { "data": { "properties": { "logs": { "items": { "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "page": { "default": 1, "minimum": 1, "type": "integer" }, "page_size": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" }, "total_count": { "format": "int64", "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "MachineActionResponse": { "description": "MachineActionResponse schema", "properties": { "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "MachineBillingResponse": { "description": "MachineBillingResponse schema", "properties": { "data": { "nullable": true, "properties": { "billing_status": { "nullable": true, "type": "string" }, "days_remaining": { "nullable": true, "type": "integer" }, "grace_deadline": { "nullable": true, "type": "string" }, "has_machine": { "type": "boolean" }, "has_unpaid_trial": { "type": "boolean" }, "message": { "nullable": true, "type": "string" }, "monthly_cost_cents": { "nullable": true, "type": "integer" }, "monthly_cost_usd": { "nullable": true, "type": "string" }, "period_end": { "nullable": true, "type": "string" }, "plan_name": { "nullable": true, "type": "string" }, "plan_tier": { "nullable": true, "type": "string" } }, "type": "object" }, "status": { "type": "string" } }, "type": "object" }, "MachineEventsResponse": { "description": "MachineEventsResponse schema", "properties": { "data": { "items": { "properties": { "count": { "type": "integer" }, "details": { "nullable": true, "type": "string" }, "event_type": { "type": "string" }, "machine_name": { "type": "string" }, "time": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "MachineMetricsResponse": { "description": "MachineMetricsResponse schema", "properties": { "data": { "items": { "properties": { "cpu_usage_pct": { "format": "float", "nullable": true, "type": "number" }, "machine_name": { "type": "string" }, "memory_bytes": { "format": "int64", "nullable": true, "type": "integer" }, "memory_limit_bytes": { "format": "int64", "nullable": true, "type": "integer" }, "net_rx_bytes": { "format": "int64", "nullable": true, "type": "integer" }, "net_rx_drops": { "format": "int64", "nullable": true, "type": "integer" }, "net_rx_packets": { "format": "int64", "nullable": true, "type": "integer" }, "net_tx_bytes": { "format": "int64", "nullable": true, "type": "integer" }, "net_tx_drops": { "format": "int64", "nullable": true, "type": "integer" }, "net_tx_packets": { "format": "int64", "nullable": true, "type": "integer" }, "time": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "MachineStateResponse": { "description": "MachineStateResponse schema", "properties": { "data": { "nullable": true, "properties": { "active": { "type": "boolean" }, "pid": { "type": "integer" }, "state": { "type": "string" }, "uptime_sec": { "format": "int64", "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "MachineSummaryResponse": { "description": "MachineSummaryResponse schema", "properties": { "data": { "properties": { "avg_cpu_pct": { "format": "double", "nullable": true, "type": "number" }, "avg_memory_mb": { "format": "double", "nullable": true, "type": "number" }, "event_count": { "type": "integer" }, "machine_name": { "type": "string" }, "max_cpu_pct": { "format": "double", "nullable": true, "type": "number" }, "max_memory_mb": { "format": "double", "nullable": true, "type": "number" }, "recent_events": { "items": { "properties": { "count": { "type": "integer" }, "details": { "nullable": true, "type": "string" }, "event_type": { "type": "string" }, "machine_name": { "type": "string" }, "time": { "format": "date-time", "type": "string" } }, "type": "object" }, "type": "array" }, "total_bytes_sent_mb": { "format": "double", "type": "number" }, "total_err_count": { "format": "int64", "type": "integer" }, "total_req_count": { "format": "int64", "type": "integer" }, "total_rx_drops": { "format": "double", "nullable": true, "type": "number" }, "total_rx_mb": { "format": "double", "nullable": true, "type": "number" }, "total_tx_drops": { "format": "double", "nullable": true, "type": "number" }, "total_tx_mb": { "format": "double", "nullable": true, "type": "number" }, "window_end": { "format": "date-time", "type": "string" }, "window_start": { "format": "date-time", "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "MarkOnboardingCompleteResponse": { "description": "MarkOnboardingCompleteResponse schema", "properties": { "data": { "properties": { "is_onboarded": { "type": "boolean" } }, "type": "object" } }, "type": "object" }, "MessageResponse": { "description": "MessageResponse schema", "properties": { "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "PreferencesResponse": { "description": "PreferencesResponse schema", "properties": { "data": { "nullable": true, "properties": { "activity": { "items": { "properties": { "description": { "description": "Description of the preference type", "example": "Notifies when a deployment succeeds", "type": "string" }, "enabled": { "description": "Whether this preference is enabled", "example": true, "type": "boolean" }, "id": { "description": "Preference type identifier", "example": "deployment_success", "format": "uuid", "type": "string" }, "label": { "description": "Display label for the preference", "example": "Deployment Success", "type": "string" } }, "required": [ "description", "id", "label" ], "type": "object" }, "type": "array" }, "security": { "items": { "properties": { "description": { "description": "Description of the preference type", "example": "Notifies when a deployment succeeds", "type": "string" }, "enabled": { "description": "Whether this preference is enabled", "example": true, "type": "boolean" }, "id": { "description": "Preference type identifier", "example": "deployment_success", "format": "uuid", "type": "string" }, "label": { "description": "Display label for the preference", "example": "Deployment Success", "type": "string" } }, "required": [ "description", "id", "label" ], "type": "object" }, "type": "array" }, "update": { "items": { "properties": { "description": { "description": "Description of the preference type", "example": "Notifies when a deployment succeeds", "type": "string" }, "enabled": { "description": "Whether this preference is enabled", "example": true, "type": "boolean" }, "id": { "description": "Preference type identifier", "example": "deployment_success", "format": "uuid", "type": "string" }, "label": { "description": "Display label for the preference", "example": "Deployment Success", "type": "string" } }, "required": [ "description", "id", "label" ], "type": "object" }, "type": "array" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "PreviewComposeRequest": { "description": "PreviewComposeRequest schema", "properties": { "base_path": { "description": "Base path within the repository", "example": "/", "nullable": true, "type": "string" }, "branch": { "description": "Git branch to preview", "example": "main", "type": "string" }, "dockerfile_path": { "description": "Path to the Dockerfile", "example": "Dockerfile", "nullable": true, "type": "string" }, "repository": { "description": "Git repository URL or identifier", "example": "github.com/org/repo", "type": "string" } }, "required": [ "branch", "repository" ], "type": "object" }, "PreviewComposeResponse": { "description": "PreviewComposeResponse schema", "properties": { "services": { "items": { "properties": { "port": { "description": "Port the service listens on", "example": 8080, "type": "integer" }, "service_name": { "description": "Name of the compose service", "example": "web", "type": "string" } }, "required": [ "port", "service_name" ], "type": "object" }, "type": "array" } }, "type": "object" }, "ProjectFamilyResponse": { "description": "ProjectFamilyResponse schema", "properties": { "data": { "properties": { "projects": { "items": { "properties": { "base_path": { "type": "string" }, "branch": { "type": "string" }, "build_pack": { "type": "string" }, "build_variables": { "type": "string" }, "compose_services": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "$ref": "#/components/schemas/ComposeService" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "created_at": { "format": "date-time", "type": "string" }, "deployments": { "items": { "nullable": true, "properties": { "application": { "$ref": "#/components/schemas/Application" }, "application_id": { "format": "uuid", "type": "string" }, "children": { "items": { "$ref": "#/components/schemas/ApplicationDeployment" }, "type": "array" }, "commit_hash": { "type": "string" }, "container_id": { "format": "uuid", "type": "string" }, "container_image": { "type": "string" }, "container_name": { "type": "string" }, "container_status": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "image_s3_key": { "type": "string" }, "image_size": { "format": "int64", "type": "integer" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "parent_deployment_id": { "format": "uuid", "type": "string" }, "server_id": { "format": "uuid", "type": "string" }, "status": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "dockerfile_path": { "type": "string" }, "domains": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "compose_service": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domains": { "items": { "$ref": "#/components/schemas/ApplicationDomain" }, "type": "array" }, "id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "service_name": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "compose_service_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "domain": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" } }, "type": "object" }, "nullable": true, "type": "array" }, "environment": { "type": "string" }, "environment_variables": { "type": "string" }, "family_id": { "format": "uuid", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_live_deployment": { "type": "boolean" }, "labels": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "logs": { "items": { "nullable": true, "properties": { "application_deployment_id": { "format": "uuid", "type": "string" }, "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "log": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "post_run_command": { "type": "string" }, "pre_run_command": { "type": "string" }, "proxy_server": { "type": "string" }, "repository": { "type": "string" }, "routing_strategy": { "type": "string" }, "servers": { "items": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_primary": { "type": "boolean" }, "server": { "nullable": true, "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "server_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "source": { "type": "string" }, "status": { "nullable": true, "properties": { "application_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "type": "object" }, "template_id": { "format": "uuid", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ProvisionRequest": { "description": "ProvisionRequest schema", "properties": { "image": { "nullable": true, "type": "string" } }, "type": "object" }, "ProvisionTrailResponse": { "description": "ProvisionTrailResponse schema", "properties": { "data": { "nullable": true, "properties": { "message": { "type": "string" }, "session_id": { "format": "uuid", "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "error": { "nullable": true, "type": "string" }, "message": { "nullable": true, "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "PruneBuildCacheRequest": { "description": "PruneBuildCacheRequest schema", "properties": { "all": { "nullable": true, "type": "boolean" }, "filters": { "nullable": true, "type": "string" } }, "type": "object" }, "PruneImagesRequest": { "description": "PruneImagesRequest schema", "properties": { "dangling": { "nullable": true, "type": "boolean" }, "label": { "nullable": true, "type": "string" }, "until": { "nullable": true, "type": "string" } }, "type": "object" }, "PruneImagesResponse": { "description": "PruneImagesResponse schema", "properties": { "data": { "properties": { "images_deleted": { "items": { "nullable": true, "properties": { "deleted": { "nullable": true, "type": "string" }, "untagged": { "nullable": true, "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "space_reclaimed": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "RandomSubdomainResponseWrapper": { "description": "RandomSubdomainResponseWrapper schema", "properties": { "data": { "properties": { "domain": { "type": "string" }, "subdomain": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "ReDeployApplicationRequest": { "description": "ReDeployApplicationRequest schema", "properties": { "force": { "description": "Force redeployment even if already deploying", "type": "boolean" }, "force_without_cache": { "description": "Force redeployment without using Docker build cache", "type": "boolean" }, "id": { "description": "Application ID to redeploy", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "target_server_ids": { "description": "Specific server IDs to target for this redeployment", "items": { "description": "Specific server IDs to target for this redeployment", "format": "uuid", "type": "string" }, "nullable": true, "type": "array" } }, "required": [ "id" ], "type": "object" }, "RecoverRequest": { "description": "RecoverRequest schema", "properties": { "application_id": { "description": "Application ID to recover. If not provided, recovers all applications", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "type": "object" }, "RecoverResponse": { "description": "RecoverResponse schema", "properties": { "data": { "properties": { "failed": { "items": { "properties": { "application_id": { "format": "uuid", "type": "string" }, "application_name": { "type": "string" }, "reason": { "type": "string" } }, "type": "object" }, "type": "array" }, "recovered": { "items": { "properties": { "application_id": { "format": "uuid", "type": "string" }, "application_name": { "type": "string" }, "reason": { "type": "string" } }, "type": "object" }, "type": "array" }, "skipped": { "items": { "properties": { "application_id": { "format": "uuid", "type": "string" }, "application_name": { "type": "string" }, "reason": { "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "RemoveApplicationDomainRequest": { "description": "RemoveApplicationDomainRequest schema", "properties": { "domain": { "type": "string" } }, "type": "object" }, "RemoveCustomDomainRequest": { "description": "RemoveCustomDomainRequest schema", "properties": { "id": { "description": "Custom domain ID to remove", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "RenameMachineRequest": { "description": "RenameMachineRequest schema", "properties": { "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "RenameMachineResponse": { "description": "RenameMachineResponse schema", "properties": { "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" } }, "type": "object" }, "Response": { "description": "Response schema", "properties": { "data": { "nullable": true }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "RestartDeploymentRequest": { "description": "RestartDeploymentRequest schema", "properties": { "id": { "description": "Application ID to restart", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "RollbackDeploymentRequest": { "description": "RollbackDeploymentRequest schema", "properties": { "id": { "description": "Application ID to roll back", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "target_server_ids": { "description": "Specific server IDs to target for the rollback", "items": { "description": "Specific server IDs to target for the rollback", "format": "uuid", "type": "string" }, "nullable": true, "type": "array" } }, "required": [ "id" ], "type": "object" }, "SMTPConfigResponse": { "description": "SMTPConfigResponse schema", "properties": { "data": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "from_email": { "type": "string" }, "from_name": { "type": "string" }, "host": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "type": "integer" }, "security": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" }, "username": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "SSHConnectionStatusResponse": { "description": "SSHConnectionStatusResponse schema", "properties": { "connected": { "type": "boolean" }, "is_configured": { "type": "boolean" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "SSHStatusResponse": { "description": "SSHStatusResponse schema", "properties": { "is_active": { "type": "boolean" }, "last_used_at": { "nullable": true, "type": "string" } }, "type": "object" }, "SelectPlanRequest": { "description": "SelectPlanRequest schema", "properties": { "plan_tier": { "type": "string" } }, "required": [ "plan_tier" ], "type": "object" }, "SelectPlanResponse": { "description": "SelectPlanResponse schema", "properties": { "balance_after_cents": { "nullable": true, "type": "integer" }, "charged_cents": { "nullable": true, "type": "integer" }, "error": { "nullable": true, "type": "string" }, "message": { "type": "string" }, "period_end": { "nullable": true, "type": "string" }, "plan": { "nullable": true, "properties": { "id": { "format": "uuid", "type": "string" }, "monthly_cost_cents": { "type": "integer" }, "monthly_cost_usd": { "type": "string" }, "name": { "type": "string" }, "ram_mb": { "type": "integer" }, "storage_mb": { "type": "integer" }, "tier": { "type": "string" }, "vcpu": { "type": "integer" } }, "type": "object" }, "status": { "type": "string" } }, "type": "object" }, "SendNotificationRequest": { "description": "SendNotificationRequest schema", "properties": { "channel": { "description": "Notification delivery channel", "example": "email", "type": "string" }, "message": { "description": "Notification message body", "example": "Deployment completed successfully", "type": "string" }, "metadata": { "additionalProperties": { "description": "Additional key-value metadata for the notification", "nullable": true, "type": "string" }, "description": "Additional key-value metadata for the notification", "nullable": true, "type": "object" }, "subject": { "description": "Email subject line (only for email channel)", "example": "Deployment Update", "nullable": true, "type": "string" }, "to": { "description": "Recipient email address (only for email channel)", "example": "user@example.com", "nullable": true, "type": "string" } }, "required": [ "channel", "message" ], "type": "object" }, "SendNotificationResponse": { "description": "SendNotificationResponse schema", "properties": { "data": { "nullable": true, "properties": { "channel": { "type": "string" }, "error": { "nullable": true, "type": "string" }, "success": { "type": "boolean" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "SetApplicationServersRequest": { "description": "SetApplicationServersRequest schema", "properties": { "application_id": { "description": "Application ID to assign servers to", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "primary_server_id": { "description": "Primary server ID for routing", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "routing_strategy": { "description": "Routing strategy for multi-server deployments", "example": "round-robin", "nullable": true, "type": "string" }, "server_ids": { "description": "Server IDs to assign to the application", "items": { "description": "Server IDs to assign to the application", "format": "uuid", "type": "string", "x-fuego-required-marker": true }, "type": "array" } }, "required": [ "application_id", "server_ids" ], "type": "object" }, "SetDefaultMachineResponse": { "description": "SetDefaultMachineResponse schema", "properties": { "data": { "properties": { "auth_method": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "fingerprint": { "nullable": true, "type": "string" }, "host": { "nullable": true, "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "is_default": { "type": "boolean" }, "key_size": { "nullable": true, "type": "integer" }, "key_type": { "nullable": true, "type": "string" }, "last_used_at": { "format": "date-time", "nullable": true, "type": "string" }, "name": { "type": "string" }, "organization_id": { "format": "uuid", "type": "string" }, "port": { "nullable": true, "type": "integer" }, "proxy_host": { "nullable": true, "type": "string" }, "public_key": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user": { "nullable": true, "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "SystemStatsResponse": { "description": "SystemStatsResponse schema", "properties": { "data": { "properties": { "architecture": { "type": "string" }, "cpu": { "properties": { "overall": { "format": "double", "type": "number" }, "per_core": { "items": { "properties": { "core_id": { "type": "integer" }, "usage": { "format": "double", "type": "number" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "cpu_cores": { "type": "integer" }, "cpu_info": { "type": "string" }, "disk": { "properties": { "allMounts": { "items": { "properties": { "avail": { "type": "string" }, "capacity": { "type": "string" }, "filesystem": { "type": "string" }, "mountPoint": { "type": "string" }, "size": { "type": "string" }, "used": { "type": "string" } }, "type": "object" }, "type": "array" }, "available": { "format": "double", "type": "number" }, "mountPoint": { "type": "string" }, "percentage": { "format": "double", "type": "number" }, "total": { "format": "double", "type": "number" }, "used": { "format": "double", "type": "number" } }, "type": "object" }, "hostname": { "type": "string" }, "kernel_version": { "type": "string" }, "load": { "properties": { "fifteenMin": { "format": "double", "type": "number" }, "fiveMin": { "format": "double", "type": "number" }, "oneMin": { "format": "double", "type": "number" }, "uptime": { "type": "string" } }, "type": "object" }, "memory": { "properties": { "percentage": { "format": "double", "type": "number" }, "rawInfo": { "type": "string" }, "total": { "format": "double", "type": "number" }, "used": { "format": "double", "type": "number" } }, "type": "object" }, "network": { "properties": { "downloadSpeed": { "format": "double", "type": "number" }, "interfaces": { "items": { "properties": { "bytesRecv": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "bytesSent": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "dropIn": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "dropOut": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "errorIn": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "errorOut": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "name": { "type": "string" }, "packetsRecv": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "packetsSent": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" } }, "type": "object" }, "type": "array" }, "totalBytesRecv": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "totalBytesSent": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "totalPacketsRecv": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "totalPacketsSent": { "maximum": 18446744073709552000, "minimum": 0, "type": "integer" }, "uploadSpeed": { "format": "double", "type": "number" } }, "type": "object" }, "os_type": { "type": "string" }, "timestamp": { "format": "date-time", "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "TestServerRequest": { "description": "TestServerRequest schema", "properties": { "credentials": { "additionalProperties": { "description": "Credentials to use for the test", "type": "string" }, "description": "Credentials to use for the test", "type": "object" }, "custom_url": { "description": "Custom URL to test. Required when provider_id is 'custom'", "nullable": true, "type": "string" }, "provider_id": { "description": "MCP provider to test connection for", "format": "uuid", "type": "string" } }, "required": [ "provider_id" ], "type": "object" }, "ToggleHealthCheckRequest": { "description": "ToggleHealthCheckRequest schema", "properties": { "application_id": { "description": "ID of the application to toggle health check for", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "enabled": { "description": "Whether the health check should be enabled", "type": "boolean" } }, "required": [ "application_id" ], "type": "object" }, "TrackInstallRequest": { "description": "TrackInstallRequest schema", "properties": { "arch": { "description": "CPU architecture. Valid values: amd64, arm64, unknown", "type": "string" }, "duration": { "description": "Installation duration in seconds", "example": 120, "maximum": 7200, "minimum": 0, "type": "integer" }, "error": { "description": "Error message if installation failed", "maxLength": 200, "nullable": true, "type": "string" }, "event_type": { "description": "Type of installation event", "example": "install_success", "type": "string" }, "os": { "description": "Operating system identifier. Valid values: ubuntu, debian, centos, fedora, rhel, alpine, arch, opensuse, sles, amzn, ol, rocky, almalinux, raspbian, pop, mint, manjaro, kali, nixos, gentoo, void, slackware, clear-linux-os, unknown", "type": "string" }, "version": { "description": "Semantic version string (e.g. 1.2.3 or 1.2.3-beta.1)", "example": "1.0.0", "type": "string" } }, "required": [ "arch", "event_type", "os", "version" ], "type": "object" }, "TrackInstallResponse": { "description": "TrackInstallResponse schema", "properties": { "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "TrailStatusEnvelopeResponse": { "description": "TrailStatusEnvelopeResponse schema", "properties": { "data": { "nullable": true, "properties": { "message": { "type": "string" }, "progress": { "type": "integer" }, "session_id": { "format": "uuid", "type": "string" }, "status": { "type": "string" }, "step": { "nullable": true, "type": "string" }, "subdomain": { "nullable": true, "type": "string" }, "trail_url": { "nullable": true, "type": "string" } }, "type": "object" }, "error": { "nullable": true, "type": "string" }, "message": { "nullable": true, "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "TriggerBackupResponse": { "description": "TriggerBackupResponse schema", "properties": { "message": { "type": "string" }, "request_id": { "format": "uuid", "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "UpdateAutoUpdateRequest": { "description": "UpdateAutoUpdateRequest schema", "properties": { "auto_update": { "description": "Whether to automatically apply updates", "example": true, "type": "boolean" } }, "type": "object" }, "UpdateAvatarRequest": { "description": "UpdateAvatarRequest schema", "properties": { "avatarData": { "description": "Base64-encoded image data URI. Must start with data:image/{jpeg,jpg,png,gif};base64,", "example": "data:image/png;base64,iVBORw0KGgo...", "type": "string" } }, "required": [ "avatarData" ], "type": "object" }, "UpdateCheckResponse": { "description": "UpdateCheckResponse schema", "properties": { "current_version": { "type": "string" }, "environment": { "type": "string" }, "last_checked": { "format": "date-time", "type": "string" }, "latest_version": { "type": "string" }, "update_available": { "type": "boolean" } }, "type": "object" }, "UpdateContainerResourcesRequest": { "description": "UpdateContainerResourcesRequest schema", "properties": { "cpu_shares": { "format": "int64", "type": "integer" }, "memory": { "format": "int64", "type": "integer" }, "memory_swap": { "format": "int64", "type": "integer" } }, "type": "object" }, "UpdateContainerResourcesResponse": { "description": "UpdateContainerResourcesResponse schema", "properties": { "data": { "properties": { "container_id": { "format": "uuid", "type": "string" }, "cpu_shares": { "format": "int64", "type": "integer" }, "memory": { "format": "int64", "type": "integer" }, "memory_swap": { "format": "int64", "type": "integer" }, "warnings": { "items": { "nullable": true, "type": "string" }, "nullable": true, "type": "array" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "UpdateDeploymentRequest": { "description": "UpdateDeploymentRequest schema", "properties": { "base_path": { "description": "Base path for the application", "example": "/", "nullable": true, "type": "string" }, "build_pack": { "description": "Build strategy. Must be valid if provided", "example": "dockerfile", "nullable": true, "type": "string" }, "build_variables": { "additionalProperties": { "description": "Key-value pairs passed as build arguments to Docker", "nullable": true, "type": "string" }, "description": "Key-value pairs passed as build arguments to Docker", "nullable": true, "type": "object" }, "compose_domains": { "description": "Domain-to-service mappings for compose deployments", "items": { "description": "Domain-to-service mappings for compose deployments", "nullable": true, "properties": { "domain": { "description": "Domain name for the compose service", "example": "app.example.com", "type": "string" }, "port": { "description": "Port override for the compose service", "example": 8080, "nullable": true, "type": "integer" }, "service_name": { "description": "Name of the compose service to route to", "example": "web", "nullable": true, "type": "string" } }, "required": [ "domain" ], "type": "object" }, "nullable": true, "type": "array" }, "dockerfile_path": { "description": "Path to the Dockerfile relative to the repository root", "example": "Dockerfile", "nullable": true, "type": "string" }, "domains": { "description": "Custom domains for the application. Maximum 5 allowed", "items": { "description": "Custom domains for the application. Maximum 5 allowed", "maxLength": 5, "nullable": true, "type": "string" }, "nullable": true, "type": "array" }, "environment": { "description": "Deployment environment. Must be valid if provided", "example": "production", "nullable": true, "type": "string" }, "environment_variables": { "additionalProperties": { "description": "Key-value pairs set as runtime environment variables", "nullable": true, "type": "string" }, "description": "Key-value pairs set as runtime environment variables", "nullable": true, "type": "object" }, "force": { "description": "Force the update even if a deployment is in progress", "nullable": true, "type": "boolean" }, "id": { "description": "Application ID to update", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "name": { "description": "Application name. Minimum 3 characters if provided", "example": "my-web-app", "minLength": 3, "nullable": true, "type": "string" }, "port": { "description": "Port the application listens on", "example": 3000, "maximum": 65535, "minimum": 1, "nullable": true, "type": "integer" }, "post_run_command": { "description": "Command to run after the application starts", "example": "npm run seed", "nullable": true, "type": "string" }, "pre_run_command": { "description": "Command to run before the application starts", "example": "npm run migrate", "nullable": true, "type": "string" }, "routing_strategy": { "description": "Routing strategy for multi-server deployments", "example": "round-robin", "nullable": true, "type": "string" } }, "type": "object" }, "UpdateFeatureFlagRequest": { "description": "UpdateFeatureFlagRequest schema", "properties": { "feature_name": { "type": "string" }, "is_enabled": { "type": "boolean" } }, "required": [ "feature_name" ], "type": "object" }, "UpdateFontRequest": { "description": "UpdateFontRequest schema", "properties": { "font_family": { "description": "Font family name for the editor", "example": "JetBrains Mono", "type": "string" }, "font_size": { "description": "Font size in pixels", "example": 14, "maximum": 32, "minimum": 8, "type": "integer" } }, "required": [ "font_family", "font_size" ], "type": "object" }, "UpdateGithubConnectorRequest": { "description": "UpdateGithubConnectorRequest schema", "properties": { "connector_id": { "description": "Connector ID to update. If provided, updates this specific connector", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "nullable": true, "type": "string" }, "installation_id": { "description": "GitHub App installation ID", "example": "12345678", "format": "uuid", "type": "string" } }, "required": [ "installation_id" ], "type": "object" }, "UpdateHealthCheckRequest": { "description": "UpdateHealthCheckRequest schema", "properties": { "application_id": { "description": "ID of the application to update health check for", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "body": { "description": "Request body to send with health check requests", "nullable": true, "type": "string" }, "endpoint": { "description": "Health check endpoint path or URL. Must start with /, http://, or https://", "example": "/health", "nullable": true, "type": "string" }, "expected_status_codes": { "description": "Expected HTTP status codes", "items": { "description": "Expected HTTP status codes", "nullable": true, "type": "integer" }, "nullable": true, "type": "array" }, "failure_threshold": { "description": "Consecutive failures before marking unhealthy (1-10)", "example": 3, "maximum": 10, "minimum": 1, "nullable": true, "type": "integer" }, "headers": { "additionalProperties": { "description": "Custom HTTP headers to include in health check requests", "nullable": true, "type": "string" }, "description": "Custom HTTP headers to include in health check requests", "nullable": true, "type": "object" }, "interval_seconds": { "description": "Check interval in seconds (30-3600)", "example": 60, "maximum": 3600, "minimum": 30, "nullable": true, "type": "integer" }, "method": { "description": "HTTP method to use. Must be GET, POST, or HEAD", "example": "GET", "nullable": true, "type": "string" }, "retention_days": { "description": "Number of days to retain health check results (1-365)", "example": 30, "maximum": 365, "minimum": 1, "nullable": true, "type": "integer" }, "success_threshold": { "description": "Consecutive successes before marking healthy (1-10)", "example": 1, "maximum": 10, "minimum": 1, "nullable": true, "type": "integer" }, "timeout_seconds": { "description": "Request timeout in seconds (5-120)", "example": 30, "maximum": 120, "minimum": 5, "nullable": true, "type": "integer" } }, "required": [ "application_id" ], "type": "object" }, "UpdateLabelsRequest": { "description": "UpdateLabelsRequest schema", "properties": { "labels": { "items": { "type": "string", "x-fuego-required-marker": true }, "type": "array" } }, "required": [ "labels" ], "type": "object" }, "UpdateLanguageRequest": { "description": "UpdateLanguageRequest schema", "properties": { "language": { "description": "Preferred language code", "example": "en", "type": "string" } }, "required": [ "language" ], "type": "object" }, "UpdatePreferenceRequest": { "description": "UpdatePreferenceRequest schema", "properties": { "category": { "description": "Notification category", "example": "activity", "type": "string" }, "enabled": { "description": "Whether this notification preference is enabled", "example": true, "type": "boolean" }, "type": { "description": "Preference type identifier", "example": "deployment_success", "type": "string" } }, "required": [ "category", "type" ], "type": "object" }, "UpdateRequest": { "description": "UpdateRequest schema", "properties": { "force": { "type": "boolean" } }, "type": "object" }, "UpdateResponse": { "description": "UpdateResponse schema", "properties": { "message": { "type": "string" }, "success": { "type": "boolean" } }, "type": "object" }, "UpdateSMTPConfigRequest": { "description": "UpdateSMTPConfigRequest schema", "properties": { "from_email": { "description": "Sender email address for outgoing emails", "example": "noreply@example.com", "nullable": true, "type": "string" }, "from_name": { "description": "Display name for outgoing emails", "example": "Nixopus", "nullable": true, "type": "string" }, "host": { "description": "SMTP server hostname", "example": "smtp.gmail.com", "nullable": true, "type": "string" }, "id": { "description": "SMTP configuration ID to update", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "organization_id": { "description": "Organization this SMTP config belongs to", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" }, "password": { "description": "SMTP authentication password", "example": "app-password", "nullable": true, "type": "string" }, "port": { "description": "SMTP server port", "example": 587, "nullable": true, "type": "integer" }, "username": { "description": "SMTP authentication username", "example": "user@gmail.com", "nullable": true, "type": "string" } }, "required": [ "id", "organization_id" ], "type": "object" }, "UpdateServerRequest": { "description": "UpdateServerRequest schema", "properties": { "credentials": { "additionalProperties": { "description": "Updated provider credentials", "type": "string" }, "description": "Updated provider credentials", "type": "object" }, "custom_url": { "description": "Updated custom server URL. Must use HTTPS if provided", "nullable": true, "type": "string" }, "enabled": { "description": "Whether the server is active", "type": "boolean" }, "id": { "description": "MCP server ID to update", "format": "uuid", "type": "string" }, "name": { "description": "Updated display name", "type": "string" } }, "required": [ "id", "name" ], "type": "object" }, "UpdateThemeRequest": { "description": "UpdateThemeRequest schema", "properties": { "theme": { "description": "UI theme name", "example": "dark", "type": "string" } }, "required": [ "theme" ], "type": "object" }, "UpdateUserNameRequest": { "description": "UpdateUserNameRequest schema", "properties": { "name": { "description": "New username. Must be 3-50 characters with no spaces", "example": "johndoe", "maxLength": 50, "minLength": 3, "type": "string" } }, "required": [ "name" ], "type": "object" }, "UpdateUsernameResponse": { "description": "UpdateUsernameResponse schema", "properties": { "data": { "properties": { "name": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "UpdateWebhookConfigRequest": { "description": "UpdateWebhookConfigRequest schema", "properties": { "is_active": { "description": "Whether the webhook integration is active", "example": true, "nullable": true, "type": "boolean" }, "type": { "description": "Webhook integration type", "example": "slack", "type": "string" }, "webhook_url": { "description": "Updated webhook URL", "example": "https://hooks.slack.com/services/...", "nullable": true, "type": "string" } }, "required": [ "type" ], "type": "object" }, "User": { "nullable": true, "properties": { "avatar": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "email": { "type": "string" }, "email_verified": { "type": "boolean" }, "id": { "format": "uuid", "type": "string" }, "image": { "nullable": true, "type": "string" }, "is_onboarded": { "type": "boolean" }, "is_verified": { "type": "boolean" }, "name": { "type": "string" }, "organization_users": { "items": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "organization": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "logo": { "nullable": true, "type": "string" }, "metadata": { "nullable": true, "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" } }, "type": "object" }, "organization_id": { "format": "uuid", "type": "string" }, "role": { "type": "string" }, "user": { "$ref": "#/components/schemas/User" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "organizations": { "items": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "logo": { "nullable": true, "type": "string" }, "metadata": { "nullable": true, "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "provision_status": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "username": { "type": "string" } }, "type": "object" }, "UserPreferencesData": { "description": "UserPreferencesData schema", "properties": { "debug_mode": { "type": "boolean" }, "show_api_error_details": { "type": "boolean" }, "terminal_cursor_blink": { "nullable": true, "type": "boolean" }, "terminal_cursor_style": { "nullable": true, "type": "string" }, "terminal_cursor_width": { "nullable": true, "type": "integer" }, "terminal_font_family": { "nullable": true, "type": "string" }, "terminal_font_size": { "nullable": true, "type": "integer" }, "terminal_font_weight": { "nullable": true, "type": "string" }, "terminal_letter_spacing": { "format": "double", "nullable": true, "type": "number" }, "terminal_line_height": { "format": "double", "nullable": true, "type": "number" }, "terminal_scrollback": { "nullable": true, "type": "integer" }, "terminal_tab_stop_width": { "nullable": true, "type": "integer" } }, "type": "object" }, "UserPreferencesResponse": { "description": "UserPreferencesResponse schema", "properties": { "data": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "preferences": { "properties": { "debug_mode": { "type": "boolean" }, "show_api_error_details": { "type": "boolean" }, "terminal_cursor_blink": { "nullable": true, "type": "boolean" }, "terminal_cursor_style": { "nullable": true, "type": "string" }, "terminal_cursor_width": { "nullable": true, "type": "integer" }, "terminal_font_family": { "nullable": true, "type": "string" }, "terminal_font_size": { "nullable": true, "type": "integer" }, "terminal_font_weight": { "nullable": true, "type": "string" }, "terminal_letter_spacing": { "format": "double", "nullable": true, "type": "number" }, "terminal_line_height": { "format": "double", "nullable": true, "type": "number" }, "terminal_scrollback": { "nullable": true, "type": "integer" }, "terminal_tab_stop_width": { "nullable": true, "type": "integer" } }, "type": "object" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "UserResponse": { "description": "UserResponse schema", "properties": { "data": { "nullable": true, "properties": { "avatar": { "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "email": { "type": "string" }, "email_verified": { "type": "boolean" }, "id": { "format": "uuid", "type": "string" }, "image": { "nullable": true, "type": "string" }, "is_onboarded": { "type": "boolean" }, "is_verified": { "type": "boolean" }, "name": { "type": "string" }, "organization_users": { "items": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "organization": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "logo": { "nullable": true, "type": "string" }, "metadata": { "nullable": true, "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" } }, "type": "object" }, "organization_id": { "format": "uuid", "type": "string" }, "role": { "type": "string" }, "user": { "$ref": "#/components/schemas/User" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "organizations": { "items": { "nullable": true, "properties": { "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "logo": { "nullable": true, "type": "string" }, "metadata": { "nullable": true, "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" } }, "type": "object" }, "nullable": true, "type": "array" }, "provision_status": { "nullable": true, "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "username": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "UserSettingsResponse": { "description": "UserSettingsResponse schema", "properties": { "data": { "nullable": true, "properties": { "auto_update": { "type": "boolean" }, "created_at": { "format": "date-time", "type": "string" }, "deleted_at": { "format": "date-time", "nullable": true, "type": "string" }, "font_family": { "type": "string" }, "font_size": { "type": "integer" }, "id": { "format": "uuid", "type": "string" }, "language": { "type": "string" }, "theme": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "VerifyCustomDomainRequest": { "description": "VerifyCustomDomainRequest schema", "properties": { "id": { "description": "Custom domain ID to verify DNS records for", "example": "550e8400-e29b-41d4-a716-446655440000", "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "VerifyMachineResponse": { "description": "VerifyMachineResponse schema", "properties": { "is_active": { "type": "boolean" }, "status": { "type": "string" } }, "type": "object" }, "WebhookConfigResponse": { "description": "WebhookConfigResponse schema", "properties": { "data": { "nullable": true, "properties": { "channel_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "id": { "format": "uuid", "type": "string" }, "is_active": { "type": "boolean" }, "organization_id": { "format": "uuid", "type": "string" }, "type": { "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "user_id": { "format": "uuid", "type": "string" }, "webhook_url": { "type": "string" } }, "type": "object" }, "message": { "type": "string" }, "status": { "type": "string" } }, "type": "object" }, "unknown-interface": { "description": "unknown-interface schema" } }, "securitySchemes": { "bearerAuth": { "bearerFormat": "JWT", "description": "Enter your JWT token in the format: Bearer \u003ctoken\u003e", "scheme": "bearer", "type": "http" } } }, "info": { "description": "\nThis is the autogenerated OpenAPI documentation for your [Fuego](https://github.com/go-fuego/fuego) API.\n\nBelow is a Fuego Cheatsheet to help you get started. Don't hesitate to check the [Fuego documentation](https://go-fuego.dev) for more details.\n\nHappy coding! 🔥\n\n## Usage\n\n### Route registration\n\n```go\nfunc main() {\n\t// Create a new server\n\ts := fuego.NewServer()\n\n\t// Register some routes\n\tfuego.Post(s, \"/hello\", myController)\n\tfuego.Get(s, \"/myPath\", otherController)\n\tfuego.Put(s, \"/hello\", thirdController)\n\n\tadminRoutes := fuego.Group(s, \"/admin\")\n\tfuego.Use(adminRoutes, myMiddleware) // This middleware (for authentication, etc...) will be available for routes starting by /admin/*, \n\tfuego.Get(adminRoutes, \"/hello\", groupController) // This route will be available at /admin/hello\n\n\t// Start the server\n\ts.Start()\n}\n```\n\n### Basic controller\n\n```go\ntype MyBody struct {\n\tName string `json:\"name\" validate:\"required,max=30\"`\n}\n\ntype MyResponse struct {\n\tAnswer string `json:\"answer\"`\n}\n\nfunc hello(ctx fuego.ContextWithBody[MyBody]) (*MyResponse, error) {\n\tbody, err := ctx.Body()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn \u0026MyResponse{Answer: \"Hello \" + body.Name}, nil\n}\n```\n\n### Add openAPI information to the route\n\n```go\nimport (\n\t\"github.com/go-fuego/fuego\"\n\t\"github.com/go-fuego/fuego/option\"\n\t\"github.com/go-fuego/fuego/param\"\n)\n\nfunc main() {\n\ts := fuego.NewServer()\n\n\t// Custom OpenAPI options\n\tfuego.Post(s, \"/\", myController\n\t\toption.Description(\"This route does something...\"),\n\t\toption.Summary(\"This is my summary\"),\n\t\toption.Tags(\"MyTag\"), // A tag is set by default according to the return type (can be deactivated)\n\t\toption.Deprecated(), // Marks the route as deprecated in the OpenAPI spec\n\n\t\toption.Query(\"name\", \"Declares a query parameter with default value\", param.Default(\"Carmack\")),\n\t\toption.Header(\"Authorization\", \"Bearer token\", param.Required()),\n\t\toptionPagination,\n\t\toptionCustomBehavior,\n\t)\n\n\ts.Run()\n}\n\nvar optionPagination = option.Group(\n\toption.QueryInt(\"page\", \"Page number\", param.Default(1), param.Example(\"1st page\", 1), param.Example(\"42nd page\", 42)),\n\toption.QueryInt(\"perPage\", \"Number of items per page\"),\n)\n\nvar optionCustomBehavior = func(r *fuego.BaseRoute) {\n\tr.XXX = \"YYY\"\n}\n```\n\nThen, in the controller\n\n```go\ntype MyResponse struct {\n\tAnswer string `json:\"answer\"`\n}\n\nfunc getAllPets(ctx fuego.ContextNoBody) (*MyResponse, error) {\n\tname := ctx.QueryParam(\"name\")\n\tperPage, _ := ctx.QueryParamIntErr(\"per_page\")\n\n\treturn \u0026MyResponse{Answer: \"Hello \" + name}, nil\n}\n```\n", "title": "OpenAPI", "version": "0.0.1" }, "openapi": "3.1.0", "paths": { "/api/v1/audit/logs": { "get": { "description": "List audit logs.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listAuditLogs", "parameters": [ { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "description": "Search text", "example": "nginx", "in": "query", "name": "search", "schema": { "type": "string" } }, { "description": "Resource type filter", "in": "query", "name": "resource_type", "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/GetActivitiesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/GetActivitiesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List audit logs", "tags": [ "Audit" ] } }, "/api/v1/auth/bootstrap": { "get": { "description": "Get bootstrap session data.\n\nAuth: Required (bearer token).\nScope: No organization scope required.\nSide effects: Read-only operation.", "operationId": "getBootstrapSessionData", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "activeOrganizationId": "string", "hasServers": true, "organizations": [], "provisionId": "string", "provisionStep": "string", "user": {} }, "schema": { "$ref": "#/components/schemas/BootstrapResponse" } }, "application/xml": { "example": { "activeOrganizationId": "string", "hasServers": true, "organizations": [], "provisionId": "string", "provisionStep": "string", "user": {} }, "schema": { "$ref": "#/components/schemas/BootstrapResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get bootstrap session data", "tags": [ "Auth" ] } }, "/api/v1/auth/is-admin-registered": { "get": { "description": "Check admin registration.\n\nAuth: Public endpoint.\nScope: No organization scope required.\nSide effects: Read-only operation.", "operationId": "checkAdminRegistration", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/AdminRegisteredResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/AdminRegisteredResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Check admin registration", "tags": [ "Auth" ] } }, "/api/v1/cli/telemetry": { "post": { "description": "Track CLI installation event.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "trackCLIInstallationEvent", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "arch": "string", "duration": 120, "error": "string", "event_type": "install_success", "os": "string", "version": "1.0.0" }, "schema": { "$ref": "#/components/schemas/TrackInstallRequest" } } }, "description": "Request body for types.TrackInstallRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/TrackInstallResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/TrackInstallResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Track CLI installation event", "tags": [ "Telemetry" ] } }, "/api/v1/container": { "get": { "description": "List containers.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listContainers", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListContainersResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListContainersResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List containers", "tags": [ "Containers" ] } }, "/api/v1/container/images": { "post": { "description": "List images.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "listImages", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "all": true, "container_id": "00000000-0000-0000-0000-000000000000", "image_prefix": "string" }, "schema": { "$ref": "#/components/schemas/ListImagesRequest" } } }, "description": "Request body for controller.ListImagesRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListImagesResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListImagesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List images", "tags": [ "Containers" ] } }, "/api/v1/container/prune/build-cache": { "post": { "description": "Prune build cache.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "pruneBuildCache", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "all": true, "filters": "string" }, "schema": { "$ref": "#/components/schemas/PruneBuildCacheRequest" } } }, "description": "Request body for controller.PruneBuildCacheRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Prune build cache", "tags": [ "Containers" ] } }, "/api/v1/container/prune/images": { "post": { "description": "Prune images.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "pruneImages", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "dangling": true, "label": "string", "until": "string" }, "schema": { "$ref": "#/components/schemas/PruneImagesRequest" } } }, "description": "Request body for controller.PruneImagesRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/PruneImagesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/PruneImagesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Prune images", "tags": [ "Containers" ] } }, "/api/v1/container/{container_id}": { "delete": { "description": "Remove container.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "removeContainer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "container_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Remove container", "tags": [ "Containers" ] }, "get": { "description": "Get container.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getContainer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "container_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/GetContainerResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/GetContainerResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get container", "tags": [ "Containers" ] } }, "/api/v1/container/{container_id}/logs": { "post": { "description": "Get container logs.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "getContainerLogs", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "container_id", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "follow": true, "id": "00000000-0000-0000-0000-000000000000", "since": "string", "stderr": true, "stdout": true, "tail": 1, "until": "string" }, "schema": { "$ref": "#/components/schemas/ContainerLogsRequest" } } }, "description": "Request body for types.ContainerLogsRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerLogsResponse" } }, "application/xml": { "example": { "data": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerLogsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get container logs", "tags": [ "Containers" ] } }, "/api/v1/container/{container_id}/resources": { "put": { "description": "Update container resources.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateContainerResources", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "container_id", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "cpu_shares": 1, "memory": 1, "memory_swap": 1 }, "schema": { "$ref": "#/components/schemas/UpdateContainerResourcesRequest" } } }, "description": "Request body for types.UpdateContainerResourcesRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UpdateContainerResourcesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UpdateContainerResourcesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update container resources", "tags": [ "Containers" ] } }, "/api/v1/container/{container_id}/restart": { "post": { "description": "Restart container.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "restartContainer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "container_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Restart container", "tags": [ "Containers" ] } }, "/api/v1/container/{container_id}/start": { "post": { "description": "Start container.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "startContainer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "container_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Start container", "tags": [ "Containers" ] } }, "/api/v1/container/{container_id}/stop": { "post": { "description": "Stop container.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "stopContainer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "container_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ContainerActionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Stop container", "tags": [ "Containers" ] } }, "/api/v1/deploy/application": { "delete": { "description": "Delete application.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deleteApplication", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/DeleteDeploymentRequest" } } }, "description": "Request body for types.DeleteDeploymentRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Delete application", "tags": [ "Deploy" ] }, "get": { "description": "Get application.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getApplication", "parameters": [ { "description": "Application ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get application", "tags": [ "Deploy" ] }, "post": { "description": "Deploy application.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deployApplication", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "base_path": "/", "branch": "main", "build_pack": "dockerfile", "build_variables": {}, "compose_domains": [], "dockerfile_path": "Dockerfile", "domains": [], "environment": "production", "environment_variables": {}, "name": "my-web-app", "port": 3000, "post_run_command": "npm run seed", "pre_run_command": "npm run migrate", "primary_server_id": "550e8400-e29b-41d4-a716-446655440000", "repository": "github.com/org/repo", "routing_strategy": "round-robin", "server_ids": [], "source": "github", "target_server_ids": [] }, "schema": { "$ref": "#/components/schemas/CreateDeploymentRequest" } } }, "description": "Request body for types.CreateDeploymentRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Deploy application", "tags": [ "Deploy" ] }, "put": { "description": "Update application.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateApplication", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "base_path": "/", "build_pack": "dockerfile", "build_variables": {}, "compose_domains": [], "dockerfile_path": "Dockerfile", "domains": [], "environment": "production", "environment_variables": {}, "force": true, "id": "550e8400-e29b-41d4-a716-446655440000", "name": "my-web-app", "port": 3000, "post_run_command": "npm run seed", "pre_run_command": "npm run migrate", "routing_strategy": "round-robin" }, "schema": { "$ref": "#/components/schemas/UpdateDeploymentRequest" } } }, "description": "Request body for types.UpdateDeploymentRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update application", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/cancel-deployment": { "post": { "description": "Cancel deployment.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "cancelDeployment", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "deployment_id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/CancelDeploymentRequest" } } }, "description": "Request body for types.CancelDeploymentRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Cancel deployment", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/compose-services": { "get": { "description": "List compose services.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listComposeServices", "parameters": [ { "description": "Application ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ComposeServicesResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ComposeServicesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List compose services", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/deployments": { "get": { "description": "List application deployments.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listApplicationDeployments", "parameters": [ { "description": "Application ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListDeploymentsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListDeploymentsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List application deployments", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/deployments/{deployment_id}": { "get": { "description": "Get deployment.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getDeployment", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "deployment_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/DeploymentResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/DeploymentResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get deployment", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/deployments/{deployment_id}/logs": { "get": { "description": "Get deployment logs.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getDeploymentLogs", "parameters": [ { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "description": "Log level filter", "example": "info", "in": "query", "name": "level", "schema": { "type": "string" } }, { "description": "Start time (RFC3339)", "example": "2026-01-01T00:00:00Z", "in": "query", "name": "start_time", "schema": { "type": "string" } }, { "description": "End time (RFC3339)", "example": "2026-01-02T00:00:00Z", "in": "query", "name": "end_time", "schema": { "type": "string" } }, { "description": "Search term", "example": "nginx", "in": "query", "name": "search_term", "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "deployment_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/LogsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/LogsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get deployment logs", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/domains": { "delete": { "description": "Remove application domain.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "removeApplicationDomain", "parameters": [ { "description": "Application ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "domain": "string" }, "schema": { "$ref": "#/components/schemas/RemoveApplicationDomainRequest" } } }, "description": "Request body for controller.RemoveApplicationDomainRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Remove application domain", "tags": [ "Deploy" ] }, "post": { "description": "Add application domain.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "addApplicationDomain", "parameters": [ { "description": "Application ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "domain": "string", "port": 1, "service_name": "string" }, "schema": { "$ref": "#/components/schemas/AddApplicationDomainRequest" } } }, "description": "Request body for controller.AddApplicationDomainRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Add application domain", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/labels": { "put": { "description": "Update application labels.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateApplicationLabels", "parameters": [ { "description": "Application ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "labels": [] }, "schema": { "$ref": "#/components/schemas/UpdateLabelsRequest" } } }, "description": "Request body for controller.UpdateLabelsRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/LabelsResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/LabelsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update application labels", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/logs/{application_id}": { "get": { "description": "Get application logs.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getApplicationLogs", "parameters": [ { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "description": "Log level filter", "example": "info", "in": "query", "name": "level", "schema": { "type": "string" } }, { "description": "Start time (RFC3339)", "example": "2026-01-01T00:00:00Z", "in": "query", "name": "start_time", "schema": { "type": "string" } }, { "description": "End time (RFC3339)", "example": "2026-01-02T00:00:00Z", "in": "query", "name": "end_time", "schema": { "type": "string" } }, { "description": "Search term", "example": "nginx", "in": "query", "name": "search_term", "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "application_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/LogsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/LogsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get application logs", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/preview-compose": { "post": { "description": "Preview compose services.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "previewComposeServices", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "base_path": "/", "branch": "main", "dockerfile_path": "Dockerfile", "repository": "github.com/org/repo" }, "schema": { "$ref": "#/components/schemas/PreviewComposeRequest" } } }, "description": "Request body for types.PreviewComposeRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "services": [] }, "schema": { "$ref": "#/components/schemas/PreviewComposeResponse" } }, "application/xml": { "example": { "services": [] }, "schema": { "$ref": "#/components/schemas/PreviewComposeResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Preview compose services", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/project": { "post": { "description": "Create project.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "createProject", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "base_path": "/", "branch": "main", "build_pack": "dockerfile", "build_variables": {}, "compose_domains": [], "compose_services": [], "dockerfile_path": "Dockerfile", "domains": [], "environment": "production", "environment_variables": {}, "name": "my-web-app", "port": 3000, "post_run_command": "npm run seed", "pre_run_command": "npm run migrate", "primary_server_id": "550e8400-e29b-41d4-a716-446655440000", "repository": "github.com/org/repo", "routing_strategy": "round-robin", "server_ids": [], "source": "github" }, "schema": { "$ref": "#/components/schemas/CreateProjectRequest" } } }, "description": "Request body for types.CreateProjectRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Create project", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/project/add-to-family": { "post": { "description": "Add project to family.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "addProjectToFamily", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "branch": "main", "build_pack": "dockerfile", "build_variables": {}, "dockerfile_path": "Dockerfile", "domains": [], "environment": "development", "environment_variables": {}, "family_id": "550e8400-e29b-41d4-a716-446655440000", "name": "my-api", "path": "api/", "port": 8080, "post_run_command": "npm run seed", "pre_run_command": "npm run migrate", "repository": "github.com/org/repo" }, "schema": { "$ref": "#/components/schemas/AddApplicationToFamilyRequest" } } }, "description": "Request body for types.AddApplicationToFamilyRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Add project to family", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/project/deploy": { "post": { "description": "Deploy project.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deployProject", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/DeployProjectRequest" } } }, "description": "Request body for types.DeployProjectRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Deploy project", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/project/duplicate": { "post": { "description": "Duplicate project.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "duplicateProject", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "branch": "develop", "domains": [], "environment": "staging", "primary_server_id": "550e8400-e29b-41d4-a716-446655440000", "routing_strategy": "round-robin", "server_ids": [], "source_project_id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/DuplicateProjectRequest" } } }, "description": "Request body for types.DuplicateProjectRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Duplicate project", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/project/family": { "get": { "description": "List projects in family.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listProjectsInFamily", "parameters": [ { "description": "Project family ID", "in": "query", "name": "family_id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ProjectFamilyResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ProjectFamilyResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List projects in family", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/project/family/environments": { "get": { "description": "List family environments.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listFamilyEnvironments", "parameters": [ { "description": "Project family ID", "in": "query", "name": "family_id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/EnvironmentsInFamilyResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/EnvironmentsInFamilyResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List family environments", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/recover": { "post": { "description": "Recover application.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "recoverApplication", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "application_id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/RecoverRequest" } } }, "description": "Request body for types.RecoverRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/RecoverResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/RecoverResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Recover application", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/redeploy": { "post": { "description": "Redeploy application.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "redeployApplication", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "force": true, "force_without_cache": true, "id": "550e8400-e29b-41d4-a716-446655440000", "target_server_ids": [] }, "schema": { "$ref": "#/components/schemas/ReDeployApplicationRequest" } } }, "description": "Request body for types.ReDeployApplicationRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Redeploy application", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/restart": { "post": { "description": "Restart deployment.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "restartDeployment", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/RestartDeploymentRequest" } } }, "description": "Request body for types.RestartDeploymentRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Restart deployment", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/rollback": { "post": { "description": "Rollback deployment.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "rollbackDeployment", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000", "target_server_ids": [] }, "schema": { "$ref": "#/components/schemas/RollbackDeploymentRequest" } } }, "description": "Request body for types.RollbackDeploymentRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Rollback deployment", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/servers": { "get": { "description": "Get application servers.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getApplicationServers", "parameters": [ { "description": "Application ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationServersResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationServersResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get application servers", "tags": [ "Deploy" ] }, "put": { "description": "Set application servers.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "setApplicationServers", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "application_id": "550e8400-e29b-41d4-a716-446655440000", "primary_server_id": "550e8400-e29b-41d4-a716-446655440000", "routing_strategy": "round-robin", "server_ids": [] }, "schema": { "$ref": "#/components/schemas/SetApplicationServersRequest" } } }, "description": "Request body for types.SetApplicationServersRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationServersResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationServersResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Set application servers", "tags": [ "Deploy" ] } }, "/api/v1/deploy/application/template": { "post": { "description": "Deploy application from template.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deployApplicationFromTemplate", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "environment": "production", "name": "my-wordpress", "primary_server_id": "550e8400-e29b-41d4-a716-446655440000", "routing_strategy": "round-robin", "server_ids": [], "template_id": "wordpress", "variables": {} }, "schema": { "$ref": "#/components/schemas/CreateTemplateDeploymentRequest" } } }, "description": "Request body for types.CreateTemplateDeploymentRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ApplicationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Deploy application from template", "tags": [ "Deploy" ] } }, "/api/v1/deploy/applications": { "get": { "description": "List applications.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listApplications", "parameters": [ { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "description": "Sort field", "example": "created_at", "in": "query", "name": "sort_by", "schema": { "type": "string" } }, { "description": "Sort direction", "example": "desc", "in": "query", "name": "sort_direction", "schema": { "enum": [ "asc", "desc" ], "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListApplicationsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListApplicationsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List applications", "tags": [ "Deploy" ] } }, "/api/v1/deploy/artifacts": { "get": { "description": "List deployment artifacts for an application.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listDeploymentArtifactsForAnApplication", "parameters": [ { "description": "Application ID", "in": "query", "name": "application_id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ArtifactListResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ArtifactListResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List deployment artifacts for an application", "tags": [ "Deploy" ] } }, "/api/v1/deploy/artifacts/{deployment_id}": { "delete": { "description": "Delete deployment artifact.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deleteDeploymentArtifact", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "deployment_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ArtifactDeleteResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ArtifactDeleteResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Delete deployment artifact", "tags": [ "Deploy" ] } }, "/api/v1/deploy/artifacts/{deployment_id}/download": { "get": { "description": "Get artifact download URL.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getArtifactDownloadURL", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "deployment_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ArtifactDownloadResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ArtifactDownloadResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get artifact download URL", "tags": [ "Deploy" ] } }, "/api/v1/domain": { "get": { "description": "List domains.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listDomains", "parameters": [ { "description": "Filter domains by type", "in": "query", "name": "type", "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListDomainsResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListDomainsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List domains", "tags": [ "Domains" ] } }, "/api/v1/domain/custom": { "delete": { "description": "Remove custom domain.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "removeCustomDomain", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/RemoveCustomDomainRequest" } } }, "description": "Request body for types.RemoveCustomDomainRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Remove custom domain", "tags": [ "Domains" ] }, "post": { "description": "Add custom domain.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "addCustomDomain", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "name": "app.example.com" }, "schema": { "$ref": "#/components/schemas/AddCustomDomainRequest" } } }, "description": "Request body for types.AddCustomDomainRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "dns_provider": "string", "instructions": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/DNSSetupResponse" } }, "application/xml": { "example": { "data": {}, "dns_provider": "string", "instructions": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/DNSSetupResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Add custom domain", "tags": [ "Domains" ] } }, "/api/v1/domain/dns-check": { "get": { "description": "Check custom domain DNS.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "checkCustomDomainDNS", "parameters": [ { "description": "Custom domain ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "dns_status": "string", "message": "string", "status": "string", "verified": true }, "schema": { "$ref": "#/components/schemas/DNSCheckResponse" } }, "application/xml": { "example": { "dns_status": "string", "message": "string", "status": "string", "verified": true }, "schema": { "$ref": "#/components/schemas/DNSCheckResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Check custom domain DNS", "tags": [ "Domains" ] } }, "/api/v1/domain/generate": { "get": { "description": "Generate random subdomain.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "generateRandomSubdomain", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/RandomSubdomainResponseWrapper" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/RandomSubdomainResponseWrapper" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Generate random subdomain", "tags": [ "Domains" ] } }, "/api/v1/domain/verify": { "post": { "description": "Verify custom domain.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "verifyCustomDomain", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/VerifyCustomDomainRequest" } } }, "description": "Request body for types.VerifyCustomDomainRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/CustomDomainResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/CustomDomainResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Verify custom domain", "tags": [ "Domains" ] } }, "/api/v1/extensions": { "get": { "description": "List extensions.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listExtensions", "parameters": [ { "description": "Extension category filter", "in": "query", "name": "category", "schema": { "type": "string" } }, { "description": "Search term", "example": "nginx", "in": "query", "name": "search", "schema": { "type": "string" } }, { "description": "Extension type filter", "in": "query", "name": "type", "schema": { "type": "string" } }, { "description": "Sort field", "example": "created_at", "in": "query", "name": "sort_by", "schema": { "type": "string" } }, { "description": "Sort direction", "in": "query", "name": "sort_dir", "schema": { "type": "string" } }, { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListExtensionsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListExtensionsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List extensions", "tags": [ "Extensions" ] } }, "/api/v1/extensions/by-extension-id/{extension_id}": { "get": { "description": "Get extension by extension ID.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getExtensionByExtensionID", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "extension_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ExtensionResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ExtensionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get extension by extension ID", "tags": [ "Extensions" ] } }, "/api/v1/extensions/categories": { "get": { "description": "List extension categories.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listExtensionCategories", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/CategoriesResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/CategoriesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List extension categories", "tags": [ "Extensions" ] } }, "/api/v1/extensions/{id}": { "get": { "description": "Get extension by ID.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getExtensionByID", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ExtensionResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ExtensionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get extension by ID", "tags": [ "Extensions" ] } }, "/api/v1/feature-flags": { "get": { "description": "List feature flags.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listFeatureFlags", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListFeatureFlagsResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListFeatureFlagsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List feature flags", "tags": [ "Feature Flags" ] }, "put": { "description": "Update feature flag.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateFeatureFlag", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "feature_name": "string", "is_enabled": true }, "schema": { "$ref": "#/components/schemas/UpdateFeatureFlagRequest" } } }, "description": "Request body for types.UpdateFeatureFlagRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update feature flag", "tags": [ "Feature Flags" ] } }, "/api/v1/feature-flags/check": { "get": { "description": "Check if feature is enabled.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "checkIfFeatureIsEnabled", "parameters": [ { "description": "Feature flag name", "in": "query", "name": "feature_name", "required": true, "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/IsFeatureEnabledResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/IsFeatureEnabledResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Check if feature is enabled", "tags": [ "Feature Flags" ] } }, "/api/v1/github-connector": { "delete": { "description": "Delete GitHub connector.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deleteGitHubConnector", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/DeleteGithubConnectorRequest" } } }, "description": "Request body for types.DeleteGithubConnectorRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Delete GitHub connector", "tags": [ "GitHub Connector" ] }, "post": { "description": "Create GitHub connector.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "createGitHubConnector", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "app_id": "123456", "client_id": "Iv1.abc123def456", "client_secret": "string", "installation_id": "12345678", "pem": "string", "slug": "my-github-app", "webhook_secret": "string" }, "schema": { "$ref": "#/components/schemas/CreateGithubConnectorRequest" } } }, "description": "Request body for types.CreateGithubConnectorRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Create GitHub connector", "tags": [ "GitHub Connector" ] }, "put": { "description": "Update GitHub connector.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateGitHubConnector", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "connector_id": "550e8400-e29b-41d4-a716-446655440000", "installation_id": "12345678" }, "schema": { "$ref": "#/components/schemas/UpdateGithubConnectorRequest" } } }, "description": "Request body for types.UpdateGithubConnectorRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update GitHub connector", "tags": [ "GitHub Connector" ] } }, "/api/v1/github-connector/all": { "get": { "description": "List GitHub connectors.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listGitHubConnectors", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListConnectorsResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListConnectorsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List GitHub connectors", "tags": [ "GitHub Connector" ] } }, "/api/v1/github-connector/repositories": { "get": { "description": "List GitHub repositories.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listGitHubRepositories", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListRepositoriesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListRepositoriesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List GitHub repositories", "tags": [ "GitHub Connector" ] } }, "/api/v1/github-connector/repository/branches": { "post": { "description": "List repository branches.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "listRepositoryBranches", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "repository_name": "string" }, "schema": { "$ref": "#/components/schemas/GetGithubRepositoryBranchesRequest" } } }, "description": "Request body for controller.GetGithubRepositoryBranchesRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListBranchesResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListBranchesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List repository branches", "tags": [ "GitHub Connector" ] } }, "/api/v1/health": { "get": { "description": "Health check.\n\nAuth: Public endpoint.\nScope: No organization scope required.\nSide effects: Read-only operation.", "operationId": "healthCheck", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Health check", "tags": [ "Health" ] } }, "/api/v1/healthcheck": { "delete": { "description": "Delete health check.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deleteHealthCheck", "parameters": [ { "description": "Application ID", "in": "query", "name": "application_id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckMessageResponse" } }, "application/xml": { "example": { "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckMessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Delete health check", "tags": [ "Health Checks" ] }, "get": { "description": "Get health checks.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getHealthChecks", "parameters": [ { "description": "Application ID", "in": "query", "name": "application_id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get health checks", "tags": [ "Health Checks" ] }, "post": { "description": "Create health check.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "createHealthCheck", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "application_id": "550e8400-e29b-41d4-a716-446655440000", "body": "string", "endpoint": "/health", "expected_status_codes": [], "failure_threshold": 3, "headers": {}, "interval_seconds": 60, "method": "GET", "retention_days": 30, "success_threshold": 1, "timeout_seconds": 30 }, "schema": { "$ref": "#/components/schemas/CreateHealthCheckRequest" } } }, "description": "Request body for types.CreateHealthCheckRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Create health check", "tags": [ "Health Checks" ] }, "put": { "description": "Update health check.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateHealthCheck", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "application_id": "550e8400-e29b-41d4-a716-446655440000", "body": "string", "endpoint": "/health", "expected_status_codes": [], "failure_threshold": 3, "headers": {}, "interval_seconds": 60, "method": "GET", "retention_days": 30, "success_threshold": 1, "timeout_seconds": 30 }, "schema": { "$ref": "#/components/schemas/UpdateHealthCheckRequest" } } }, "description": "Request body for types.UpdateHealthCheckRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update health check", "tags": [ "Health Checks" ] } }, "/api/v1/healthcheck/results": { "get": { "description": "List health check results.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listHealthCheckResults", "parameters": [ { "description": "Application ID", "in": "query", "name": "application_id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "description": "Maximum results", "example": 20, "in": "query", "name": "limit", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "description": "Start time (RFC3339)", "example": "2026-01-01T00:00:00Z", "in": "query", "name": "start_time", "schema": { "type": "string" } }, { "description": "End time (RFC3339)", "example": "2026-01-02T00:00:00Z", "in": "query", "name": "end_time", "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResultsResponse" } }, "application/xml": { "example": { "data": [], "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResultsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List health check results", "tags": [ "Health Checks" ] } }, "/api/v1/healthcheck/stats": { "get": { "description": "Get health check stats.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getHealthCheckStats", "parameters": [ { "description": "Application ID", "in": "query", "name": "application_id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "description": "Aggregation period (1h,24h,7d,30d)", "example": "24h", "in": "query", "name": "period", "schema": { "default": "24h", "enum": [ "1h", "24h", "7d", "30d" ], "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckStatsResponse" } }, "application/xml": { "example": { "data": {}, "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckStatsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get health check stats", "tags": [ "Health Checks" ] } }, "/api/v1/healthcheck/toggle": { "patch": { "description": "Toggle health check.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "toggleHealthCheck", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "application_id": "550e8400-e29b-41d4-a716-446655440000", "enabled": true }, "schema": { "$ref": "#/components/schemas/ToggleHealthCheckRequest" } } }, "description": "Request body for types.ToggleHealthCheckRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Toggle health check", "tags": [ "Health Checks" ] } }, "/api/v1/machines": { "get": { "description": "List machines.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listMachines", "parameters": [ { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "description": "Search by name", "example": "nginx", "in": "query", "name": "search", "schema": { "type": "string" } }, { "description": "Sort field", "example": "created_at", "in": "query", "name": "sort_by", "schema": { "type": "string" } }, { "description": "Sort order", "example": "desc", "in": "query", "name": "sort_order", "schema": { "enum": [ "asc", "desc" ], "type": "string" } }, { "description": "Status filter", "in": "query", "name": "status", "schema": { "type": "string" } }, { "description": "Filter by active state", "example": true, "in": "query", "name": "is_active", "schema": { "type": "boolean" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListMachinesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ListMachinesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List machines", "tags": [ "Machines" ] }, "post": { "description": "Register a BYOS machine.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "registerABYOSMachine", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "host": "string", "name": "string", "port": 1, "user": "string" }, "schema": { "$ref": "#/components/schemas/CreateMachineRequest" } } }, "description": "Request body for types.CreateMachineRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "host": "string", "id": "00000000-0000-0000-0000-000000000000", "name": "string", "port": 1, "public_key": "string", "user": "string" }, "schema": { "$ref": "#/components/schemas/CreateMachineResponse" } }, "application/xml": { "example": { "host": "string", "id": "00000000-0000-0000-0000-000000000000", "name": "string", "port": 1, "public_key": "string", "user": "string" }, "schema": { "$ref": "#/components/schemas/CreateMachineResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Register a BYOS machine", "tags": [ "Machines" ] } }, "/api/v1/machines/backup": { "post": { "description": "Trigger machine backup.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "triggerMachineBackup", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "request_id": "00000000-0000-0000-0000-000000000000", "status": "string" }, "schema": { "$ref": "#/components/schemas/TriggerBackupResponse" } }, "application/xml": { "example": { "message": "string", "request_id": "00000000-0000-0000-0000-000000000000", "status": "string" }, "schema": { "$ref": "#/components/schemas/TriggerBackupResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Trigger machine backup", "tags": [ "Machines" ] } }, "/api/v1/machines/backup/schedule": { "get": { "description": "Get backup schedule.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getBackupSchedule", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/BackupScheduleResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/BackupScheduleResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get backup schedule", "tags": [ "Machines" ] }, "put": { "description": "Update backup schedule.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateBackupSchedule", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "backup_paths": [], "day_of_week": 1, "enabled": true, "frequency": "string", "hour_utc": 1, "retention_count": 1 }, "schema": { "$ref": "#/components/schemas/BackupScheduleData" } } }, "description": "Request body for types.BackupScheduleData", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/BackupScheduleResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/BackupScheduleResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update backup schedule", "tags": [ "Machines" ] } }, "/api/v1/machines/backups": { "get": { "description": "List machine backups.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listMachineBackups", "parameters": [ { "description": "Page number", "example": 1, "in": "query", "name": "page", "schema": { "default": 1, "minimum": 1, "type": "integer" } }, { "description": "Page size", "example": 20, "in": "query", "name": "page_size", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "description": "Search by machine name", "example": "nginx", "in": "query", "name": "search", "schema": { "type": "string" } }, { "description": "Sort field (created_at, status, size_bytes)", "example": "created_at", "in": "query", "name": "sort_by", "schema": { "type": "string" } }, { "description": "Sort order (asc, desc)", "example": "desc", "in": "query", "name": "sort_order", "schema": { "enum": [ "asc", "desc" ], "type": "string" } }, { "description": "Filter by backup status", "in": "query", "name": "status", "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/BackupListResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/BackupListResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List machine backups", "tags": [ "Machines" ] } }, "/api/v1/machines/billing": { "get": { "description": "Get machine billing status.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getMachineBillingStatus", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineBillingResponse" } }, "application/xml": { "example": { "data": {}, "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineBillingResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get machine billing status", "tags": [ "Machines" ] } }, "/api/v1/machines/events": { "get": { "description": "Get machine events.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getMachineEvents", "parameters": [ { "description": "Start time RFC3339 (default: 1 hour ago)", "in": "query", "name": "from", "schema": { "type": "string" } }, { "description": "End time RFC3339 (default: now)", "in": "query", "name": "to", "schema": { "type": "string" } }, { "description": "Max rows (default 200)", "example": 20, "in": "query", "name": "limit", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineEventsResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineEventsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get machine events", "tags": [ "Machines" ] } }, "/api/v1/machines/exec": { "post": { "description": "Execute a command on the host machine.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "executeACommandOnTheHostMachine", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "command": "string" }, "schema": { "$ref": "#/components/schemas/HostExecRequest" } } }, "description": "Request body for types.HostExecRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HostExecResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/HostExecResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Execute a command on the host machine", "tags": [ "Machines" ] } }, "/api/v1/machines/metrics": { "get": { "description": "Get machine metrics.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getMachineMetrics", "parameters": [ { "description": "Start time RFC3339 (default: 1 hour ago)", "in": "query", "name": "from", "schema": { "type": "string" } }, { "description": "End time RFC3339 (default: now)", "in": "query", "name": "to", "schema": { "type": "string" } }, { "description": "Max rows (default 500, max 1000)", "example": 20, "in": "query", "name": "limit", "schema": { "default": 20, "maximum": 100, "minimum": 1, "type": "integer" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineMetricsResponse" } }, "application/xml": { "example": { "data": [], "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineMetricsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get machine metrics", "tags": [ "Machines" ] } }, "/api/v1/machines/metrics/summary": { "get": { "description": "Get machine metrics summary.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getMachineMetricsSummary", "parameters": [ { "description": "Start time RFC3339 (default: 1 hour ago)", "in": "query", "name": "from", "schema": { "type": "string" } }, { "description": "End time RFC3339 (default: now)", "in": "query", "name": "to", "schema": { "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineSummaryResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineSummaryResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get machine metrics summary", "tags": [ "Machines" ] } }, "/api/v1/machines/pause": { "post": { "description": "Pause machine.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "pauseMachine", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineActionResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineActionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Pause machine", "tags": [ "Machines" ] } }, "/api/v1/machines/plan/select": { "post": { "description": "Select a machine plan.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "selectAMachinePlan", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "plan_tier": "string" }, "schema": { "$ref": "#/components/schemas/SelectPlanRequest" } } }, "description": "Request body for types.SelectPlanRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "balance_after_cents": 1, "charged_cents": 1, "error": "string", "message": "string", "period_end": "string", "plan": {}, "status": "string" }, "schema": { "$ref": "#/components/schemas/SelectPlanResponse" } }, "application/xml": { "example": { "balance_after_cents": 1, "charged_cents": 1, "error": "string", "message": "string", "period_end": "string", "plan": {}, "status": "string" }, "schema": { "$ref": "#/components/schemas/SelectPlanResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Select a machine plan", "tags": [ "Machines" ] } }, "/api/v1/machines/plans": { "get": { "description": "List available machine plans.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listAvailableMachinePlans", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": [], "status": "string" }, "schema": { "$ref": "#/components/schemas/ListPlansResponse" } }, "application/xml": { "example": { "data": [], "status": "string" }, "schema": { "$ref": "#/components/schemas/ListPlansResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List available machine plans", "tags": [ "Machines" ] } }, "/api/v1/machines/restart": { "post": { "description": "Restart machine.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "restartMachine", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineActionResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineActionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Restart machine", "tags": [ "Machines" ] } }, "/api/v1/machines/resume": { "post": { "description": "Resume machine.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "resumeMachine", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineActionResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineActionResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Resume machine", "tags": [ "Machines" ] } }, "/api/v1/machines/ssh/status": { "get": { "description": "Get SSH connection status.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getSSHConnectionStatus", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "connected": true, "is_configured": true, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SSHConnectionStatusResponse" } }, "application/xml": { "example": { "connected": true, "is_configured": true, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SSHConnectionStatusResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get SSH connection status", "tags": [ "Machines" ] } }, "/api/v1/machines/stats": { "get": { "description": "Get machine system stats.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getMachineSystemStats", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SystemStatsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SystemStatsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get machine system stats", "tags": [ "Machines" ] } }, "/api/v1/machines/status": { "get": { "description": "Get machine lifecycle status.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getMachineLifecycleStatus", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineStateResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MachineStateResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get machine lifecycle status", "tags": [ "Machines" ] } }, "/api/v1/machines/trial/provision": { "post": { "description": "Provision trail resources.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "provisionTrailResources", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "image": "string" }, "schema": { "$ref": "#/components/schemas/ProvisionRequest" } } }, "description": "Request body for types.ProvisionRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ProvisionTrailResponse" } }, "application/xml": { "example": { "data": {}, "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/ProvisionTrailResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Provision trail resources", "tags": [ "Machines" ] } }, "/api/v1/machines/trial/status/{sessionId}": { "get": { "description": "Get trail session status.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getTrailSessionStatus", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "sessionId", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/TrailStatusEnvelopeResponse" } }, "application/xml": { "example": { "data": {}, "error": "string", "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/TrailStatusEnvelopeResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get trail session status", "tags": [ "Machines" ] } }, "/api/v1/machines/{id}": { "delete": { "description": "Remove a machine.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "removeAMachine", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "status": "string" }, "schema": { "$ref": "#/components/schemas/DeleteMachineResponse" } }, "application/xml": { "example": { "status": "string" }, "schema": { "$ref": "#/components/schemas/DeleteMachineResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Remove a machine", "tags": [ "Machines" ] } }, "/api/v1/machines/{id}/rename": { "patch": { "description": "Rename a machine.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "renameAMachine", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "id", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "name": "string" }, "schema": { "$ref": "#/components/schemas/RenameMachineRequest" } } }, "description": "Request body for types.RenameMachineRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "id": "00000000-0000-0000-0000-000000000000", "name": "string" }, "schema": { "$ref": "#/components/schemas/RenameMachineResponse" } }, "application/xml": { "example": { "id": "00000000-0000-0000-0000-000000000000", "name": "string" }, "schema": { "$ref": "#/components/schemas/RenameMachineResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Rename a machine", "tags": [ "Machines" ] } }, "/api/v1/machines/{id}/set-default": { "put": { "description": "Set machine as org default.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "setMachineAsOrgDefault", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SetDefaultMachineResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SetDefaultMachineResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Set machine as org default", "tags": [ "Machines" ] } }, "/api/v1/machines/{id}/ssh/status": { "get": { "description": "SSH connection status.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "sSHConnectionStatus", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "is_active": true, "last_used_at": "string" }, "schema": { "$ref": "#/components/schemas/SSHStatusResponse" } }, "application/xml": { "example": { "is_active": true, "last_used_at": "string" }, "schema": { "$ref": "#/components/schemas/SSHStatusResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "SSH connection status", "tags": [ "Machines" ] } }, "/api/v1/machines/{id}/verify": { "post": { "description": "Verify SSH connection.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "verifySSHConnection", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "is_active": true, "status": "string" }, "schema": { "$ref": "#/components/schemas/VerifyMachineResponse" } }, "application/xml": { "example": { "is_active": true, "status": "string" }, "schema": { "$ref": "#/components/schemas/VerifyMachineResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Verify SSH connection", "tags": [ "Machines" ] } }, "/api/v1/mcp/catalog": { "get": { "description": "List MCP provider catalog.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listMCPProviderCatalog", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List MCP provider catalog", "tags": [ "MCP" ] } }, "/api/v1/mcp/catalog/{provider_id}/icon": { "get": { "description": "Get provider icon.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getProviderIcon", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "provider_id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/unknown-interface" } }, "application/xml": { "schema": { "$ref": "#/components/schemas/unknown-interface" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get provider icon", "tags": [ "MCP" ] } }, "/api/v1/mcp/internal/servers": { "get": { "description": "Agent: list enabled servers with credentials.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "agentListEnabledServersWithCredentials", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Agent: list enabled servers with credentials", "tags": [ "MCP" ] } }, "/api/v1/mcp/internal/tools": { "get": { "description": "Agent: discover tools from all enabled MCP servers.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "agentDiscoverToolsFromAllEnabledMCPServers", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Agent: discover tools from all enabled MCP servers", "tags": [ "MCP" ] } }, "/api/v1/mcp/internal/tools/call": { "post": { "description": "Agent: invoke a tool on an MCP server.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "agentInvokeAToolOnAnMCPServer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "arguments": {}, "server_id": "00000000-0000-0000-0000-000000000000", "tool_name": "search" }, "schema": { "$ref": "#/components/schemas/CallToolRequest" } } }, "description": "Request body for validation.CallToolRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Agent: invoke a tool on an MCP server", "tags": [ "MCP" ] } }, "/api/v1/mcp/servers": { "delete": { "description": "Delete MCP server.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deleteMCPServer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "00000000-0000-0000-0000-000000000000" }, "schema": { "$ref": "#/components/schemas/DeleteServerRequest" } } }, "description": "Request body for controller.DeleteServerRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Delete MCP server", "tags": [ "MCP" ] }, "get": { "description": "List org MCP servers.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "listOrgMCPServers", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "List org MCP servers", "tags": [ "MCP" ] }, "post": { "description": "Add MCP server.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "addMCPServer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "credentials": {}, "custom_url": "string", "enabled": true, "name": "My OpenAI Server", "provider_id": "openai" }, "schema": { "$ref": "#/components/schemas/CreateServerRequest" } } }, "description": "Request body for validation.CreateServerRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Add MCP server", "tags": [ "MCP" ] } }, "/api/v1/mcp/servers/test": { "post": { "description": "Test MCP server connection.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "testMCPServerConnection", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "credentials": {}, "custom_url": "string", "provider_id": "00000000-0000-0000-0000-000000000000" }, "schema": { "$ref": "#/components/schemas/TestServerRequest" } } }, "description": "Request body for validation.TestServerRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Test MCP server connection", "tags": [ "MCP" ] } }, "/api/v1/mcp/servers/{id}": { "put": { "description": "Update MCP server.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateMCPServer", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "id", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "credentials": {}, "custom_url": "string", "enabled": true, "id": "00000000-0000-0000-0000-000000000000", "name": "string" }, "schema": { "$ref": "#/components/schemas/UpdateServerRequest" } } }, "description": "Request body for validation.UpdateServerRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } }, "application/xml": { "example": { "data": null, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/Response" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update MCP server", "tags": [ "MCP" ] } }, "/api/v1/notification/preferences": { "get": { "description": "Get notification preferences.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getNotificationPreferences", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/PreferencesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/PreferencesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get notification preferences", "tags": [ "Notifications" ] }, "patch": { "description": "Update notification preferences.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateNotificationPreferences", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "category": "activity", "enabled": true, "type": "deployment_success" }, "schema": { "$ref": "#/components/schemas/UpdatePreferenceRequest" } } }, "description": "Request body for notification.UpdatePreferenceRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update notification preferences", "tags": [ "Notifications" ] } }, "/api/v1/notification/send": { "post": { "description": "Send notification.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "sendNotification", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "channel": "email", "message": "Deployment completed successfully", "metadata": {}, "subject": "Deployment Update", "to": "user@example.com" }, "schema": { "$ref": "#/components/schemas/SendNotificationRequest" } } }, "description": "Request body for notification.SendNotificationRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SendNotificationResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SendNotificationResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Send notification", "tags": [ "Notifications" ] } }, "/api/v1/notification/smtp": { "delete": { "description": "Delete SMTP config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deleteSMTPConfig", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "id": "550e8400-e29b-41d4-a716-446655440000" }, "schema": { "$ref": "#/components/schemas/DeleteSMTPConfigRequest" } } }, "description": "Request body for notification.DeleteSMTPConfigRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Delete SMTP config", "tags": [ "Notifications" ] }, "get": { "description": "Get SMTP config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getSMTPConfig", "parameters": [ { "description": "Organization ID", "in": "query", "name": "id", "required": true, "schema": { "format": "uuid", "type": "string" } }, { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SMTPConfigResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/SMTPConfigResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get SMTP config", "tags": [ "Notifications" ] }, "post": { "description": "Create SMTP config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "createSMTPConfig", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "from_email": "noreply@example.com", "from_name": "Nixopus", "host": "smtp.gmail.com", "organization_id": "550e8400-e29b-41d4-a716-446655440000", "password": "app-password", "port": 587, "username": "user@gmail.com" }, "schema": { "$ref": "#/components/schemas/CreateSMTPConfigRequest" } } }, "description": "Request body for notification.CreateSMTPConfigRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Create SMTP config", "tags": [ "Notifications" ] }, "put": { "description": "Update SMTP config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateSMTPConfig", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "from_email": "noreply@example.com", "from_name": "Nixopus", "host": "smtp.gmail.com", "id": "550e8400-e29b-41d4-a716-446655440000", "organization_id": "550e8400-e29b-41d4-a716-446655440000", "password": "app-password", "port": 587, "username": "user@gmail.com" }, "schema": { "$ref": "#/components/schemas/UpdateSMTPConfigRequest" } } }, "description": "Request body for notification.UpdateSMTPConfigRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update SMTP config", "tags": [ "Notifications" ] } }, "/api/v1/notification/webhook": { "delete": { "description": "Delete webhook config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "deleteWebhookConfig", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "type": "slack" }, "schema": { "$ref": "#/components/schemas/DeleteWebhookConfigRequest" } } }, "description": "Request body for notification.DeleteWebhookConfigRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Delete webhook config", "tags": [ "Notifications" ] }, "post": { "description": "Create webhook config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "createWebhookConfig", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "type": "slack", "webhook_url": "https://hooks.slack.com/services/..." }, "schema": { "$ref": "#/components/schemas/CreateWebhookConfigRequest" } } }, "description": "Request body for notification.CreateWebhookConfigRequest", "required": true }, "responses": { "201": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/WebhookConfigResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/WebhookConfigResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Create webhook config", "tags": [ "Notifications" ] }, "put": { "description": "Update webhook config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateWebhookConfig", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "is_active": true, "type": "slack", "webhook_url": "https://hooks.slack.com/services/..." }, "schema": { "$ref": "#/components/schemas/UpdateWebhookConfigRequest" } } }, "description": "Request body for notification.UpdateWebhookConfigRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/WebhookConfigResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/WebhookConfigResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update webhook config", "tags": [ "Notifications" ] } }, "/api/v1/notification/webhook/{type}": { "get": { "description": "Get webhook config.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getWebhookConfig", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } }, { "in": "path", "name": "type", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/WebhookConfigResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/WebhookConfigResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get webhook config", "tags": [ "Notifications" ] } }, "/api/v1/update": { "post": { "description": "Perform update.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "performUpdate", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "force": true }, "schema": { "$ref": "#/components/schemas/UpdateRequest" } } }, "description": "Request body for types.UpdateRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "success": true }, "schema": { "$ref": "#/components/schemas/UpdateResponse" } }, "application/xml": { "example": { "message": "string", "success": true }, "schema": { "$ref": "#/components/schemas/UpdateResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Perform update", "tags": [ "Update" ] } }, "/api/v1/update/check": { "get": { "description": "Check for updates.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "checkForUpdates", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "current_version": "string", "environment": "string", "last_checked": "string", "latest_version": "string", "update_available": true }, "schema": { "$ref": "#/components/schemas/UpdateCheckResponse" } }, "application/xml": { "example": { "current_version": "string", "environment": "string", "last_checked": "string", "latest_version": "string", "update_available": true }, "schema": { "$ref": "#/components/schemas/UpdateCheckResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Check for updates", "tags": [ "Update" ] } }, "/api/v1/user": { "get": { "description": "Get current user profile.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getCurrentUserProfile", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get current user profile", "tags": [ "User" ] } }, "/api/v1/user/avatar": { "patch": { "description": "Update user avatar.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateUserAvatar", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "avatarData": "data:image/png;base64,iVBORw0KGgo..." }, "schema": { "$ref": "#/components/schemas/UpdateAvatarRequest" } } }, "description": "Request body for types.UpdateAvatarRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update user avatar", "tags": [ "User" ] } }, "/api/v1/user/name": { "patch": { "description": "Update user name.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateUserName", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "name": "johndoe" }, "schema": { "$ref": "#/components/schemas/UpdateUserNameRequest" } } }, "description": "Request body for types.UpdateUserNameRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UpdateUsernameResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UpdateUsernameResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update user name", "tags": [ "User" ] } }, "/api/v1/user/onboarded": { "get": { "description": "Check onboarding status.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "checkOnboardingStatus", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/IsOnboardedResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/IsOnboardedResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Check onboarding status", "tags": [ "User" ] }, "post": { "description": "Mark onboarding complete.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "markOnboardingComplete", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {} }, "schema": { "$ref": "#/components/schemas/MarkOnboardingCompleteResponse" } }, "application/xml": { "example": { "data": {} }, "schema": { "$ref": "#/components/schemas/MarkOnboardingCompleteResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Mark onboarding complete", "tags": [ "User" ] } }, "/api/v1/user/preferences": { "get": { "description": "Get user preferences.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getUserPreferences", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserPreferencesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserPreferencesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get user preferences", "tags": [ "User" ] }, "put": { "description": "Update user preferences.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateUserPreferences", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "debug_mode": true, "show_api_error_details": true, "terminal_cursor_blink": true, "terminal_cursor_style": "string", "terminal_cursor_width": 1, "terminal_font_family": "string", "terminal_font_size": 1, "terminal_font_weight": "string", "terminal_letter_spacing": 1, "terminal_line_height": 1, "terminal_scrollback": 1, "terminal_tab_stop_width": 1 }, "schema": { "$ref": "#/components/schemas/UserPreferencesData" } } }, "description": "Request body for types.UserPreferencesData", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserPreferencesResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserPreferencesResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update user preferences", "tags": [ "User" ] } }, "/api/v1/user/settings": { "get": { "description": "Get user settings.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: Read-only operation.", "operationId": "getUserSettings", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Get user settings", "tags": [ "User" ] } }, "/api/v1/user/settings/auto-update": { "patch": { "description": "Update auto-update settings.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateAutoUpdateSettings", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "auto_update": true }, "schema": { "$ref": "#/components/schemas/UpdateAutoUpdateRequest" } } }, "description": "Request body for controller.UpdateAutoUpdateRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update auto-update settings", "tags": [ "User" ] } }, "/api/v1/user/settings/font": { "patch": { "description": "Update font settings.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateFontSettings", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "font_family": "JetBrains Mono", "font_size": 14 }, "schema": { "$ref": "#/components/schemas/UpdateFontRequest" } } }, "description": "Request body for controller.UpdateFontRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update font settings", "tags": [ "User" ] } }, "/api/v1/user/settings/language": { "patch": { "description": "Update language settings.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateLanguageSettings", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "language": "en" }, "schema": { "$ref": "#/components/schemas/UpdateLanguageRequest" } } }, "description": "Request body for controller.UpdateLanguageRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update language settings", "tags": [ "User" ] } }, "/api/v1/user/settings/theme": { "patch": { "description": "Update theme settings.\n\nAuth: Required (bearer token).\nScope: Organization-scoped in authenticated context.\nSide effects: May mutate server state.", "operationId": "updateThemeSettings", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "example": { "theme": "dark" }, "schema": { "$ref": "#/components/schemas/UpdateThemeRequest" } } }, "description": "Request body for controller.UpdateThemeRequest", "required": true }, "responses": { "200": { "content": { "application/json": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } }, "application/xml": { "example": { "data": {}, "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/UserSettingsResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Update theme settings", "tags": [ "User" ] } }, "/api/v1/webhook": { "post": { "description": "Handle GitHub webhook.\n\nAuth: Public endpoint.\nScope: No organization scope required.\nSide effects: May mutate server state.", "operationId": "handleGitHubWebhook", "parameters": [ { "in": "header", "name": "Accept", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } }, "application/xml": { "example": { "message": "string", "status": "string" }, "schema": { "$ref": "#/components/schemas/MessageResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "invalid_request", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Bad Request _(validation or deserialization error)_" }, "500": { "content": { "application/json": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } }, "application/xml": { "example": { "code": "internal_error", "details": {}, "message": "Request failed" }, "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } }, "description": "Internal Server Error _(panics)_" }, "default": { "description": "" } }, "summary": "Handle GitHub webhook", "tags": [ "Webhooks" ] } } }, "servers": [ { "description": "local server", "url": "http://:8080" } ], "tags": [ { "name": "Audit" }, { "name": "Auth" }, { "name": "Containers" }, { "name": "Deploy" }, { "name": "Domains" }, { "name": "Extensions" }, { "name": "Feature Flags" }, { "name": "GitHub Connector" }, { "name": "Health" }, { "name": "Health Checks" }, { "name": "MCP" }, { "name": "Machines" }, { "name": "Notifications" }, { "name": "Telemetry" }, { "name": "Update" }, { "name": "User" }, { "name": "Webhooks" } ] }