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