{
  "openapi": "3.0.3",
  "info": {
    "title": "Plystra Core API",
    "description": "Self-hosted Plystra Core API. Stable surfaces cover identity, authorization, resource registry, audit, admin control-plane, and scoped API keys; plugin, template, and Data Console routes are preview metadata surfaces.",
    "version": "0.0.1"
  },
  "servers": [
    {
      "url": "http://localhost:8080"
    }
  ],
  "tags": [
    {
      "name": "System",
      "description": "Health, readiness, version, and metrics endpoints."
    },
    {
      "name": "Console",
      "description": "Admin Console overview endpoints."
    },
    {
      "name": "Auth",
      "description": "User session login, refresh, and logout."
    },
    {
      "name": "Actor",
      "description": "Session actor context and member switching."
    },
    {
      "name": "Admin",
      "description": "Instance, space, and group admin grants."
    },
    {
      "name": "API Keys",
      "description": "Scoped API keys for server-to-server Core access."
    },
    {
      "name": "Authorization",
      "description": "Authorization check and explain endpoints."
    },
    {
      "name": "Users",
      "description": "User identity records."
    },
    {
      "name": "Spaces",
      "description": "Workspace and tenant boundaries."
    },
    {
      "name": "Groups",
      "description": "Hierarchical groups inside a Space."
    },
    {
      "name": "Members",
      "description": "Delegatable Member identities inside a Space."
    },
    {
      "name": "User Members",
      "description": "Explicit User-to-Member bindings."
    },
    {
      "name": "Roles",
      "description": "Roles and scoped MemberRole grants."
    },
    {
      "name": "Permissions",
      "description": "Permission definitions and role-permission bindings."
    },
    {
      "name": "Resource Types",
      "description": "Resource registry declarations, actions, and mappings."
    },
    {
      "name": "Resources",
      "description": "Protected resource records."
    },
    {
      "name": "Data Console",
      "description": "Feature-flagged preview data API; disabled by default."
    },
    {
      "name": "Audit",
      "description": "Append-only audit log query endpoints."
    },
    {
      "name": "Plugins",
      "description": "Preview plugin metadata, lifecycle flags, settings, and generated metadata; not a stable plugin runtime."
    },
    {
      "name": "Templates",
      "description": "Preview template catalog and install-flow metadata; not a stable template ecosystem."
    }
  ],
  "paths": {
    "/api/v1/actor/context": {
      "get": {
        "tags": [
          "Actor"
        ],
        "summary": "Get current actor context",
        "operationId": "getActorContext",
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIActorContextResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/actor/switch-member": {
      "post": {
        "tags": [
          "Actor"
        ],
        "summary": "Switch active Member for a session",
        "operationId": "switchMember",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiSwitchMemberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIActorContextResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/admin/grants": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "List admin grants",
        "operationId": "listAdminGrants",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminGrant"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Create an admin grant",
        "operationId": "createAdminGrant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAdminGrantMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminGrant"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/admin/grants/{admin_grant_id}": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Get an admin grant",
        "operationId": "getAdminGrant",
        "parameters": [
          {
            "name": "admin_grant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminGrant"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/admin/grants/{admin_grant_id}/revoke": {
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Revoke an admin grant",
        "operationId": "revokeAdminGrant",
        "parameters": [
          {
            "name": "admin_grant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAdminGrantMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminGrant"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/admin/me": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "Inspect current admin principal",
        "operationId": "getAdminMe",
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminMeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/api-keys": {
      "get": {
        "tags": [
          "API Keys"
        ],
        "summary": "List API keys",
        "operationId": "listAPIKeys",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAPIKey"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "API Keys"
        ],
        "summary": "Create a scoped API key",
        "operationId": "createAPIKey",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiApiKeyMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAPIKey"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/api-keys/{api_key_id}": {
      "get": {
        "tags": [
          "API Keys"
        ],
        "summary": "Get an API key",
        "operationId": "getAPIKey",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAPIKey"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/api-keys/{api_key_id}/revoke": {
      "post": {
        "tags": [
          "API Keys"
        ],
        "summary": "Revoke an API key",
        "operationId": "revokeAPIKey",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiApiKeyMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAPIKey"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/audit/logs": {
      "get": {
        "tags": [
          "Audit"
        ],
        "summary": "List audit logs",
        "operationId": "listAuditLogs",
        "parameters": [
          {
            "name": "space_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actor_user_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actor_member_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actor_user_member_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "decision",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deny_code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "request_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_at_from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "created_at_to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditLog"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/audit/logs/{audit_log_id}": {
      "get": {
        "tags": [
          "Audit"
        ],
        "summary": "Get audit log detail",
        "operationId": "getAuditLog",
        "parameters": [
          {
            "name": "audit_log_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditLog"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Create a user session",
        "operationId": "login",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAuthLoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPILoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/logout": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Revoke a session token",
        "operationId": "logout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAuthLogoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPILogoutResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Rotate access and refresh tokens",
        "operationId": "refreshSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAuthRefreshRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRefreshResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Register a user",
        "description": "Registration is disabled by default. Token-protected ordinary registration creates a user, default Member, UserMember binding, Space admin grant, and session inside the deployment-level Simple Mode default Space. First-super-admin bootstrap requires PLYSTRA_BOOTSTRAP_REGISTRATION_ENABLED plus PLYSTRA_BOOTSTRAP_REGISTRATION_TOKEN. Public user-only registration with PLYSTRA_AUTH_PUBLIC_USER_REGISTRATION_ENABLED creates only a User and does not create a Member, UserMember binding, admin grant, or session.",
        "operationId": "register",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAuthRegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRegisterResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/authz/check": {
      "post": {
        "tags": [
          "Authorization"
        ],
        "summary": "Run authorization check",
        "operationId": "checkAuthorization",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAuthzRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuthzCheckResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/authz/explain": {
      "post": {
        "tags": [
          "Authorization"
        ],
        "summary": "Run authorization explain trace",
        "operationId": "explainAuthorization",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAuthzRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeMapStringInterface"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/console/overview": {
      "get": {
        "tags": [
          "Console"
        ],
        "summary": "Get admin console overview",
        "operationId": "getConsoleOverview",
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIOverviewResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/data/rows/{resource_type}": {
      "get": {
        "tags": [
          "Data Console"
        ],
        "summary": "List data rows for a resource type",
        "operationId": "listDataRows",
        "parameters": [
          {
            "name": "space_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Data Console"
        ],
        "summary": "Create a data row",
        "operationId": "createDataRow",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiDataRowMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIDataRowMutationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/data/rows/{resource_type}/{resource_id}": {
      "delete": {
        "tags": [
          "Data Console"
        ],
        "summary": "Soft-delete a data row",
        "operationId": "deleteDataRow",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIDataRowMutationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "get": {
        "tags": [
          "Data Console"
        ],
        "summary": "Get a data row",
        "operationId": "getDataRow",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Data Console"
        ],
        "summary": "Update a data row",
        "operationId": "updateDataRow",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiDataRowMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIDataRowMutationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/data/tables": {
      "get": {
        "tags": [
          "Data Console"
        ],
        "summary": "List data-console tables",
        "operationId": "listDataTables",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceMapping"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/groups/{group_id}": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get a group by ID",
        "operationId": "getGroupByID",
        "parameters": [
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/health": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Get health status",
        "operationId": "getHealth",
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIHealth"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/members/{member_id}": {
      "get": {
        "tags": [
          "Members"
        ],
        "summary": "Get a member by ID",
        "operationId": "getMemberByID",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/permissions": {
      "get": {
        "tags": [
          "Permissions"
        ],
        "summary": "List permissions",
        "operationId": "listPermissions",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Permissions"
        ],
        "summary": "Create a permission",
        "operationId": "createPermission",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiPermissionMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/permissions/{permission_id}": {
      "get": {
        "tags": [
          "Permissions"
        ],
        "summary": "Get a permission",
        "operationId": "getPermission",
        "parameters": [
          {
            "name": "permission_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Permissions"
        ],
        "summary": "Update a permission",
        "operationId": "updatePermission",
        "parameters": [
          {
            "name": "permission_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiPermissionMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/permissions/{permission_id}/disable": {
      "post": {
        "tags": [
          "Permissions"
        ],
        "summary": "Disable a permission",
        "operationId": "disablePermission",
        "parameters": [
          {
            "name": "permission_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiPermissionMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "List plugins",
        "operationId": "listPlugins",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/install": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Install plugin metadata",
        "operationId": "installPlugin",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiPluginInstallRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/validate-manifest": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Validate plugin manifest",
        "operationId": "validatePluginManifest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PluginsManifest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPluginValidationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "Get plugin metadata",
        "operationId": "getPlugin",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/admin-menus": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "List plugin admin menus",
        "operationId": "listPluginAdminMenus",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPluginAdminMenu"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/audit-events": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "List plugin audit events",
        "operationId": "listPluginAuditEvents",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditEventType"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/disable": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Disable plugin",
        "operationId": "disablePlugin",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/enable": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Enable plugin",
        "operationId": "enablePlugin",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/permissions": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "List plugin permissions",
        "operationId": "listPluginPermissions",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/resources": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "List plugin resource types",
        "operationId": "listPluginResources",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceType"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/settings": {
      "get": {
        "tags": [
          "Plugins"
        ],
        "summary": "List plugin settings",
        "operationId": "listPluginSettings",
        "parameters": [
          {
            "name": "space_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPluginSetting"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Plugins"
        ],
        "summary": "Update plugin settings",
        "operationId": "updatePluginSettings",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiPluginSettingsUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPluginSetting"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/plugins/{plugin_key}/uninstall": {
      "post": {
        "tags": [
          "Plugins"
        ],
        "summary": "Uninstall plugin",
        "operationId": "uninstallPlugin",
        "parameters": [
          {
            "name": "plugin_key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/ready": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Get readiness status",
        "operationId": "getReadiness",
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIReady"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/resource-types": {
      "get": {
        "tags": [
          "Resource Types"
        ],
        "summary": "List resource types",
        "operationId": "listResourceTypes",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceType"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Resource Types"
        ],
        "summary": "Register or update a resource type",
        "operationId": "upsertResourceType",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiResourceTypeMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceType"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/resource-types/{resource_type}": {
      "get": {
        "tags": [
          "Resource Types"
        ],
        "summary": "Get a resource type",
        "operationId": "getResourceType",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceType"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/resource-types/{resource_type}/actions": {
      "get": {
        "tags": [
          "Resource Types"
        ],
        "summary": "List resource actions",
        "operationId": "listResourceActions",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceAction"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Resource Types"
        ],
        "summary": "Register or update a resource action",
        "operationId": "upsertResourceAction",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiResourceActionMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceAction"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/resource-types/{resource_type}/mapping": {
      "get": {
        "tags": [
          "Resource Types"
        ],
        "summary": "Get resource mapping",
        "operationId": "getResourceMapping",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceMapping"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Resource Types"
        ],
        "summary": "Register or update resource mapping",
        "operationId": "upsertResourceMapping",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiResourceMappingMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceMapping"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/resources": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "List resources",
        "operationId": "listResources",
        "parameters": [
          {
            "name": "space_id",
            "in": "query",
            "description": "Filter resources by Space ID.",
            "schema": {
              "type": "string",
              "description": "Filter resources by Space ID."
            }
          },
          {
            "name": "resource_type",
            "in": "query",
            "description": "Filter resources by resource type.",
            "schema": {
              "type": "string",
              "description": "Filter resources by resource type."
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Resources"
        ],
        "summary": "Create a resource",
        "operationId": "createResource",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiResourceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/resources/{resource_type}/{resource_id}": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get a resource by type and ID",
        "operationId": "getResourceByTypeAndID",
        "parameters": [
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/role-permissions": {
      "get": {
        "tags": [
          "Permissions"
        ],
        "summary": "List role-permission bindings",
        "operationId": "listRolePermissions",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRolePermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Permissions"
        ],
        "summary": "Create a role-permission binding",
        "operationId": "createRolePermission",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiRolePermissionMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRolePermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/role-permissions/{role_permission_id}": {
      "delete": {
        "tags": [
          "Permissions"
        ],
        "summary": "Revoke a role-permission binding",
        "operationId": "deleteRolePermission",
        "parameters": [
          {
            "name": "role_permission_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRolePermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "get": {
        "tags": [
          "Permissions"
        ],
        "summary": "Get a role-permission binding",
        "operationId": "getRolePermission",
        "parameters": [
          {
            "name": "role_permission_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRolePermission"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/roles/{role_id}": {
      "get": {
        "tags": [
          "Roles"
        ],
        "summary": "Get a role by ID",
        "operationId": "getRoleByID",
        "parameters": [
          {
            "name": "role_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces": {
      "get": {
        "tags": [
          "Spaces"
        ],
        "summary": "List spaces",
        "operationId": "listSpaces",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Spaces"
        ],
        "summary": "Create a space",
        "operationId": "createSpace",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiSpaceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}": {
      "get": {
        "tags": [
          "Spaces"
        ],
        "summary": "Get a space",
        "operationId": "getSpace",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Spaces"
        ],
        "summary": "Update a space",
        "operationId": "updateSpace",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiSpaceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/audit-logs": {
      "get": {
        "tags": [
          "Audit"
        ],
        "summary": "List audit logs in a space",
        "operationId": "listSpaceAuditLogs",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditLog"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/audit-logs/{audit_log_id}": {
      "get": {
        "tags": [
          "Audit"
        ],
        "summary": "Get audit log detail in a space",
        "operationId": "getSpaceAuditLog",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audit_log_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditLog"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/disable": {
      "post": {
        "tags": [
          "Spaces"
        ],
        "summary": "Disable a space",
        "operationId": "disableSpace",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiSpaceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/groups": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List groups in a space",
        "operationId": "listGroups",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Create a group",
        "operationId": "createGroup",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiGroupMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/groups/tree": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "List groups as a tree",
        "operationId": "getGroupTree",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/groups/{group_id}": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Get a group in a space",
        "operationId": "getGroup",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Groups"
        ],
        "summary": "Update a group",
        "operationId": "updateGroup",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiGroupMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/groups/{group_id}/disable": {
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Disable a group",
        "operationId": "disableGroup",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiGroupMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/member-roles": {
      "get": {
        "tags": [
          "Roles"
        ],
        "summary": "List member role grants",
        "operationId": "listMemberRoles",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMemberRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Roles"
        ],
        "summary": "Create a member role grant",
        "operationId": "createMemberRole",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiMemberRoleMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMemberRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/member-roles/{member_role_id}": {
      "get": {
        "tags": [
          "Roles"
        ],
        "summary": "Get a member role grant",
        "operationId": "getMemberRole",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "member_role_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMemberRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/member-roles/{member_role_id}/revoke": {
      "post": {
        "tags": [
          "Roles"
        ],
        "summary": "Revoke a member role grant",
        "operationId": "revokeMemberRole",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "member_role_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiMemberRoleMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMemberRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/members": {
      "get": {
        "tags": [
          "Members"
        ],
        "summary": "List members in a space",
        "operationId": "listMembers",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Members"
        ],
        "summary": "Create a member",
        "operationId": "createMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiMemberMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/members/{member_id}": {
      "get": {
        "tags": [
          "Members"
        ],
        "summary": "Get a member in a space",
        "operationId": "getMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Members"
        ],
        "summary": "Update a member",
        "operationId": "updateMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiMemberMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/members/{member_id}/disable": {
      "post": {
        "tags": [
          "Members"
        ],
        "summary": "Disable a member",
        "operationId": "disableMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiMemberMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/resources": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "List resources in a space",
        "operationId": "listSpaceResources",
        "parameters": [
          {
            "name": "resource_type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Resources"
        ],
        "summary": "Create a resource in a space",
        "operationId": "createSpaceResource",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiResourceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/resources/{resource_id}": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get a resource in a space",
        "operationId": "getSpaceResource",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Resources"
        ],
        "summary": "Update a resource in a space",
        "operationId": "updateSpaceResource",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiResourceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/resources/{resource_id}/archive": {
      "post": {
        "tags": [
          "Resources"
        ],
        "summary": "Archive a resource",
        "operationId": "archiveSpaceResource",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiResourceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/restore": {
      "post": {
        "tags": [
          "Spaces"
        ],
        "summary": "Restore a space",
        "operationId": "restoreSpace",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiSpaceMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/roles": {
      "get": {
        "tags": [
          "Roles"
        ],
        "summary": "List roles in a space",
        "operationId": "listRoles",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Roles"
        ],
        "summary": "Create a role",
        "operationId": "createRole",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiRoleMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/roles/{role_id}": {
      "get": {
        "tags": [
          "Roles"
        ],
        "summary": "Get a role in a space",
        "operationId": "getRole",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Roles"
        ],
        "summary": "Update a role",
        "operationId": "updateRole",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiRoleMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/roles/{role_id}/disable": {
      "post": {
        "tags": [
          "Roles"
        ],
        "summary": "Disable a role",
        "operationId": "disableRole",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiRoleMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/user-members": {
      "get": {
        "tags": [
          "User Members"
        ],
        "summary": "List user-member bindings",
        "operationId": "listUserMembers",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "User Members"
        ],
        "summary": "Create a user-member binding",
        "operationId": "createUserMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUserMemberMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/user-members/{user_member_id}": {
      "get": {
        "tags": [
          "User Members"
        ],
        "summary": "Get a user-member binding in a space",
        "operationId": "getUserMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "user_member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "User Members"
        ],
        "summary": "Update a user-member binding",
        "operationId": "updateUserMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "user_member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUserMemberMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/spaces/{space_id}/user-members/{user_member_id}/revoke": {
      "post": {
        "tags": [
          "User Members"
        ],
        "summary": "Revoke a user-member binding",
        "operationId": "revokeUserMember",
        "parameters": [
          {
            "name": "space_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "user_member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUserMemberMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/templates": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "List templates",
        "operationId": "listTemplates",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalTemplatesManifest"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/templates/{template_id}": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "Get template",
        "operationId": "getTemplate",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalTemplatesManifest"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/templates/{template_id}/install": {
      "post": {
        "tags": [
          "Templates"
        ],
        "summary": "Install template",
        "operationId": "installTemplate",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiTemplateInstallRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPITemplateInstallResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/templates/{template_id}/preview-install": {
      "post": {
        "tags": [
          "Templates"
        ],
        "summary": "Preview template installation",
        "operationId": "previewTemplateInstall",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiTemplateInstallRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeMapStringInterface"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/user-members/{user_member_id}": {
      "get": {
        "tags": [
          "User Members"
        ],
        "summary": "Get a user-member binding by ID",
        "operationId": "getUserMemberByID",
        "parameters": [
          {
            "name": "user_member_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/users": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "List users",
        "operationId": "listUsers",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of rows to return.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "description": "Maximum number of rows to return."
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create a user",
        "operationId": "createUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUserMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/users/{user_id}": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get a user",
        "operationId": "getUser",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Users"
        ],
        "summary": "Update a user",
        "operationId": "updateUser",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUserMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/users/{user_id}/disable": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Disable a user",
        "operationId": "disableUser",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUserMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/users/{user_id}/restore": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Restore a user",
        "operationId": "restoreUser",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUserMutationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v1/version": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Get Core version",
        "operationId": "getVersion",
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIVersionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/metrics": {
      "get": {
        "tags": [
          "System"
        ],
        "summary": "Get Prometheus metrics",
        "operationId": "getMetrics",
        "responses": {
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOpenAPIErrorEnvelope"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "MetricsTokenAuth": []
          },
          {
            "BearerAuth": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApiAdminGrantMutationRequest": {
        "type": "object",
        "properties": {
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "group_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "member_id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "permission_key": {
            "type": "string"
          },
          "revoked_reason": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          }
        }
      },
      "ApiApiKeyMutationRequest": {
        "type": "object",
        "properties": {
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "group_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "permission_keys": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "revoked_reason": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "ApiAuthLoginRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "ApiAuthLogoutRequest": {
        "type": "object",
        "properties": {
          "refresh_token": {
            "type": "string"
          }
        }
      },
      "ApiAuthRefreshRequest": {
        "type": "object",
        "properties": {
          "refresh_token": {
            "type": "string"
          }
        }
      },
      "ApiAuthRegisterRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "member_display_name": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "password": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "registration_token": {
            "type": "string"
          },
          "space_name": {
            "type": "string"
          },
          "space_slug": {
            "type": "string"
          },
          "username": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiAuthzRequest": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "explain": {
            "type": "boolean"
          },
          "grants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthzGrantContext"
            },
            "nullable": true
          },
          "resource": {
            "$ref": "#/components/schemas/ApiAuthzResourceContext"
          },
          "resource_id": {
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          }
        }
      },
      "ApiAuthzResourceContext": {
        "type": "object",
        "properties": {
          "display_name": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "group_id": {
            "type": "string"
          },
          "group_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "owner_member_id": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "visibility": {
            "type": "string"
          }
        }
      },
      "ApiDataRowMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "display_name": {
            "type": "string",
            "nullable": true
          },
          "group_id": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "owner_member_id": {
            "type": "string",
            "nullable": true
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiGroupMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "display_name": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "parent_group_id": {
            "type": "string",
            "nullable": true
          },
          "parent_id": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string"
          },
          "sort_order": {
            "type": "integer",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiMemberMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "member_type": {
            "type": "string",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiMemberRoleMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "id": {
            "type": "string"
          },
          "member_id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "role_id": {
            "type": "string"
          },
          "scope_anchor_group_id": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiOpenAPIAPIKey": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_by_member_id": {
            "type": "string"
          },
          "created_by_user_id": {
            "type": "string"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "group_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string",
            "description": "Only returned once by POST /api/v1/api-keys."
          },
          "key_prefix": {
            "type": "string"
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "level": {
            "type": "string",
            "example": "space"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "permission_keys": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "revoked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "revoked_by_user_id": {
            "type": "string"
          },
          "revoked_reason": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "example": "active"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIActorContextResponse": {
        "type": "object",
        "properties": {
          "actor": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "available_members": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            },
            "nullable": true
          }
        }
      },
      "ApiOpenAPIAdminGrant": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "granted_by_member_id": {
            "type": "string"
          },
          "granted_by_user_id": {
            "type": "string"
          },
          "group_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "level": {
            "type": "string",
            "example": "space_admin"
          },
          "member_id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "permission_key": {
            "type": "string",
            "example": "spaces:manage"
          },
          "revoked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "revoked_reason": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "example": "active"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIAdminMeResponse": {
        "type": "object",
        "properties": {
          "active_member": {
            "type": "string"
          },
          "active_space": {
            "type": "string"
          },
          "api_key": {
            "$ref": "#/components/schemas/ApiOpenAPIAPIKey"
          },
          "capabilities": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          },
          "credential_type": {
            "type": "string",
            "example": "session"
          },
          "grants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIAdminGrant"
            },
            "nullable": true
          },
          "session_id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIAuditEventType": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "default_audit": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "plugin_id": {
            "type": "string"
          },
          "risk_level": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIAuditLog": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "actor_member_id": {
            "type": "string"
          },
          "actor_user_id": {
            "type": "string"
          },
          "actor_user_member_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "decision": {
            "type": "string"
          },
          "deny_code": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "ip_address": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "resource_id": {
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "trace": {
            "type": "object",
            "additionalProperties": {}
          },
          "user_agent": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIAuthzCheckResponse": {
        "type": "object",
        "properties": {
          "allow": {
            "type": "boolean"
          },
          "audit": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "audit_log_id": {
            "type": "string"
          },
          "decision": {
            "type": "string",
            "example": "allow"
          },
          "deny_code": {
            "type": "string",
            "nullable": true
          },
          "reason": {
            "type": "string"
          },
          "trace_id": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIDataRowMutationResponse": {
        "type": "object",
        "properties": {
          "authorization": {
            "$ref": "#/components/schemas/ApiOpenAPIAuthzCheckResponse"
          },
          "row": {
            "$ref": "#/components/schemas/ApiOpenAPIResource"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAPIKey": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIAPIKey"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIActorContextResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIActorContextResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminGrant": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIAdminGrant"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminMeResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIAdminMeResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditLog": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIAuditLog"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuthzCheckResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIAuthzCheckResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIDataRowMutationResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIDataRowMutationResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIGroup"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIHealth": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIHealth"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPILoginResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPILoginResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPILogoutResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPILogoutResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIMember"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMemberRole": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIMemberRole"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIOverviewResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIOverviewResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIPermission"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIPlugin"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPluginValidationResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIPluginValidationResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIReady": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIReady"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRefreshResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIRefreshResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRegisterResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIRegisterResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIResource"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceAction": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIResourceAction"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceMapping": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIResourceMapping"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceType": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIResourceType"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIRole"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRolePermission": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIRolePermission"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPISpace"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPITemplateInstallResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPITemplateInstallResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIUser"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIUserMember"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalApiOpenAPIVersionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOpenAPIVersionResponse"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeGithubComPlystraPlystraInternalTemplatesManifest": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/TemplatesManifest"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIEnvelopeMapStringInterface": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIError": {
        "type": "object",
        "properties": {
          "audit_log_id": {
            "type": "string",
            "example": "audit_01hzyj6b6q8"
          },
          "code": {
            "type": "string",
            "example": "VALIDATION_FAILED"
          },
          "deny_code": {
            "type": "string",
            "example": "SCOPE_OUT_OF_BOUNDS"
          },
          "details": {},
          "message": {
            "type": "string",
            "example": "Request body is invalid JSON."
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          },
          "trace_id": {
            "type": "string",
            "example": "trace_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIErrorEnvelope": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiOpenAPIError"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIGroup": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "depth": {
            "type": "integer"
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "parent_group_id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "sort_order": {
            "type": "integer"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIHealth": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "example": "ok"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAPIKey": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIAPIKey"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAdminGrant": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIAdminGrant"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditEventType": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIAuditEventType"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIAuditLog": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIAuditLog"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIGroup": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIGroup"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMember": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIMember"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIMemberRole": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIMemberRole"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPermission": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIPermission"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPlugin": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIPlugin"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPluginAdminMenu": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIPluginAdminMenu"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIPluginSetting": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIPluginSetting"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResource": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIResource"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceAction": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIResourceAction"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceMapping": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIResourceMapping"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIResourceType": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIResourceType"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRole": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIRole"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIRolePermission": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIRolePermission"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPISpace": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPISpace"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUser": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIUser"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalApiOpenAPIUserMember": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIUserMember"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPIListEnvelopeGithubComPlystraPlystraInternalTemplatesManifest": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatesManifest"
            },
            "nullable": true
          },
          "pagination": {
            "$ref": "#/components/schemas/ApiOpenAPIPagination"
          },
          "request_id": {
            "type": "string",
            "example": "req_01hzyj6b6q8"
          }
        }
      },
      "ApiOpenAPILoginResponse": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string"
          },
          "actor": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "available_members": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            },
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "refresh_expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "refresh_token": {
            "type": "string"
          },
          "token_type": {
            "type": "string",
            "example": "Bearer"
          },
          "user": {
            "$ref": "#/components/schemas/ApiOpenAPIUserSession"
          }
        }
      },
      "ApiOpenAPILogoutResponse": {
        "type": "object",
        "properties": {
          "logged_out": {
            "type": "boolean",
            "example": true
          }
        }
      },
      "ApiOpenAPIMember": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "member_type": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIMemberRole": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "member_display_name": {
            "type": "string"
          },
          "member_id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "role_id": {
            "type": "string"
          },
          "role_key": {
            "type": "string"
          },
          "role_name": {
            "type": "string"
          },
          "scope_anchor_group_id": {
            "type": "string"
          },
          "scope_anchor_path": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIOverviewResponse": {
        "type": "object",
        "properties": {
          "counts": {
            "type": "object",
            "additionalProperties": {
              "type": "integer"
            },
            "nullable": true
          },
          "recent_audit_logs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiOpenAPIAuditLog"
            },
            "nullable": true
          }
        }
      },
      "ApiOpenAPIPagination": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "nullable": true
          },
          "has_more": {
            "type": "boolean",
            "example": false
          },
          "limit": {
            "type": "integer",
            "example": 50
          }
        }
      },
      "ApiOpenAPIPermission": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "resource": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIPlugin": {
        "type": "object",
        "properties": {
          "admin_menus_count": {
            "type": "integer"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "manifest": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "permissions_count": {
            "type": "integer"
          },
          "resources_count": {
            "type": "integer"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIPluginAdminMenu": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "icon": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "path": {
            "type": "string"
          },
          "plugin_id": {
            "type": "string"
          },
          "required_permission": {
            "type": "string"
          },
          "sort_order": {
            "type": "integer"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIPluginSetting": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "default_value": {
            "type": "object",
            "additionalProperties": {}
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "scope": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "value": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "value_type": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIPluginValidationResponse": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "valid": {
            "type": "boolean"
          }
        }
      },
      "ApiOpenAPIReady": {
        "type": "object",
        "properties": {
          "expected_schema_version": {
            "type": "string",
            "example": "017"
          },
          "plugins": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "schema_version": {
            "type": "string",
            "example": "017"
          },
          "status": {
            "type": "string",
            "example": "ready"
          },
          "system_capabilities": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "trace_version": {
            "type": "string",
            "example": "1.0"
          }
        }
      },
      "ApiOpenAPIRefreshResponse": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "refresh_expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "refresh_token": {
            "type": "string"
          },
          "token_type": {
            "type": "string",
            "example": "Bearer"
          }
        }
      },
      "ApiOpenAPIRegisterResponse": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string"
          },
          "actor": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "available_members": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            },
            "nullable": true
          },
          "bootstrap_admin_grant_id": {
            "type": "string"
          },
          "bootstrap_super_admin": {
            "type": "boolean"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "refresh_expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "refresh_token": {
            "type": "string"
          },
          "registration_mode": {
            "type": "string",
            "example": "ordinary"
          },
          "registration_requires_approval": {
            "type": "boolean"
          },
          "space_admin_grant_id": {
            "type": "string"
          },
          "token_type": {
            "type": "string",
            "example": "Bearer"
          },
          "user": {
            "$ref": "#/components/schemas/ApiOpenAPIUserSession"
          },
          "user_only": {
            "type": "boolean"
          }
        }
      },
      "ApiOpenAPIResource": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "display_name": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "group_id": {
            "type": "string"
          },
          "group_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "owner_member_display_name": {
            "type": "string"
          },
          "owner_member_id": {
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "space_name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "visibility": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIResourceAction": {
        "type": "object",
        "properties": {
          "audit_default": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "risk_level": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIResourceMapping": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "display_name": {
            "type": "string"
          },
          "group_field": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "id_field": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "metadata_field": {
            "type": "string"
          },
          "owner_member_field": {
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          },
          "resource_type_id": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "space_field": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "storage_kind": {
            "type": "string"
          },
          "table_name": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "visibility_field": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIResourceType": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIRole": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPIRolePermission": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "permission_id": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "role_key": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPISpace": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiOpenAPITemplateInstallResponse": {
        "type": "object",
        "properties": {
          "applied": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "installation_id": {
            "type": "string"
          },
          "preview": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "template": {
            "$ref": "#/components/schemas/TemplatesManifest"
          }
        }
      },
      "ApiOpenAPIUser": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "email": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "last_login_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "password_changed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "phone": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "username": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIUserMember": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "email": {
            "type": "string"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "is_primary": {
            "type": "boolean"
          },
          "linked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "linked_by_member_id": {
            "type": "string"
          },
          "member_display_name": {
            "type": "string"
          },
          "member_id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "relation_type": {
            "type": "string"
          },
          "revoked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "revoked_reason": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          }
        }
      },
      "ApiOpenAPIUserSession": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "example": "alice@example.com"
          },
          "id": {
            "type": "string",
            "example": "user_alice"
          },
          "status": {
            "type": "string",
            "example": "active"
          }
        }
      },
      "ApiOpenAPIVersionResponse": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "example": "0.0.1"
          }
        }
      },
      "ApiPermissionMutationRequest": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "audit_space_id": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "resource": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiPluginInstallRequest": {
        "type": "object",
        "properties": {
          "manifest": {
            "$ref": "#/components/schemas/PluginsManifest"
          },
          "source": {
            "type": "string"
          }
        }
      },
      "ApiPluginSettingsUpdateRequest": {
        "type": "object",
        "properties": {
          "settings": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "space_id": {
            "type": "string"
          }
        }
      },
      "ApiResourceActionMutationRequest": {
        "type": "object",
        "properties": {
          "audit_default": {
            "type": "boolean",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "risk_level": {
            "type": "string"
          }
        }
      },
      "ApiResourceMappingMutationRequest": {
        "type": "object",
        "properties": {
          "group_field": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "id_field": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "metadata_field": {
            "type": "string",
            "nullable": true
          },
          "owner_member_field": {
            "type": "string",
            "nullable": true
          },
          "space_field": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "storage_kind": {
            "type": "string"
          },
          "table_name": {
            "type": "string",
            "nullable": true
          },
          "visibility_field": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiResourceMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "display_name": {
            "type": "string",
            "nullable": true
          },
          "external_id": {
            "type": "string",
            "nullable": true
          },
          "group_id": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "owner_member_id": {
            "type": "string",
            "nullable": true
          },
          "resource_type": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiResourceTypeMutationRequest": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "nullable": true
          },
          "display_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiRoleMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiRolePermissionMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "audit_space_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "permission_id": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          }
        }
      },
      "ApiSpaceMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApiSwitchMemberRequest": {
        "type": "object",
        "properties": {
          "member_id": {
            "type": "string"
          },
          "user_member_id": {
            "type": "string"
          }
        }
      },
      "ApiTemplateInstallRequest": {
        "type": "object",
        "properties": {
          "actor_member_id": {
            "type": "string"
          },
          "actor_user_id": {
            "type": "string"
          },
          "actor_user_member_id": {
            "type": "string"
          },
          "allow_existing_resources": {
            "type": "boolean"
          },
          "allow_missing_capabilities": {
            "type": "boolean"
          },
          "allow_missing_plugins": {
            "type": "boolean"
          },
          "installed_by_member_id": {
            "type": "string"
          },
          "installed_by_user_id": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          }
        }
      },
      "ApiUserMemberMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "is_primary": {
            "type": "boolean",
            "nullable": true
          },
          "linked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "linked_by_member_id": {
            "type": "string",
            "nullable": true
          },
          "member_id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "relation_type": {
            "type": "string"
          },
          "revoked_reason": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "user_id": {
            "type": "string"
          }
        }
      },
      "ApiUserMutationRequest": {
        "type": "object",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AuthzActorContext"
          },
          "audit_space_id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "AuthzActorContext": {
        "type": "object",
        "properties": {
          "binding_id": {
            "type": "string"
          },
          "binding_status": {
            "type": "string"
          },
          "member_display_name": {
            "type": "string"
          },
          "member_id": {
            "type": "string"
          },
          "member_status": {
            "type": "string"
          },
          "relation_type": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "space_name": {
            "type": "string"
          },
          "space_status": {
            "type": "string"
          },
          "user_email": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "user_member_id": {
            "type": "string"
          },
          "user_status": {
            "type": "string"
          }
        }
      },
      "AuthzGrantContext": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "permission_id": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "role_key": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "scope_anchor_group_id": {
            "type": "string"
          },
          "scope_anchor_group_path": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          }
        }
      },
      "PluginsActionDefinition": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "risk_level": {
            "type": "string"
          }
        }
      },
      "PluginsAdminMenuDefinition": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "required_permission": {
            "type": "string"
          }
        }
      },
      "PluginsAuditEventDefinition": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "risk_level": {
            "type": "string"
          }
        }
      },
      "PluginsCapabilityDefinition": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "PluginsCapabilityRequirement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "min_level": {
            "type": "string"
          },
          "optional": {
            "type": "boolean"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "PluginsManifest": {
        "type": "object",
        "properties": {
          "admin_menu": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsAdminMenuDefinition"
            },
            "nullable": true
          },
          "audit_events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsAuditEventDefinition"
            },
            "nullable": true
          },
          "capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsCapabilityDefinition"
            },
            "nullable": true
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "manifest_version": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsPermissionDefinition"
            },
            "nullable": true
          },
          "plugin_api_version": {
            "type": "string"
          },
          "requires_capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsCapabilityRequirement"
            },
            "nullable": true
          },
          "requires_core": {
            "type": "string"
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsResourceDefinition"
            },
            "nullable": true
          },
          "settings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsSettingDefinition"
            },
            "nullable": true
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "PluginsPermissionDefinition": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        }
      },
      "PluginsResourceDefinition": {
        "type": "object",
        "properties": {
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PluginsActionDefinition"
            },
            "nullable": true
          },
          "display_name": {
            "type": "string"
          },
          "key": {
            "type": "string"
          }
        }
      },
      "PluginsSettingDefinition": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "TemplatesCapabilityRequirement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "min_level": {
            "type": "string"
          },
          "optional": {
            "type": "boolean"
          },
          "reason": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "TemplatesDeploymentProfile": {
        "type": "object",
        "properties": {
          "backup": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "configuration": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "database": {
            "type": "string"
          },
          "health_checks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "one_command_start": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "requires_external_postgres": {
            "type": "boolean"
          },
          "restore": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "runtime": {
            "type": "string"
          },
          "structured_logs": {
            "type": "boolean"
          }
        }
      },
      "TemplatesGroup": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "TemplatesManifest": {
        "type": "object",
        "properties": {
          "deployment_profile": {
            "$ref": "#/components/schemas/TemplatesDeploymentProfile"
          },
          "description": {
            "type": "string"
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatesGroup"
            },
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatesPermission"
            },
            "nullable": true
          },
          "required_capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatesCapabilityRequirement"
            },
            "nullable": true
          },
          "required_plugins": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "requires_core": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatesRole"
            },
            "nullable": true
          },
          "spaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatesSpace"
            },
            "nullable": true
          },
          "version": {
            "type": "string"
          }
        }
      },
      "TemplatesPermission": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "resource": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          }
        }
      },
      "TemplatesRole": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          }
        }
      },
      "TemplatesSpace": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "name": "X-Plystra-API-Key",
        "in": "header",
        "description": "Scoped API key for server-to-server Core calls."
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "opaque Plystra access token",
        "description": "Use the access_token returned by POST /api/v1/auth/login or POST /api/v1/auth/refresh."
      },
      "MetricsTokenAuth": {
        "type": "apiKey",
        "name": "X-Plystra-Metrics-Token",
        "in": "header",
        "description": "Dedicated metrics token when METRICS_TOKEN or PLYSTRA_METRICS_TOKEN is configured."
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Platform",
      "tags": [
        "System",
        "Console"
      ]
    },
    {
      "name": "Authentication",
      "tags": [
        "Auth",
        "Actor"
      ]
    },
    {
      "name": "Administration",
      "tags": [
        "Admin",
        "API Keys"
      ]
    },
    {
      "name": "Authorization",
      "tags": [
        "Authorization",
        "Permissions",
        "Roles"
      ]
    },
    {
      "name": "Identity",
      "tags": [
        "Users",
        "Spaces",
        "Groups",
        "Members",
        "User Members"
      ]
    },
    {
      "name": "Resources",
      "tags": [
        "Resource Types",
        "Resources",
        "Data Console"
      ]
    },
    {
      "name": "Audit",
      "tags": [
        "Audit"
      ]
    },
    {
      "name": "Extensions",
      "tags": [
        "Plugins",
        "Templates"
      ]
    }
  ]
}
