{
  "openapi": "3.1.1",
  "info": {
    "title": "TradingAI Marketplace Cloud API",
    "version": "2026.10.8+source.8ca931a43bf9",
    "description": "Source-derived Marketplace routes and serde request contracts. The generator reads the Actix route factories and request DTOs. Many response payloads are JsonValue; those are marked dynamic unless the Rust source verifies a concrete envelope, key set, or serializable type. A generated contract does not imply that a production deployment has every route enabled."
  },
  "servers": [
    {
      "url": "https://{cloud_origin}",
      "description": "Set this variable to the target TradingAI Cloud or self-hosted origin. Marketplace documentation identifies newapi.tradingai.app as the current client default; actual client configuration can select another deployment. This specification does not validate a live host.",
      "variables": {
        "cloud_origin": {
          "default": "cloud.example.invalid",
          "description": "Cloud hostname, optionally including a port; omit scheme and path. The .invalid default will not resolve."
        }
      }
    }
  ],
  "tags": [
    {
      "name": "catalog",
      "description": "Public catalog and release lookup."
    },
    {
      "name": "account",
      "description": "Authenticated user, installation, entitlement, and checkout operations."
    },
    {
      "name": "publisher",
      "description": "Publisher registration and signed package submissions."
    },
    {
      "name": "creator",
      "description": "Creator account, Connect onboarding, payout facts, and withdrawals."
    },
    {
      "name": "admin",
      "description": "Routes guarded by Marketplace or platform administrator checks."
    }
  ],
  "paths": {
    "/api/marketplace/admin/plugins/{id}/prices": {
      "post": {
        "operationId": "marketplace_post_configure_marketplace_price",
        "tags": [
          "admin"
        ],
        "summary": "configure marketplace price",
        "description": "Availability depends on Marketplace commercial and Stripe provider configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "configure_marketplace_price",
        "x-source-line": 52,
        "x-access-level": "admin",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "Marketplace database administrator role checked by marketplace_user_is_admin",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfigurePriceRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "ConfigurePriceRequest"
      }
    },
    "/api/marketplace/admin/plugins/{id}/review": {
      "post": {
        "operationId": "marketplace_post_review_plugin",
        "tags": [
          "admin"
        ],
        "summary": "review plugin",
        "description": "Requires the server feature gate MARKETPLACE_PUBLISHING_ENABLED; source default is disabled.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "review_plugin",
        "x-source-line": 68,
        "x-access-level": "admin",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "Marketplace database administrator role checked by marketplace_user_is_admin",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewActionRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-feature-gates": [
          {
            "name": "MARKETPLACE_PUBLISHING_ENABLED",
            "default": false
          }
        ],
        "x-request-type": "ReviewActionRequest"
      }
    },
    "/api/marketplace/admin/publishers/{id}/keys/{key_id}/revoke": {
      "post": {
        "operationId": "marketplace_post_revoke_publisher_key",
        "tags": [
          "admin"
        ],
        "summary": "revoke publisher key",
        "description": "Handler `revoke_publisher_key` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "revoke_publisher_key",
        "x-source-line": 54,
        "x-access-level": "admin",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "Marketplace database administrator role checked by marketplace_user_is_admin",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokePublisherKeyRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "RevokePublisherKeyRequest"
      }
    },
    "/api/marketplace/admin/publishers/{id}/verify": {
      "post": {
        "operationId": "marketplace_post_verify_publisher",
        "tags": [
          "admin"
        ],
        "summary": "verify publisher",
        "description": "Requires the server feature gate MARKETPLACE_PUBLISHING_ENABLED; source default is disabled.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "verify_publisher",
        "x-source-line": 69,
        "x-access-level": "admin",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "Marketplace database administrator role checked by marketplace_user_is_admin",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyPublisherRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-feature-gates": [
          {
            "name": "MARKETPLACE_PUBLISHING_ENABLED",
            "default": false
          }
        ],
        "x-request-type": "VerifyPublisherRequest"
      }
    },
    "/api/marketplace/admin/review-queue": {
      "get": {
        "operationId": "marketplace_get_get_review_queue",
        "tags": [
          "admin"
        ],
        "summary": "get review queue",
        "description": "Handler `get_review_queue` in the Marketplace service.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_review_queue",
        "x-source-line": 67,
        "x-access-level": "admin",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "Marketplace database administrator role checked by marketplace_user_is_admin",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/admin/trust-keys": {
      "get": {
        "operationId": "marketplace_get_get_marketplace_trust_keys",
        "tags": [
          "admin"
        ],
        "summary": "get marketplace trust keys",
        "description": "Handler `get_marketplace_trust_keys` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_marketplace_trust_keys",
        "x-source-line": 53,
        "x-access-level": "admin",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "Marketplace database administrator role checked by marketplace_user_is_admin",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/category/{category}": {
      "get": {
        "operationId": "marketplace_get_get_by_category",
        "tags": [
          "catalog"
        ],
        "summary": "get by category",
        "description": "Handler `get_by_category` in the Marketplace service.",
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_by_category",
        "x-source-line": 72,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/checkout/{order_id}": {
      "get": {
        "operationId": "marketplace_get_get_marketplace_checkout",
        "tags": [
          "account"
        ],
        "summary": "get marketplace checkout",
        "description": "Handler `get_marketplace_checkout` in the Marketplace service.",
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_marketplace_checkout",
        "x-source-line": 46,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/account": {
      "post": {
        "operationId": "marketplace_post_bind_account",
        "tags": [
          "creator"
        ],
        "summary": "bind account",
        "description": "Handler `bind_account` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "bind_account",
        "x-source-line": 18,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorAccountRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "CreatorAccountRequest"
      }
    },
    "/api/marketplace/creator/admin/connect/{user_id}/reconcile": {
      "post": {
        "operationId": "marketplace_post_connect_reconcile",
        "tags": [
          "admin"
        ],
        "summary": "connect reconcile",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization.",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_reconcile",
        "x-source-line": 49,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorAccountRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorAccountRequest"
      }
    },
    "/api/marketplace/creator/admin/prices": {
      "get": {
        "operationId": "marketplace_get_admin_prices",
        "tags": [
          "admin"
        ],
        "summary": "admin prices",
        "description": "Handler `admin_prices` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "prices": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "plugin_id": {
                                "type": "string"
                              },
                              "amount_minor": {
                                "type": "integer",
                                "format": "int64"
                              },
                              "currency": {
                                "type": "string"
                              },
                              "billing_interval": {
                                "type": "string"
                              },
                              "creator_share_bps": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "format": "int32"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "hold_days": {
                                "anyOf": [
                                  {
                                    "type": "integer",
                                    "format": "int32"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "id",
                              "plugin_id",
                              "amount_minor",
                              "currency",
                              "billing_interval",
                              "creator_share_bps",
                              "hold_days"
                            ],
                            "additionalProperties": false,
                            "x-schema-origin": "manual-source-review",
                            "x-schema-source-files": [
                              "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
                            ]
                          }
                        }
                      },
                      "required": [
                        "prices"
                      ],
                      "additionalProperties": false,
                      "x-schema-status": "verified-source-shape",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
                        "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "admin_prices",
        "x-source-line": 43,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/admin/prices/{id}/terms": {
      "post": {
        "operationId": "marketplace_post_configure_terms",
        "tags": [
          "admin"
        ],
        "summary": "configure terms",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "configure_terms",
        "x-source-line": 44,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorTermsRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorTermsRequest"
      }
    },
    "/api/marketplace/creator/admin/reversals": {
      "get": {
        "operationId": "marketplace_get_reversal_requests",
        "tags": [
          "admin"
        ],
        "summary": "reversal requests",
        "description": "Handler `reversal_requests` in the Marketplace service.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "reversal_requests",
        "x-source-line": 51,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/admin/reversals/{id}/execute": {
      "post": {
        "operationId": "marketplace_post_reversal_execute",
        "tags": [
          "admin"
        ],
        "summary": "reversal execute",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization. Accepts an idempotency key in the JSON body; replays are checked against the original operation identity.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "reversal_execute",
        "x-source-line": 56,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorExecuteRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorExecuteRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/creator/admin/reversals/{id}/reconcile": {
      "post": {
        "operationId": "marketplace_post_reversal_reconcile",
        "tags": [
          "admin"
        ],
        "summary": "reversal reconcile",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization. Accepts an idempotency key in the JSON body; replays are checked against the original operation identity.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "reversal_reconcile",
        "x-source-line": 58,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorExecuteRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorExecuteRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/creator/admin/withdrawals": {
      "get": {
        "operationId": "marketplace_get_admin_withdrawals",
        "tags": [
          "admin"
        ],
        "summary": "admin withdrawals",
        "description": "Handler `admin_withdrawals` in the Marketplace service.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "admin_withdrawals",
        "x-source-line": 42,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/admin/withdrawals/{id}/execute": {
      "post": {
        "operationId": "marketplace_post_execute",
        "tags": [
          "admin"
        ],
        "summary": "execute",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization. Accepts an idempotency key in the JSON body; replays are checked against the original operation identity. Also requires MARKETPLACE_CREATOR_TRANSFERS_ENABLED=true.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "execute",
        "x-source-line": 46,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorExecuteRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-feature-gates": [
          {
            "name": "MARKETPLACE_CREATOR_TRANSFERS_ENABLED",
            "required-value": "true"
          }
        ],
        "x-request-type": "CreatorExecuteRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/creator/admin/withdrawals/{id}/reconcile": {
      "post": {
        "operationId": "marketplace_post_reconcile",
        "tags": [
          "admin"
        ],
        "summary": "reconcile",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization. Accepts an idempotency key in the JSON body; replays are checked against the original operation identity.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "reconcile",
        "x-source-line": 47,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorReconcileRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorReconcileRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/creator/admin/withdrawals/{id}/reverse-request": {
      "post": {
        "operationId": "marketplace_post_reversal_request",
        "tags": [
          "admin"
        ],
        "summary": "reversal request",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization. Accepts an idempotency key in the JSON body; replays are checked against the original operation identity.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "reversal_request",
        "x-source-line": 54,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorExecuteRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorExecuteRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/creator/admin/withdrawals/{id}/review": {
      "post": {
        "operationId": "marketplace_post_review",
        "tags": [
          "admin"
        ],
        "summary": "review",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization. Accepts an idempotency key in the JSON body; replays are checked against the original operation identity.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "review",
        "x-source-line": 45,
        "x-access-level": "admin",
        "x-auth-principal": "AdminUuid",
        "x-authentication-mode": "required-bearer-admin",
        "x-authorization-check": "JWT administrator role required by AdminUuid extractor",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorReviewRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorReviewRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/creator/connect/config": {
      "get": {
        "operationId": "marketplace_get_connect_config",
        "tags": [
          "creator"
        ],
        "summary": "connect config",
        "description": "Handler `connect_config` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ConnectConfig"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_config",
        "x-source-line": 19,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/connect/link": {
      "post": {
        "operationId": "marketplace_post_connect_link",
        "tags": [
          "creator"
        ],
        "summary": "connect link",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ConnectAccountLink"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_link",
        "x-source-line": 22,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        }
      }
    },
    "/api/marketplace/creator/connect/onboarding": {
      "post": {
        "operationId": "marketplace_post_connect_start",
        "tags": [
          "creator"
        ],
        "summary": "connect start",
        "description": "Requires a recent login (authenticated within 30 minutes) in addition to the route's administrator or creator authorization.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ConnectStatus"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_start",
        "x-source-line": 21,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorConnectStart"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-recent-login-required": {
          "max-age-seconds": 1800
        },
        "x-request-type": "CreatorConnectStart"
      }
    },
    "/api/marketplace/creator/connect/refresh/{token}": {
      "get": {
        "operationId": "marketplace_get_connect_refresh",
        "tags": [
          "creator"
        ],
        "summary": "connect refresh",
        "description": "This provider callback is authorized by the server-issued path token, not by a Bearer access token.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "HTML return page when no new provider link is available.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "Static Stripe return page."
                }
              }
            }
          },
          "302": {
            "description": "Redirect to the validated Stripe onboarding URL.",
            "headers": {
              "Location": {
                "required": true,
                "schema": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_refresh",
        "x-source-line": 24,
        "x-access-level": "callback-token",
        "x-auth-principal": "creator_callback",
        "x-authentication-mode": "callback-token",
        "security": []
      }
    },
    "/api/marketplace/creator/connect/return/{token}": {
      "get": {
        "operationId": "marketplace_get_connect_return",
        "tags": [
          "creator"
        ],
        "summary": "connect return",
        "description": "This provider callback is authorized by the server-issued path token, not by a Bearer access token.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "HTML return page for the provider onboarding callback.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "Static Stripe return page."
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_return",
        "x-source-line": 25,
        "x-access-level": "callback-token",
        "x-auth-principal": "creator_callback",
        "x-authentication-mode": "callback-token",
        "security": []
      }
    },
    "/api/marketplace/creator/connect/status": {
      "get": {
        "operationId": "marketplace_get_connect_status",
        "tags": [
          "creator"
        ],
        "summary": "connect status",
        "description": "Handler `connect_status` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ConnectStatus"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_status",
        "x-source-line": 20,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/connect/sync": {
      "post": {
        "operationId": "marketplace_post_connect_sync",
        "tags": [
          "creator"
        ],
        "summary": "connect sync",
        "description": "Handler `connect_sync` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "connect_sync",
        "x-source-line": 23,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/payouts": {
      "get": {
        "operationId": "marketplace_get_payouts",
        "tags": [
          "creator"
        ],
        "summary": "payouts",
        "description": "Handler `payouts` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "payouts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                            "x-schema-status": "dynamic-json"
                          }
                        }
                      },
                      "required": [
                        "payouts"
                      ],
                      "additionalProperties": false,
                      "x-schema-status": "verified-wrapper-dynamic-items",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
                        "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "payouts",
        "x-source-line": 26,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/payouts/sync": {
      "post": {
        "operationId": "marketplace_post_payouts_sync",
        "tags": [
          "creator"
        ],
        "summary": "payouts sync",
        "description": "Handler `payouts_sync` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "payouts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                            "x-schema-status": "dynamic-json"
                          }
                        }
                      },
                      "required": [
                        "payouts"
                      ],
                      "additionalProperties": false,
                      "x-schema-status": "verified-wrapper-dynamic-items",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
                        "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "payouts_sync",
        "x-source-line": 27,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/payouts/{payout_id}/reconciliation": {
      "get": {
        "operationId": "marketplace_get_payout_reconciliation",
        "tags": [
          "creator"
        ],
        "summary": "payout reconciliation",
        "description": "Handler `payout_reconciliation` in the Marketplace service.",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/PayoutReconciliationDetail"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "payout_reconciliation",
        "x-source-line": 30,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "operationId": "marketplace_post_payout_reconciliation_sync",
        "tags": [
          "creator"
        ],
        "summary": "payout reconciliation sync",
        "description": "Handler `payout_reconciliation_sync` in the Marketplace service.",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/PayoutReconciliationDetail"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "payout_reconciliation_sync",
        "x-source-line": 31,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/payouts/{payout_id}/reconciliation/facts/{fact_id}": {
      "get": {
        "operationId": "marketplace_get_payout_reconciliation_fact",
        "tags": [
          "creator"
        ],
        "summary": "payout reconciliation fact",
        "description": "Handler `payout_reconciliation_fact` in the Marketplace service.",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/PayoutReconciliationFactExport"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "payout_reconciliation_fact",
        "x-source-line": 39,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/payouts/{payout_id}/reconciliation/history": {
      "get": {
        "operationId": "marketplace_get_payout_reconciliation_history",
        "tags": [
          "creator"
        ],
        "summary": "payout reconciliation history",
        "description": "Handler `payout_reconciliation_history` in the Marketplace service.",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 1,
                  "maximum": 50
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/PayoutReconciliationHistory"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "payout_reconciliation_history",
        "x-source-line": 35,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/summary": {
      "get": {
        "operationId": "marketplace_get_summary",
        "tags": [
          "creator"
        ],
        "summary": "summary",
        "description": "Handler `summary` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "summary",
        "x-source-line": 17,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/creator/withdrawals": {
      "post": {
        "operationId": "marketplace_post_request_withdrawal",
        "tags": [
          "creator"
        ],
        "summary": "request withdrawal",
        "description": "Accepts an idempotency key in the JSON body; replays are checked against the original operation identity.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
        "x-source-handler": "request_withdrawal",
        "x-source-line": 41,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatorWithdrawalRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "CreatorWithdrawalRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/entitlements": {
      "get": {
        "operationId": "marketplace_get_get_marketplace_entitlements",
        "tags": [
          "account"
        ],
        "summary": "get marketplace entitlements",
        "description": "Handler `get_marketplace_entitlements` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_marketplace_entitlements",
        "x-source-line": 47,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/installed": {
      "get": {
        "operationId": "marketplace_get_get_installed",
        "tags": [
          "account"
        ],
        "summary": "get installed",
        "description": "Handler `get_installed` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_installed",
        "x-source-line": 58,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/installed/{id}": {
      "post": {
        "operationId": "marketplace_post_record_installed_version",
        "tags": [
          "account"
        ],
        "summary": "record installed version",
        "description": "Handler `record_installed_version` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "record_installed_version",
        "x-source-line": 61,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstalledVersionRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "InstalledVersionRequest"
      },
      "delete": {
        "operationId": "marketplace_delete_remove_installed",
        "tags": [
          "account"
        ],
        "summary": "remove installed",
        "description": "Handler `remove_installed` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "remove_installed",
        "x-source-line": 62,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/plugins": {
      "get": {
        "operationId": "marketplace_get_get_plugins",
        "tags": [
          "catalog"
        ],
        "summary": "get plugins",
        "description": "Handler `get_plugins` in the Marketplace service.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "x-source-byte-limit": 256
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "popular",
                    "latest",
                    "rating"
                  ],
                  "default": "popular"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "name": {},
                          "version": {},
                          "description": {},
                          "category": {},
                          "icon": {},
                          "author": {},
                          "downloads": {},
                          "rating": {},
                          "tags": {},
                          "is_official": {},
                          "verification_level": {},
                          "publisher_verified": {},
                          "min_host_version": {},
                          "capabilities": {},
                          "pricing": {},
                          "channel": {},
                          "created_at": {},
                          "updated_at": {}
                        },
                        "additionalProperties": true,
                        "description": "The catalogue SQL projection verifies these keys. Values are retained as dynamic JSON because the source query returns JsonValue.",
                        "x-schema-status": "verified-keys-dynamic-values",
                        "x-schema-origin": "manual-source-review",
                        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      },
                      "x-schema-status": "verified-keys-dynamic-values",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_plugins",
        "x-source-line": 18,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/latest": {
      "get": {
        "operationId": "marketplace_get_get_latest",
        "tags": [
          "catalog"
        ],
        "summary": "get latest",
        "description": "Handler `get_latest` in the Marketplace service.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "name": {},
                          "version": {},
                          "description": {},
                          "category": {},
                          "icon": {},
                          "author": {},
                          "downloads": {},
                          "rating": {},
                          "tags": {},
                          "is_official": {},
                          "verification_level": {},
                          "publisher_verified": {},
                          "min_host_version": {},
                          "capabilities": {},
                          "pricing": {},
                          "channel": {},
                          "created_at": {},
                          "updated_at": {}
                        },
                        "additionalProperties": true,
                        "description": "The catalogue SQL projection verifies these keys. Values are retained as dynamic JSON because the source query returns JsonValue.",
                        "x-schema-status": "verified-keys-dynamic-values",
                        "x-schema-origin": "manual-source-review",
                        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      },
                      "x-schema-status": "verified-keys-dynamic-values",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_latest",
        "x-source-line": 21,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/popular": {
      "get": {
        "operationId": "marketplace_get_get_popular",
        "tags": [
          "catalog"
        ],
        "summary": "get popular",
        "description": "Handler `get_popular` in the Marketplace service.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "name": {},
                          "version": {},
                          "description": {},
                          "category": {},
                          "icon": {},
                          "author": {},
                          "downloads": {},
                          "rating": {},
                          "tags": {},
                          "is_official": {},
                          "verification_level": {},
                          "publisher_verified": {},
                          "min_host_version": {},
                          "capabilities": {},
                          "pricing": {},
                          "channel": {},
                          "created_at": {},
                          "updated_at": {}
                        },
                        "additionalProperties": true,
                        "description": "The catalogue SQL projection verifies these keys. Values are retained as dynamic JSON because the source query returns JsonValue.",
                        "x-schema-status": "verified-keys-dynamic-values",
                        "x-schema-origin": "manual-source-review",
                        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      },
                      "x-schema-status": "verified-keys-dynamic-values",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_popular",
        "x-source-line": 20,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/recommended": {
      "get": {
        "operationId": "marketplace_get_get_recommended",
        "tags": [
          "catalog"
        ],
        "summary": "get recommended",
        "description": "Handler `get_recommended` in the Marketplace service.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "name": {},
                          "version": {},
                          "description": {},
                          "category": {},
                          "icon": {},
                          "author": {},
                          "downloads": {},
                          "rating": {},
                          "tags": {},
                          "is_official": {},
                          "verification_level": {},
                          "publisher_verified": {},
                          "min_host_version": {},
                          "capabilities": {},
                          "pricing": {},
                          "channel": {},
                          "created_at": {},
                          "updated_at": {}
                        },
                        "additionalProperties": true,
                        "description": "The catalogue SQL projection verifies these keys. Values are retained as dynamic JSON because the source query returns JsonValue.",
                        "x-schema-status": "verified-keys-dynamic-values",
                        "x-schema-origin": "manual-source-review",
                        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      },
                      "x-schema-status": "verified-keys-dynamic-values",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_recommended",
        "x-source-line": 23,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/search": {
      "get": {
        "operationId": "marketplace_get_search_plugins",
        "tags": [
          "catalog"
        ],
        "summary": "search plugins",
        "description": "Handler `search_plugins` in the Marketplace service.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "x-source-byte-limit": 256
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "name": {},
                          "version": {},
                          "description": {},
                          "category": {},
                          "icon": {},
                          "author": {},
                          "downloads": {},
                          "rating": {},
                          "tags": {},
                          "is_official": {},
                          "verification_level": {},
                          "publisher_verified": {},
                          "min_host_version": {},
                          "capabilities": {},
                          "pricing": {},
                          "channel": {},
                          "created_at": {},
                          "updated_at": {}
                        },
                        "additionalProperties": true,
                        "description": "The catalogue SQL projection verifies these keys. Values are retained as dynamic JSON because the source query returns JsonValue.",
                        "x-schema-status": "verified-keys-dynamic-values",
                        "x-schema-origin": "manual-source-review",
                        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      },
                      "x-schema-status": "verified-keys-dynamic-values",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "search_plugins",
        "x-source-line": 19,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/staff-picks": {
      "get": {
        "operationId": "marketplace_get_get_staff_picks",
        "tags": [
          "catalog"
        ],
        "summary": "get staff picks",
        "description": "Handler `get_staff_picks` in the Marketplace service.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {},
                          "name": {},
                          "version": {},
                          "description": {},
                          "category": {},
                          "icon": {},
                          "author": {},
                          "downloads": {},
                          "rating": {},
                          "tags": {},
                          "is_official": {},
                          "verification_level": {},
                          "publisher_verified": {},
                          "min_host_version": {},
                          "capabilities": {},
                          "pricing": {},
                          "channel": {},
                          "created_at": {},
                          "updated_at": {}
                        },
                        "additionalProperties": true,
                        "description": "The catalogue SQL projection verifies these keys. Values are retained as dynamic JSON because the source query returns JsonValue.",
                        "x-schema-status": "verified-keys-dynamic-values",
                        "x-schema-origin": "manual-source-review",
                        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      },
                      "x-schema-status": "verified-keys-dynamic-values",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_staff_picks",
        "x-source-line": 24,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/submissions/abort": {
      "post": {
        "operationId": "marketplace_post_abort_plugin_submission",
        "tags": [
          "publisher"
        ],
        "summary": "abort plugin submission",
        "description": "Handler `abort_plugin_submission` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "abort_plugin_submission",
        "x-source-line": 37,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbortPluginSubmissionRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "AbortPluginSubmissionRequest"
      }
    },
    "/api/marketplace/plugins/submissions/complete": {
      "post": {
        "operationId": "marketplace_post_complete_plugin_submission",
        "tags": [
          "publisher"
        ],
        "summary": "complete plugin submission",
        "description": "Requires the server feature gate MARKETPLACE_PUBLISHING_ENABLED; source default is disabled. Requires an authenticated, verified Marketplace publisher; package identity, signature, digest, and size are checked server-side.",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Created; the handler returns an AppResponse envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "complete_plugin_submission",
        "x-source-line": 33,
        "x-access-level": "required-bearer-publisher",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-publisher",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompletePluginSubmissionRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-feature-gates": [
          {
            "name": "MARKETPLACE_PUBLISHING_ENABLED",
            "default": false
          }
        ],
        "x-request-type": "CompletePluginSubmissionRequest"
      }
    },
    "/api/marketplace/plugins/submissions/upload-ticket": {
      "post": {
        "operationId": "marketplace_post_create_submission_upload_ticket",
        "tags": [
          "publisher"
        ],
        "summary": "create submission upload ticket",
        "description": "Requires the server feature gate MARKETPLACE_PUBLISHING_ENABLED; source default is disabled. Requires an authenticated, verified Marketplace publisher; package identity, signature, digest, and size are checked server-side.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "upload_url": {
                          "type": "string",
                          "format": "uri"
                        },
                        "object_key": {
                          "type": "string"
                        },
                        "expires_in": {
                          "type": "integer"
                        },
                        "content_length": {
                          "type": "integer",
                          "format": "int64"
                        }
                      },
                      "required": [
                        "upload_url",
                        "object_key",
                        "expires_in",
                        "content_length"
                      ],
                      "additionalProperties": false,
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/api/marketplace.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "create_submission_upload_ticket",
        "x-source-line": 29,
        "x-access-level": "required-bearer-publisher",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-publisher",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmissionUploadTicketRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-feature-gates": [
          {
            "name": "MARKETPLACE_PUBLISHING_ENABLED",
            "default": false
          }
        ],
        "x-request-type": "SubmissionUploadTicketRequest"
      }
    },
    "/api/marketplace/plugins/submit": {
      "post": {
        "operationId": "marketplace_post_submit_plugin",
        "tags": [
          "publisher"
        ],
        "summary": "submit plugin",
        "description": "Requires the server feature gate MARKETPLACE_PUBLISHING_ENABLED; source default is disabled. Requires an authenticated, verified Marketplace publisher; package identity, signature, digest, and size are checked server-side.",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Created; the handler returns an AppResponse envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "submit_plugin",
        "x-source-line": 39,
        "x-access-level": "required-bearer-publisher",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer-publisher",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitPluginRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-feature-gates": [
          {
            "name": "MARKETPLACE_PUBLISHING_ENABLED",
            "default": false
          }
        ],
        "x-request-type": "SubmitPluginRequest"
      }
    },
    "/api/marketplace/plugins/trending": {
      "get": {
        "operationId": "marketplace_get_get_trending",
        "tags": [
          "catalog"
        ],
        "summary": "get trending",
        "description": "Handler `get_trending` in the Marketplace service.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                        "x-schema-status": "dynamic-json"
                      },
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_trending",
        "x-source-line": 22,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/{id}": {
      "get": {
        "operationId": "marketplace_get_get_plugin_by_id",
        "tags": [
          "catalog"
        ],
        "summary": "get plugin by id",
        "description": "Handler `get_plugin_by_id` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_plugin_by_id",
        "x-source-line": 55,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/{id}/artifact-url": {
      "get": {
        "operationId": "marketplace_get_get_artifact_url",
        "tags": [
          "account"
        ],
        "summary": "get artifact url",
        "description": "Handler `get_artifact_url` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "object_key",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "format": "uri"
                        },
                        "object_key": {
                          "type": "string"
                        },
                        "version": {
                          "type": "string"
                        },
                        "expires_in": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "url",
                        "object_key",
                        "version",
                        "expires_in"
                      ],
                      "additionalProperties": false,
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/api/marketplace.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_artifact_url",
        "x-source-line": 41,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/plugins/{id}/checkout": {
      "post": {
        "operationId": "marketplace_post_create_marketplace_checkout",
        "tags": [
          "account"
        ],
        "summary": "create marketplace checkout",
        "description": "Accepts an idempotency key in the JSON body; replays are checked against the original operation identity. Availability depends on Marketplace commercial and Stripe provider configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "create_marketplace_checkout",
        "x-source-line": 45,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCheckoutRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "CreateCheckoutRequest",
        "x-idempotency-key": {
          "in": "body",
          "field": "idempotency_key"
        }
      }
    },
    "/api/marketplace/plugins/{id}/download": {
      "post": {
        "operationId": "marketplace_post_download_plugin",
        "tags": [
          "account"
        ],
        "summary": "download plugin",
        "description": "Handler `download_plugin` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "download_plugin",
        "x-source-line": 56,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/plugins/{id}/resolve": {
      "get": {
        "operationId": "marketplace_get_resolve_plugin_release",
        "tags": [
          "catalog"
        ],
        "summary": "resolve plugin release",
        "description": "Handler `resolve_plugin_release` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "host_version",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "stable",
              "enum": [
                "stable",
                "beta"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "resolve_plugin_release",
        "x-source-line": 43,
        "x-access-level": "optional-bearer",
        "x-auth-principal": "none",
        "x-authentication-mode": "optional-bearer",
        "security": [
          {},
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/plugins/{id}/reviews": {
      "get": {
        "operationId": "marketplace_get_get_reviews",
        "tags": [
          "account"
        ],
        "summary": "get reviews",
        "description": "Handler `get_reviews` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "format": "int64"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_reviews",
        "x-source-line": 57,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      },
      "post": {
        "operationId": "marketplace_post_submit_review",
        "tags": [
          "account"
        ],
        "summary": "submit review",
        "description": "Handler `submit_review` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created; the handler returns an AppResponse envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "submit_review",
        "x-source-line": 57,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "ReviewRequest"
      }
    },
    "/api/marketplace/plugins/{id}/versions": {
      "get": {
        "operationId": "marketplace_get_get_versions",
        "tags": [
          "catalog"
        ],
        "summary": "get versions",
        "description": "Handler `get_versions` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_versions",
        "x-source-line": 64,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/plugins/{id}/versions/{version}": {
      "get": {
        "operationId": "marketplace_get_get_plugin_release",
        "tags": [
          "catalog"
        ],
        "summary": "get plugin release",
        "description": "Handler `get_plugin_release` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_plugin_release",
        "x-source-line": 42,
        "x-access-level": "optional-bearer",
        "x-auth-principal": "none",
        "x-authentication-mode": "optional-bearer",
        "security": [
          {},
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/plugins/{id}/view": {
      "post": {
        "operationId": "marketplace_post_record_plugin_view",
        "tags": [
          "catalog"
        ],
        "summary": "record plugin view",
        "description": "Handler `record_plugin_view` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "record_plugin_view",
        "x-source-line": 40,
        "x-access-level": "optional-bearer",
        "x-auth-principal": "none",
        "x-authentication-mode": "optional-bearer",
        "security": [
          {},
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/publisher/me/submissions": {
      "get": {
        "operationId": "marketplace_get_get_my_submissions",
        "tags": [
          "publisher"
        ],
        "summary": "get my submissions",
        "description": "Handler `get_my_submissions` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_my_submissions",
        "x-source-line": 66,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/publisher/register": {
      "post": {
        "operationId": "marketplace_post_register_publisher",
        "tags": [
          "publisher"
        ],
        "summary": "register publisher",
        "description": "Requires the server feature gate MARKETPLACE_PUBLISHING_ENABLED; source default is disabled.",
        "parameters": [],
        "responses": {
          "201": {
            "description": "Created; the handler returns an AppResponse envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "register_publisher",
        "x-source-line": 65,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterPublisherRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-feature-gates": [
          {
            "name": "MARKETPLACE_PUBLISHING_ENABLED",
            "default": false
          }
        ],
        "x-request-type": "RegisterPublisherRequest"
      }
    },
    "/api/marketplace/publisher/{author}": {
      "get": {
        "operationId": "marketplace_get_get_publisher_info",
        "tags": [
          "publisher"
        ],
        "summary": "get publisher info",
        "description": "Handler `get_publisher_info` in the Marketplace service.",
        "parameters": [
          {
            "name": "author",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_publisher_info",
        "x-source-line": 71,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/publisher/{author}/plugins": {
      "get": {
        "operationId": "marketplace_get_get_publisher_plugins",
        "tags": [
          "publisher"
        ],
        "summary": "get publisher plugins",
        "description": "Handler `get_publisher_plugins` in the Marketplace service.",
        "parameters": [
          {
            "name": "author",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_publisher_plugins",
        "x-source-line": 70,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    },
    "/api/marketplace/subscriptions": {
      "get": {
        "operationId": "marketplace_get_get_marketplace_subscriptions",
        "tags": [
          "account"
        ],
        "summary": "get marketplace subscriptions",
        "description": "Handler `get_marketplace_subscriptions` in the Marketplace service.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "subscriptions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                            "x-schema-status": "dynamic-json"
                          }
                        }
                      },
                      "required": [
                        "subscriptions"
                      ],
                      "additionalProperties": false,
                      "x-schema-status": "verified-wrapper-dynamic-items",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/api/marketplace.rs",
                        "AppFlowy-Cloud-main/src/biz/marketplace/subscriptions.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_marketplace_subscriptions",
        "x-source-line": 48,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/subscriptions/{id}/cancel": {
      "post": {
        "operationId": "marketplace_post_cancel_marketplace_subscription",
        "tags": [
          "account"
        ],
        "summary": "cancel marketplace subscription",
        "description": "Accepts an idempotency key in the JSON body; replays are checked against the original operation identity. Availability depends on Marketplace commercial and Stripe provider configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                      "x-schema-status": "dynamic-json"
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "cancel_marketplace_subscription",
        "x-source-line": 49,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "requestBody": {
          "required": true,
          "description": "JSON body deserialized from the handler's serde model.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelMarketplaceSubscriptionRequest"
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "x-request-type": "CancelMarketplaceSubscriptionRequest"
      }
    },
    "/api/marketplace/subscriptions/{id}/receipts": {
      "get": {
        "operationId": "marketplace_get_get_marketplace_subscription_receipts",
        "tags": [
          "account"
        ],
        "summary": "get marketplace subscription receipts",
        "description": "Handler `get_marketplace_subscription_receipts` in the Marketplace service.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "receipts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": true,
                            "description": "The handler returns JsonValue or an application-specific value without a complete typed response model in source.",
                            "x-schema-status": "dynamic-json"
                          }
                        }
                      },
                      "required": [
                        "receipts"
                      ],
                      "additionalProperties": false,
                      "x-schema-status": "verified-wrapper-dynamic-items",
                      "x-schema-origin": "manual-source-review",
                      "x-schema-source-files": [
                        "AppFlowy-Cloud-main/src/api/marketplace.rs",
                        "AppFlowy-Cloud-main/src/biz/marketplace/subscriptions.rs"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ],
                  "additionalProperties": true,
                  "description": "Common AppResponse envelope where used. Some endpoints return raw JSON or HTML instead.",
                  "x-schema-origin": "AppResponse source type",
                  "x-schema-source-file": "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_marketplace_subscription_receipts",
        "x-source-line": 50,
        "x-access-level": "required-bearer",
        "x-auth-principal": "UserUuid",
        "x-authentication-mode": "required-bearer",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/marketplace/trust-metadata": {
      "get": {
        "operationId": "marketplace_get_get_trust_metadata",
        "tags": [
          "catalog"
        ],
        "summary": "get trust metadata",
        "description": "Returns the validated signed trust metadata JSON bytes directly, without an AppResponse envelope.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Validated signed JSON trust metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Validated signed trust metadata JSON returned directly by the handler.",
                  "x-schema-status": "dynamic-json",
                  "x-schema-origin": "handler source",
                  "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
                }
              }
            },
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Errors have mixed Actix/AppResponseError shapes and status codes; the source does not define one uniform error envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "x-schema-status": "mixed-error-json"
                }
              }
            }
          }
        },
        "x-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs",
        "x-source-handler": "get_trust_metadata",
        "x-source-line": 44,
        "x-access-level": "anonymous",
        "x-auth-principal": "none",
        "x-authentication-mode": "anonymous",
        "security": []
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "AbortPluginSubmissionRequest": {
        "type": "object",
        "properties": {
          "object_key": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "object_key"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "ArtifactUrlQuery": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "object_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "version"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "CancelMarketplaceSubscriptionRequest": {
        "type": "object",
        "properties": {
          "cancel_at_period_end": {
            "type": "boolean"
          }
        },
        "additionalProperties": true,
        "required": [
          "cancel_at_period_end"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "CatalogQuery": {
        "type": "object",
        "properties": {
          "q": {
            "anyOf": [
              {
                "type": "string",
                "x-source-byte-limit": 256
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "sort": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "popular",
                  "latest",
                  "rating"
                ],
                "default": "popular"
              },
              {
                "type": "null"
              }
            ]
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          },
          "offset": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "CompletePluginSubmissionRequest": {
        "type": "object",
        "properties": {
          "manifest": {
            "description": "JSON manifest object validated by server-side signature, identity, digest, and runtime rules.",
            "x-schema-status": "dynamic-json",
            "type": "object",
            "additionalProperties": true
          },
          "object_key": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "manifest",
          "object_key"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "ConfigurePriceRequest": {
        "type": "object",
        "properties": {
          "display_name": {
            "type": "string"
          },
          "amount_minor": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "billing_interval": {
            "type": "string"
          },
          "provider_price_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "grant_days": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int32"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "display_name",
          "billing_interval"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/commercial.rs"
      },
      "ConnectAccountLink": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "expires_at": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "required": [
          "url",
          "expires_at"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "ConnectConfig": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "enabled",
          "countries"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "ConnectStatus": {
        "type": "object",
        "properties": {
          "account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "type": "string"
          },
          "ready": {
            "type": "boolean"
          },
          "payouts_enabled": {
            "type": "boolean"
          },
          "details_submitted": {
            "type": "boolean"
          },
          "transfers_capability": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "requirements_due": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "disabled_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "state",
          "ready",
          "payouts_enabled",
          "details_submitted",
          "requirements_due"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "CreateCheckoutRequest": {
        "type": "object",
        "properties": {
          "price_id": {
            "type": "string"
          },
          "idempotency_key": {
            "type": "string"
          },
          "success_url": {
            "type": "string"
          },
          "cancel_url": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "price_id",
          "idempotency_key",
          "success_url",
          "cancel_url"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/commercial.rs"
      },
      "CreatorAccountRequest": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "account_id"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorAdminQuery": {
        "type": "object",
        "properties": {
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorConnectStart": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "country"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorExecuteRequest": {
        "type": "object",
        "properties": {
          "expected_revision": {
            "type": "integer",
            "format": "int64"
          },
          "idempotency_key": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "expected_revision",
          "idempotency_key"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorPayoutReconciliationHistoryQuery": {
        "type": "object",
        "properties": {
          "limit": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64",
                "minimum": 1,
                "maximum": 50
              },
              {
                "type": "null"
              }
            ]
          },
          "before": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorReconcileRequest": {
        "type": "object",
        "properties": {
          "transfer_id": {
            "type": "string"
          },
          "expected_revision": {
            "type": "integer",
            "format": "int64"
          },
          "idempotency_key": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "transfer_id",
          "expected_revision",
          "idempotency_key"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorReviewRequest": {
        "type": "object",
        "properties": {
          "approve": {
            "type": "boolean"
          },
          "expected_revision": {
            "type": "integer",
            "format": "int64"
          },
          "idempotency_key": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "approve",
          "expected_revision",
          "idempotency_key"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorTermsRequest": {
        "type": "object",
        "properties": {
          "creator_share_bps": {
            "type": "integer",
            "format": "int32"
          },
          "hold_days": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": true,
        "required": [
          "creator_share_bps",
          "hold_days"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "CreatorWithdrawalRequest": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "amount_minor": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "idempotency_key": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "currency",
          "amount_minor",
          "idempotency_key"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs"
      },
      "InstalledVersionRequest": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "version"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "PaginationQuery": {
        "type": "object",
        "properties": {
          "limit": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          },
          "offset": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "PayoutReconciliationDetail": {
        "type": "object",
        "properties": {
          "payout_id": {
            "type": "string"
          },
          "account_id": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount_minor": {
            "type": "integer",
            "format": "int64"
          },
          "currency": {
            "type": "string"
          },
          "gross_minor": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          },
          "fee_minor": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          },
          "net_minor": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          },
          "transaction_count": {
            "type": "integer",
            "format": "int32"
          },
          "complete": {
            "type": "boolean"
          },
          "checked_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutReconciliationTransaction"
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "payout_id",
          "account_id",
          "state",
          "amount_minor",
          "currency",
          "transaction_count",
          "complete",
          "transactions"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "PayoutReconciliationFactExport": {
        "type": "object",
        "properties": {
          "schema_version": {
            "type": "integer",
            "format": "int32"
          },
          "fact_id": {
            "type": "string"
          },
          "account_id": {
            "type": "string"
          },
          "payout_id": {
            "type": "string"
          },
          "amount_minor": {
            "type": "integer",
            "format": "int64"
          },
          "currency": {
            "type": "string"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "source_event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "canonical_payload": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "schema_version",
          "fact_id",
          "account_id",
          "payout_id",
          "amount_minor",
          "currency",
          "observed_at",
          "canonical_payload"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "PayoutReconciliationFactSummary": {
        "type": "object",
        "properties": {
          "fact_id": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "complete": {
            "type": "boolean"
          },
          "transaction_count": {
            "type": "integer",
            "format": "int32"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "source_event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "fact_id",
          "state",
          "complete",
          "transaction_count",
          "observed_at"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "PayoutReconciliationHistory": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutReconciliationFactSummary"
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "items"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "PayoutReconciliationTransaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string"
          },
          "amount_minor": {
            "type": "integer",
            "format": "int64"
          },
          "fee_minor": {
            "type": "integer",
            "format": "int64"
          },
          "net_minor": {
            "type": "integer",
            "format": "int64"
          },
          "currency": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "id",
          "type",
          "amount_minor",
          "fee_minor",
          "net_minor",
          "currency"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs"
      },
      "RegisterPublisherRequest": {
        "type": "object",
        "properties": {
          "public_key": {
            "type": "string",
            "x-source-byte-limit": 256,
            "description": "Base64 for exactly 32 Ed25519 public-key bytes."
          },
          "display_name": {
            "type": "string",
            "x-source-byte-min": 1,
            "x-source-byte-limit": 200,
            "description": "Whitespace is trimmed before the non-empty check."
          }
        },
        "additionalProperties": true,
        "required": [
          "public_key",
          "display_name"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "ResolveReleaseQuery": {
        "type": "object",
        "properties": {
          "host_version": {
            "type": "string"
          },
          "channel": {
            "type": "string",
            "default": "stable",
            "enum": [
              "stable",
              "beta"
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "host_version"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "ReviewActionRequest": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "approve",
              "reject"
            ]
          },
          "expected_version": {
            "type": "string",
            "minLength": 1,
            "x-source-byte-limit": 100
          },
          "expected_manifest_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "expected_artifact_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "note": {
            "anyOf": [
              {
                "type": "string",
                "x-source-byte-limit": 500
              },
              {
                "type": "null"
              }
            ],
            "x-serde-aliases": [
              "reason"
            ],
            "description": "Accepted JSON aliases: reason."
          }
        },
        "additionalProperties": true,
        "required": [
          "action",
          "expected_version",
          "expected_manifest_sha256",
          "expected_artifact_sha256"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "ReviewRequest": {
        "type": "object",
        "properties": {
          "rating": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 5
          },
          "comment": {
            "type": "string",
            "x-source-byte-limit": 4096
          }
        },
        "additionalProperties": true,
        "required": [
          "rating",
          "comment"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "RevokePublisherKeyRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "required": [
          "reason"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "SearchQuery": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "x-source-byte-limit": 256
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "q"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "SubmissionUploadTicketRequest": {
        "type": "object",
        "properties": {
          "plugin_id": {
            "type": "string",
            "pattern": "^tradingai\\.[a-z0-9][a-zA-Z0-9._-]*$"
          },
          "content_length": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 16777216
          },
          "content_type": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "application/gzip",
                  "application/x-gzip",
                  "application/octet-stream"
                ],
                "default": "application/gzip"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "plugin_id",
          "content_length"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "SubmitPluginRequest": {
        "type": "object",
        "properties": {
          "manifest": {
            "description": "JSON manifest object validated by server-side signature, identity, digest, and runtime rules.",
            "x-schema-status": "dynamic-json",
            "type": "object",
            "additionalProperties": true
          },
          "package_base64": {
            "type": "string",
            "description": "Base64 encoded non-empty package archive; decoded size is limited to 16 MiB."
          },
          "package_size_bytes": {
            "anyOf": [
              {
                "type": "integer",
                "format": "int64",
                "minimum": 1,
                "maximum": 16777216
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "manifest",
          "package_base64"
        ],
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      },
      "VerifyPublisherRequest": {
        "type": "object",
        "properties": {
          "verified": {
            "type": "boolean",
            "default": true
          }
        },
        "additionalProperties": true,
        "x-schema-origin": "source-defined-struct",
        "x-schema-source-file": "AppFlowy-Cloud-main/src/api/marketplace.rs"
      }
    }
  },
  "x-contract-source": [
    "AppFlowy-Cloud-main/src/api/marketplace.rs",
    "AppFlowy-Cloud-main/src/api/marketplace_settlement.rs",
    "AppFlowy-Cloud-main/src/biz/marketplace/commercial.rs",
    "AppFlowy-Cloud-main/src/biz/marketplace/connect.rs",
    "AppFlowy-Cloud-main/src/biz/marketplace/ops.rs",
    "AppFlowy-Cloud-main/src/biz/marketplace/subscriptions.rs",
    "AppFlowy-Cloud-main/libs/shared-entity/src/response.rs",
    "AppFlowy-Cloud-main/src/config/runtime.rs",
    "AppFlowy-Cloud-main/src/biz/authentication/jwt.rs"
  ],
  "x-contract-source-sha256": "8ca931a43bf9693fe4200864b0e3feaa3c222b6b61aae658b0f42a7f3290abd3",
  "x-contract-route-count": 68,
  "x-contract-schema-coverage": {
    "routes": "extracted from Actix Scope/Resource/Route registrations",
    "requests": "extracted from serde request/query structs, including Option nullability and serde defaults/aliases",
    "responses": "source-derived serializable DTOs are generated; supplemental key sets are marked manual-source-review; JsonValue outputs remain dynamic"
  }
}
