{
  "openapi": "3.1.0",
  "info": {
    "title": "Caraer API Documentation",
    "description": "This documentation provides an overview of the Caraer API, including authentication methods, endpoint details, data models, and integration guidelines for building on the Caraer platform.",
    "version": "2.0"
  },
  "servers": [
    {
      "url": "https://v2.api.caraer.com",
      "description": "Production"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "App Bar Iframe Sessions",
      "description": "Short-lived iframe session tokens for installed app bars"
    },
    {
      "name": "App Bars",
      "description": "Runtime app bar actions for installed apps"
    },
    {
      "name": "App installation runtime",
      "description": "Per-installation state, secrets, jobs, and connections for sync apps"
    },
    {
      "name": "Applications",
      "description": "Apps are third-party integrations and extensions that extend Caraer functionality. They can provide additional features, connect to external services, include Webhooks for event handling, and offer custom UI components through AppBars. Apps enable the platform ecosystem where companies can integrate with their existing tools and workflows. Apps can be public (available to all companies) or private (company-specific), have pricing models, descriptions, and settings schemas. Apps can include Webhooks with rate limiting and secret-based authentication. The App system enables extensibility and integration capabilities, allowing the platform to connect with external systems and provide additional functionality beyond the core platform features."
    },
    {
      "name": "Auth",
      "description": "Auth endpoints handle user authentication and session management. They support login (email/password), registration, password reset (request and reset), email verification (verify and resend), logout, company selection, and user profile retrieval (/me). Authentication uses Bearer tokens and integrates with the multi-tenant company system, allowing users to access multiple companies. The auth system manages user sessions, email verification tokens, password reset tokens, and company access. Auth endpoints temporarily disable scope violation tracking during authentication operations to allow unauthenticated access to login/register endpoints."
    },
    {
      "name": "Automations",
      "description": "Endpoints for Caraer Automations and Latenode integration."
    },
    {
      "name": "Billing",
      "description": "Billing enforcement status and setup email for the selected company."
    },
    {
      "name": "Calendars",
      "description": "Native event calendars owned by users"
    },
    {
      "name": "CMS modules",
      "description": "CMS v2 modules published by an app"
    },
    {
      "name": "CMS v2 environments",
      "description": "Company environments for the CMS builder"
    },
    {
      "name": "CMS v2 pages",
      "description": "Module-based page editing"
    },
    {
      "name": "CMS v2 public",
      "description": "Content for the Astro website runtime"
    },
    {
      "name": "CMS v2 transfer",
      "description": "Attach a caraer-web sidecar, then cut over or roll back"
    },
    {
      "name": "Company",
      "description": "Companies represent multi-tenant organizations in Caraer. Each company has its own isolated database, users, objects, Records, and data. Companies enable SaaS multi-tenancy where each organization's data is completely isolated from others. Companies have settings (branding, configuration), subdomains for custom URLs, and can be customized with their own Objects, Properties, Forms, and Webpages. Users belong to one or more companies and can switch between them. Companies maintain their own access control, scopes, and permissions. The Company system enables the platform to serve multiple organizations while maintaining strict data isolation and allowing each company to customize the platform to their needs."
    },
    {
      "name": "Developer Projects",
      "description": "Developer CLI projects, builds, and deploys for creator-owned apps."
    },
    {
      "name": "Developer Sandboxes",
      "description": "Cloned company databases for safe developer testing."
    },
    {
      "name": "Feeds",
      "description": "Feeds expose Records as XML or JSON for job boards and external integrations."
    },
    {
      "name": "File Management",
      "description": "File endpoints manage file uploads and downloads using S3-compatible storage. Files are used for attachments, images, documents, and media in Records and Webpages. Files support property format constraints (when used with file-type Properties) and access control through scopes. The file system provides pre-signed URLs for secure, time-limited access to files, supports bulk uploads, and can list files associated with specific Records. Files are stored with unique keys and can be deleted when no longer needed. The file system enables rich content management, allowing Records and Webpages to include images, documents, and other media assets."
    },
    {
      "name": "Filter",
      "description": "SavedFilters are reusable filter configurations that users can save and share. They encapsulate complex filter criteria for Records, enabling quick access to filtered data views without re-entering filter conditions. SavedFilters improve UX by allowing users to bookmark common queries (e.g., \"Active Candidates\", \"Open Vacancies\", \"My Applications\") and share them with team members. Filters can be soft-deleted and restored, and they support the same filter capabilities as Views but are stored separately for quick access. SavedFilters enable consistent data access patterns across teams and reduce the time needed to access frequently-used filtered views."
    },
    {
      "name": "Forms",
      "description": "Forms are dynamic data collection interfaces associated with CaraerObjects. They use a grid-based layout system with FormItems (GridItems) arranged in rows and columns that can render various field types based on Property definitions. Forms support multi-step wizards, lead scoring configurations, styling options (standard, underline, plain), and form submissions that create Records. Forms enable public-facing data collection (e.g., job applications, contact forms, candidate registrations) and can be embedded in Webpages. Forms validate input against Property validation rules and can include nested forms (inner forms) for complex data structures. Form submissions trigger FormSubmissionEvents and can create Relations between Records. Forms are essential for converting external user input into structured Records in the platform."
    },
    {
      "name": "Module",
      "description": "API endpoints for managing modules"
    },
    {
      "name": "Notifications",
      "description": "In-app notification inbox for users and installed apps"
    },
    {
      "name": "Objects",
      "description": "CaraerObjects are schema definitions for dynamic domain entities (e.g., \"Candidate\", \"Vacancy\", \"Company\"). They define the structure and behavior of Records through Properties (field definitions), Relations (connections to other objects), Views (display configurations), and Traits (behavioral features like Flow, Table, Webpage, User). Objects enable a flexible, schema-on-read data model where entities can be customized per company without code changes. Each Object has a name (lowercase identifier), label (display name), plural form, description, icon, and can be organized into groups. Objects can have traits that add specific behaviors: Flow enables kanban-style workflows, Table provides tabular data views, Webpage allows Records to have public-facing pages, and User enables authentication and user profiles. Objects are the foundation of the platform's dynamic data modeling system."
    },
    {
      "name": "Partner",
      "description": "Partner endpoints manage partner relationships and integrations. Partners may have special access, integrations, or white-label configurations. Partner endpoints enable reseller functionality, allowing partners to create companies, copy databases, and manage their partner relationships. Partners can have reseller relationships with companies, enabling multi-level partner structures. The partner system supports database copying for white-label deployments and partner-specific company management."
    },
    {
      "name": "Property",
      "description": "Properties define the schema and field definitions for CaraerObjects. A Property specifies the data type (string, number, date, boolean, etc.), format (text, email, select, multi-select, linked, file, etc.), validation rules (required, unique, character limits, etc.), and display options (label, description, icon, groups). Properties determine what data Records can store, how it's validated, how it's displayed in forms and views, and how it can be searched. Each Property belongs to a CaraerObject and defines one field in that object's schema. Properties support various formats including linked properties (relationships to other Records), file uploads, rich text, and custom option lists. Properties are immutable once created to maintain data integrity, and they can be organized into groups for better UX. The Property system enables dynamic, schema-on-read data modeling where object structures can be customized per company without code changes."
    },
    {
      "name": "Records",
      "description": "Records are actual data instances belonging to a CaraerObject. They contain property values that conform to the object's schema defined by Properties. Records support dynamic relationships via Relations, enabling graph-like data modeling where Records can reference and navigate to related Records. Records can be filtered, sorted, paginated, and displayed in various views (table, flow, page, preview). They support extending (association with multiple objects), soft deletion with restore capability, and property parsing for formatted display. Records are the core data entities that users create, update, and manage. Each Record has a UUID, belongs to a primary Object, can have extended objects (making it visible in multiple object contexts), and maintains createdAt/updatedAt timestamps. Records enable the platform's dynamic, content-driven data management."
    },
    {
      "name": "Relations",
      "description": "Relations define typed connections between CaraerObjects, enabling graph-like data modeling. A Relation specifies how Records of one Object can connect to Records of another Object (e.g., \"Candidate applies to Vacancy\", \"Company has Employees\"). Relations create directed or bidirectional relationships between Records, allowing navigation and querying of related data. Relations support cardinality, directionality, and can be used in filtering, sorting, and querying Records. They enable complex data structures where Records reference each other, creating a graph database model on top of the object-oriented schema. Relations are essential for modeling real-world relationships between entities and enable powerful querying capabilities across connected Records."
    },
    {
      "name": "Serverless Functions",
      "description": "Serverless functions are runtime+code units attached to Apps, used in Webhooks and other extensibility points."
    },
    {
      "name": "Sync",
      "description": "Sync configurations define automated data synchronization mappings between CaraerObjects. A Sync specifies how property values from source Records should be mapped to target Records, enabling automated data flow between different object types. Syncs use Mappings that define source and target properties, allowing data to be copied, transformed, or synchronized when source Records are created or updated. Syncs are used for data integration, automation workflows, and keeping related data in sync across the platform. They enable scenarios like automatically creating a Company Record when a User Record is created, or syncing Candidate data to an external system. Syncs support complex mapping rules and can trigger on various Record events."
    },
    {
      "name": "Teams",
      "description": "Teams are user groups within a Company that enable role-based access control and collaboration. Teams can be assigned to Records, enabling team-based workflows and permissions. Teams help organize users and manage access to data and features. Team members inherit team permissions and scopes, allowing administrators to manage access at the team level rather than individually. Teams support member management (add/remove members), permission reset (applying team permissions to members), and can be used in filtering and access control. Teams enable collaborative workflows where groups of users work together on Records, with shared permissions and access patterns."
    },
    {
      "name": "Tracking",
      "description": "WerkenBij visitor tracking ingest"
    },
    {
      "name": "Traits",
      "description": "Traits are behavioral features that can be added to CaraerObjects to extend their functionality without modifying the core schema. Common traits include Flow (kanban-style workflow management), Table (tabular data display with sorting and filtering), Page (enables Records to have public-facing Webpages), and User (enables user authentication and user profile Records). Traits are composable - an Object can have multiple traits enabled simultaneously. Traits extend object functionality by adding specific behaviors, UI components, and capabilities. For example, the Flow trait adds workflow state management, the Table trait adds list view capabilities, and the Page trait enables CMS functionality. Traits enable flexible feature composition where objects can be customized with different capabilities based on business needs."
    },
    {
      "name": "Users",
      "description": "Users represent authenticated individuals in the system. Users belong to one or more Companies and can switch between them. Users can be members of Teams, have roles (SUPER_ADMIN, DEVELOPER, etc.) and scopes that determine their permissions. Users can have associated Records (if the User trait is enabled on an object), enabling user profiles and authentication. Each User has access configurations (HAS_ACCESS_TO) per company that define scopes, filters, and permissions. Users can request additional permissions, reset their permissions to match their team's permissions, and manage their own profile data. The User system enables authentication, authorization, and user management across the multi-tenant platform."
    },
    {
      "name": "Views",
      "description": "Views are saved configurations for displaying Records that define filters, sorting, visible properties (show), grouping, calculations, row heights, and display traits (table, flow). Views enable users to create custom perspectives on data (e.g., \"My Active Candidates\", \"High Priority Vacancies\", \"Recent Applications\"). Each View belongs to a CaraerObject and specifies how Records of that Object should be displayed. Views can be shared with other users, set as default views, and include query strings for search functionality. Views support different traits like Table (tabular display), Flow (kanban-style workflow), and can include calculations for aggregated data. Views improve UX by allowing users to bookmark common queries and share them with team members, ensuring consistent data presentation across the platform."
    },
    {
      "name": "WebMenus",
      "description": "WebMenus define navigation structures for public-facing websites. They specify menu items with labels and URLs, locations (header, footer, sidebar), environments (staging, production), and can include custom URLs or links to Records and Webpages. WebMenus enable dynamic navigation that adapts based on published content, allowing websites to automatically reflect changes in the data model. Menus can be activated/deactivated, organized hierarchically, and support staging and production environments. WebMenus are essential for building dynamic, content-driven navigation in career sites and public-facing applications."
    },
    {
      "name": "Webpages",
      "description": "Webpages are CMS pages associated with Records that enable public-facing content. They support dynamic content layouts using PageContent structures, staging and production environments, scheduled publishing (publish_at/unpublish_at), SEO metadata (title, excerpt, slug, image), custom CSS and JavaScript, and sidebar previews. Webpages are used to create career sites, landing pages, job detail pages, and other public-facing content. They integrate with Forms for data collection and Previews for displaying related Records. Webpages can be published/unpublished, support environment-specific content (staging vs production), and maintain publication timestamps. The Webpage system enables dynamic, data-driven public websites where content is managed through Records and automatically rendered as HTML pages."
    }
  ],
  "paths": {
    "/api/v2/webpages/{uuid}": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get webpage details",
        "description": "Retrieves detailed information for a webpage identified by its UUID. Optionally, the webpage title is 'smartened' if the smartened parameter is true.",
        "operationId": "getWebpage",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "smartened",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webpage retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebpageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Missing read access on one or more webpage fields for this environment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      },
      "put": {
        "tags": [
          "Webpages"
        ],
        "summary": "Update a webpage",
        "description": "Updates an existing webpage identified by its UUID using the provided webpage details. Returns an UpdateResponse containing the updated webpage as a WebpageDTO. Validation: Webpage fields are validated according to the Webpage validation rules. Required fields and format constraints are enforced.",
        "operationId": "updateWebpage",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "requestBody": {
          "description": "Webpage details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebpageDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Webpage updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Missing write access on one or more webpage fields for this environment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/{uuid}/unpublish": {
      "put": {
        "tags": [
          "Webpages"
        ],
        "summary": "Unpublish a webpage",
        "description": "Unpublishes a webpage by its UUID. Optionally, an unpublishAt timestamp (in seconds) may be provided. Returns an UpdateResponse containing the unpublished webpage details.",
        "operationId": "unpublishWebpage",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "unpublishAt",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webpage unpublished successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/{uuid}/publish": {
      "put": {
        "tags": [
          "Webpages"
        ],
        "summary": "Publish a webpage",
        "description": "Publishes a webpage by its UUID. Optionally, a publish_at timestamp (in seconds) may be provided. Returns an UpdateResponse containing the published webpage details.",
        "operationId": "publishWebpage",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publishAt",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webpage published successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Webpage failed publish validation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Missing read or write access on webpage property fields for this environment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}": {
      "get": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Load a page for the builder",
        "operationId": "get",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "draft"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Replace a page draft",
        "operationId": "save",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CmsPageDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/unpublish": {
      "put": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Take one locale offline",
        "operationId": "unpublish",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/publish": {
      "put": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Publish one locale, or all of them",
        "description": "Copies the draft over the published document. Publishing is per locale so a translated page can ship without republishing the others.",
        "operationId": "publish",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "allLocales",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/meta": {
      "put": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Update slug, title, excerpt, SEO and page scripts",
        "operationId": "saveMeta",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/ai/module-fork/sessions/{sessionId}/fields": {
      "put": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Preview field values on the forked module",
        "description": "Writes test values into the playground session without changing the live page.",
        "operationId": "updateModuleForkFields",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/templates/{objectUuid}": {
      "get": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "CMS v2 object template document",
        "operationId": "getTemplate",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDocument"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Replace a CMS v2 object template",
        "operationId": "saveTemplate",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CmsPageDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDocument"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webmenus/{uuid}": {
      "get": {
        "tags": [
          "WebMenus"
        ],
        "summary": "Show web menu",
        "description": "Show web menu",
        "operationId": "getWebMenu",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Web menu shown successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseWebMenuDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "WebMenus"
        ],
        "summary": "Update web menu",
        "description": "Update web menu",
        "operationId": "updateWebMenu",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebMenuDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Web menu updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "WebMenus"
        ],
        "summary": "Delete web menu",
        "description": "Delete web menu",
        "operationId": "deleteWebMenu",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Web menu deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/sync/{uuid}": {
      "get": {
        "tags": [
          "Sync"
        ],
        "summary": "Get a sync",
        "description": "Retrieves a sync by its UUID. Returns a SyncDTO containing the sync details.",
        "operationId": "getSync",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Sync data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SyncDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Sync fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SyncDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid sync data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Sync"
        ],
        "summary": "Update a sync",
        "description": "Updates an existing sync. Returns a UpdateResponse containing the updated sync details.",
        "operationId": "updateSync",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Sync data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SyncDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Sync updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid sync data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Sync"
        ],
        "summary": "Delete a sync",
        "description": "Deletes an existing sync. Returns a DeleteResponse containing the deleted sync details.",
        "operationId": "deleteSync",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Sync data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SyncDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Sync deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid sync data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/{relationUuid}/connection/{from}/{to}": {
      "put": {
        "tags": [
          "Relations"
        ],
        "summary": "Add a connection to a relation",
        "description": "Creates a connection between two objects for a given relation. The 'from' and 'to' UUIDs identify the objects to connect.",
        "operationId": "addConnection",
        "parameters": [
          {
            "name": "relationUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connection created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Relations"
        ],
        "summary": "Delete a connection from a relation",
        "description": "Deletes a connection between two objects for a given relation using the specified UUIDs.",
        "operationId": "deleteConnection",
        "parameters": [
          {
            "name": "relationUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connection deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/updateIndices": {
      "put": {
        "tags": [
          "Relations"
        ],
        "summary": "Update relation indices",
        "description": "Updates the indices for relations. The request body should contain a mapping of relation UUIDs to their new index values. Returns a SuccessResponse containing the updated relation objects.",
        "operationId": "updateIndices",
        "requestBody": {
          "description": "Mapping of relation UUIDs to new index values",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "integer",
                  "format": "int32"
                },
                "example": {
                  "uuid1": 1,
                  "uuid2": 2
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Indices updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseCollectionRelation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input provided",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{uuid}": {
      "get": {
        "tags": [
          "Records"
        ],
        "summary": "Get record details",
        "description": "Retrieves detailed information about a record by its UUID. Returns a ShowResponse containing the record details. Prefer GET /{objectName}/{uuid} when the object context is known.",
        "operationId": "show",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "object",
            "in": "query",
            "description": "Optional object name to resolve the record in a specific object context.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated property names to include (for example: name,status). When omitted, all properties are returned.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Record retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Records"
        ],
        "summary": "Update a record by UUID",
        "description": "Updates a record identified by UUID. Optional object query param resolves the object context (same as GET /{uuid}?object=...). When omitted, the record's current/primary object is used. Prefer PUT /{objectName}/{uuid} when the object context is known.",
        "operationId": "updateByUuid",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "object",
            "in": "query",
            "description": "Optional object name to resolve the record in a specific object context.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          },
          {
            "name": "ignoreErrors",
            "in": "query",
            "description": "If 'true', allows the update to proceed while ignoring certain non-critical validation errors, when supported.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Record updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Records"
        ],
        "summary": "Delete a record",
        "description": "Deletes a record specified by its UUID.",
        "operationId": "delete",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mode",
            "in": "query",
            "description": "Controls how the record is removed. Allowed values: 'archive' (soft delete, keep all data), 'anonymize' (remove data but keep relationships), 'delete' (hard delete). Defaults to 'archive'.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "archive"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Record deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{objectName}/{uuid}": {
      "get": {
        "tags": [
          "Records"
        ],
        "summary": "Get record details by object",
        "description": "Retrieves a record by object name and UUID. Same response as GET /{uuid}?object={objectName}.",
        "operationId": "showByObject",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Record retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Records"
        ],
        "summary": "Update a record",
        "description": "Updates a record's details identified by its UUID. The record data is provided as a RecordDTO. Returns an UpdateResponse with the updated record. Validation: Record properties are validated according to the property rules defined for the object. Each property may have validation rules such as required, type constraints, character limits, uniqueness, etc.",
        "operationId": "update",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          },
          {
            "name": "ignoreErrors",
            "in": "query",
            "description": "If 'true', allows the update to proceed while ignoring certain non-critical validation errors, when supported.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Record data to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Record updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{objectName}/bulk": {
      "put": {
        "tags": [
          "Records"
        ],
        "summary": "Bulk create or update records",
        "description": "Creates or updates multiple records in one request. Returns HTTP 201 when every item succeeds (no per-record errors). Returns HTTP 200 when one or more items fail validation; successful items are still persisted and listed in data.records, with failures in errors.",
        "operationId": "bulkEdit",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ignoreErrors",
            "in": "query",
            "description": "If 'true', allows each save to proceed while ignoring certain non-critical validation errors, when supported.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkEditRecordsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Partial success with per-record validation errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkEditRecordsResponse"
                }
              }
            }
          },
          "201": {
            "description": "All records saved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkEditRecordsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{uuid}": {
      "get": {
        "tags": [
          "Objects"
        ],
        "summary": "Get object by UUID",
        "description": "Fetches a single object by its UUID. Optional parameters determine whether to include views, properties, and relations in the response.",
        "operationId": "getObject",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "views",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "relations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Object fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCaraerObjectDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Objects"
        ],
        "summary": "Update object by UUID",
        "description": "Updates an existing object identified by its UUID with new details. Optional parameters determine if views, properties, and relations should be included in the response. Validation rules: label (required, must be a string, maximum 32 characters), plural (required, must be a string, maximum 32 characters), name (required, must be a string, must be lowercase, must be unique, must match name pattern (lowercase letters, numbers, underscores), cannot be changed after creation), description (optional, maximum 255 characters), groups (required, must be an array of string, no duplicate values allowed).",
        "operationId": "updateObject",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "views",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "relations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          }
        ],
        "requestBody": {
          "description": "Updated details of the object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaraerObjectDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Object updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Objects"
        ],
        "summary": "Delete object by UUID",
        "description": "Deletes a specific object identified by its UUID.",
        "operationId": "deleteObject",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Object deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/views/{viewUuid}": {
      "get": {
        "tags": [
          "Views"
        ],
        "summary": "Get view details",
        "description": "Retrieves detailed information for a view identified by its UUID for the specified object. Returns a ShowResponse containing the ViewDTO.",
        "operationId": "getView",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "viewUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "View retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseViewDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Views"
        ],
        "summary": "Update an existing view",
        "description": "Updates the details of an existing view identified by its UUID for the specified object. The request body must contain the updated view details as a ViewDTO. Returns an UpdateResponse with the updated view data.",
        "operationId": "updateView",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "viewUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated view details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "View updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Views"
        ],
        "summary": "Delete a view",
        "description": "Deletes the view identified by its UUID from the specified object. Returns a DeleteResponse confirming the deletion.",
        "operationId": "deleteView",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "viewUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "View deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/views/{viewUuid}/favorite": {
      "put": {
        "tags": [
          "Views"
        ],
        "summary": "Toggle view favorite status",
        "description": "Toggles the favorite status of the specified view. Returns an UpdateResponse containing the updated view details.",
        "operationId": "favoriteView",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "viewUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "View favorite status updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/views/updateIndices": {
      "put": {
        "tags": [
          "Views"
        ],
        "summary": "Update view indices",
        "description": "Updates the indices for views associated with the specified object. The request body must include a mapping of view UUIDs to their new index values. Returns a SuccessResponse with the updated view DTOs.",
        "operationId": "updateIndices_1",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Mapping of view UUIDs to new index values",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "integer",
                  "format": "int32"
                },
                "example": {
                  "uuid1": 1,
                  "uuid2": 2
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "View indices updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input provided",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/{propertyUuid}": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Fetch a specific property",
        "description": "Retrieves details of a property by its UUID and associates it with its parent object. Returns a ShowResponse containing a PropertyDTO object with complete property details.",
        "operationId": "getProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Property retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponsePropertyDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Property"
        ],
        "summary": "Update an existing property",
        "description": "Updates the details of an existing property for a specific object. The property details are provided via SavePropertyDTO, and the property is identified by its UUID. Returns an UpdateResponse containing the updated property as a PropertyDTO. Validation rules: name (required, must be unique, must be lowercase, must match name pattern (lowercase letters, numbers, underscores), cannot be changed after creation), label (required), description (maximum 255 characters), type (required, must be one of valid PropertyTypes, cannot be changed after creation), format (required, must be one of valid PropertyFormats, cannot be changed after creation), rules (required, must be an array of string).",
        "operationId": "updateProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated property details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePropertyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Property updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Property"
        ],
        "summary": "Delete a property",
        "description": "Deletes a property from the specified object, identified by the property UUID. Returns a DeleteResponse containing the deleted property's details.",
        "operationId": "deleteProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Property deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/{propertyUuid}/pin": {
      "put": {
        "tags": [
          "Property"
        ],
        "summary": "Pin a property",
        "description": "Pins the specified property for the logged-in user. Pinned properties appear at the top of record create and update forms.",
        "operationId": "pinProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Property pinned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Property"
        ],
        "summary": "Unpin a property",
        "description": "Removes the pin for the specified property for the logged-in user.",
        "operationId": "unpinProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Property unpinned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/updateIndices": {
      "put": {
        "tags": [
          "Property"
        ],
        "summary": "Update property indices",
        "description": "Updates the indices for properties of a specific object. The request body should contain a mapping between property UUIDs and their new index values. Returns a SuccessResponse containing a list of updated PropertyDTO objects.",
        "operationId": "updateIndices_2",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Mapping of property UUIDs to new index values",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "integer",
                  "format": "int32"
                },
                "example": {
                  "uuid1": 1,
                  "uuid2": 2
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Indices updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListPropertyDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input provided",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/lifecycle-properties": {
      "put": {
        "tags": [
          "Objects"
        ],
        "summary": "Configure lifecycle property tracking",
        "description": "Sets which properties on this object should generate lifecycle history records when their values change.",
        "operationId": "updateLifecycleProperties",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLifecyclePropertiesDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Lifecycle properties updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/updateIndices": {
      "put": {
        "tags": [
          "Objects"
        ],
        "summary": "Update object indices",
        "description": "Updates indices of objects based on the provided mapping. The request body should contain a mapping of object UUIDs to index values. Optional request parameters determine if views, properties, and relations should be included in the response.",
        "operationId": "updateIndices_3",
        "parameters": [
          {
            "name": "views",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "relations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          }
        ],
        "requestBody": {
          "description": "Mapping of object indices",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "integer",
                  "format": "int32"
                },
                "example": {
                  "uuid1": 1,
                  "uuid2": 2
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Indices updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListCaraerObjectDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/modules/{moduleId}": {
      "get": {
        "tags": [
          "Module"
        ],
        "summary": "Fetch a specific module",
        "description": "Retrieves details of a module by its UUID.",
        "operationId": "getModule",
        "parameters": [
          {
            "name": "moduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Module retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponsePageContentDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Module"
        ],
        "summary": "Update an existing module",
        "description": "Updates the details of an existing module.",
        "operationId": "updateModule",
        "parameters": [
          {
            "name": "moduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated module details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageContentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Module updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Module"
        ],
        "summary": "Delete a module",
        "description": "Deletes a module by its UUID.",
        "operationId": "deleteModule",
        "parameters": [
          {
            "name": "moduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Module deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/modules/personal/{moduleId}": {
      "get": {
        "tags": [
          "Module"
        ],
        "summary": "Fetch a personal module",
        "description": "Retrieves a personal module by UUID for the logged-in user.",
        "operationId": "getPersonalModule",
        "parameters": [
          {
            "name": "moduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Module retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponsePageContentDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Module"
        ],
        "summary": "Update a personal module",
        "description": "Updates a personal module for the logged-in user.",
        "operationId": "updatePersonalModule",
        "parameters": [
          {
            "name": "moduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageContentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Module updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Module"
        ],
        "summary": "Delete a personal module",
        "description": "Deletes a personal module for the logged-in user.",
        "operationId": "deletePersonalModule",
        "parameters": [
          {
            "name": "moduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Module deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/{formUuid}": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get form by UUID",
        "description": "Retrieves a specific form by its UUID. Returns the details of the form in a FormDTO object wrapped in a ShowResponse.",
        "operationId": "getForm",
        "parameters": [
          {
            "name": "formUuid",
            "in": "path",
            "description": "UUID of the form to retrieve",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the form",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseFormDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Form not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Forms"
        ],
        "summary": "Update an existing form",
        "description": "Updates an existing form identified by its UUID with the provided data. The request body should include the updated fields in a FormDTO. Returns the updated form wrapped in an UpdateResponse. Validation: Form fields are validated according to the Form validation rules. Required fields and format constraints are enforced.",
        "operationId": "updateForm",
        "parameters": [
          {
            "name": "formUuid",
            "in": "path",
            "description": "UUID of the form to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Form successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Form not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Forms"
        ],
        "summary": "Delete a form",
        "description": "Deletes a form identified by its UUID. On success, returns the deleted form's data wrapped in a DeleteResponse.",
        "operationId": "deleteForm",
        "parameters": [
          {
            "name": "formUuid",
            "in": "path",
            "description": "UUID of the form to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Form successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/filters/{filterUuid}": {
      "get": {
        "tags": [
          "Filter"
        ],
        "summary": "Fetch a specific saved filter",
        "description": "Retrieves details of a saved filter by its UUID.",
        "operationId": "getFilter",
        "parameters": [
          {
            "name": "filterUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Filter retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseSavedFilterDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Filter not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Filter"
        ],
        "summary": "Update an existing saved filter",
        "description": "Updates an existing saved filter identified by its UUID.",
        "operationId": "updateFilter",
        "parameters": [
          {
            "name": "filterUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated saved filter details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavedFilterDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Filter updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Filter not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Filter"
        ],
        "summary": "Delete a saved filter",
        "description": "Soft deletes a saved filter identified by its UUID.",
        "operationId": "deleteFilter",
        "parameters": [
          {
            "name": "filterUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Filter deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Filter not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/{uuid}": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "Get company by UUID",
        "description": "Returns a company by its UUID. Requires TOOLS_COMPANY_SETTINGS_READ scope.",
        "operationId": "getCompanyByUuid",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Company returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCompanyDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Company not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Company"
        ],
        "summary": "Update company",
        "description": "Updates a company by UUID. Request body should contain the company fields to update.",
        "operationId": "updateCompany",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Company updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Company not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/website-settings": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "Get website settings",
        "description": "Returns the website settings for the company currently selected by the logged-in user.",
        "operationId": "getWebsiteSettings",
        "responses": {
          "200": {
            "description": "Website settings returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseWebsiteSettingsDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Company"
        ],
        "summary": "Update website settings",
        "description": "Updates the website settings for the company currently selected by the logged-in user.",
        "operationId": "updateWebsiteSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteSettingsDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Website settings updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Website settings not found for company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/suite-dashboards/{suiteName}": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "Get suite dashboard",
        "description": "Returns the home analytics dashboard for a suite. Empty dashboard when none is saved.",
        "operationId": "getSuiteDashboard",
        "parameters": [
          {
            "name": "suiteName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Suite dashboard returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAnalyticsDashboardConfig"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Company"
        ],
        "summary": "Update suite dashboard",
        "description": "Creates or replaces the home analytics dashboard for a suite.",
        "operationId": "updateSuiteDashboard",
        "parameters": [
          {
            "name": "suiteName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsDashboardConfig"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Suite dashboard saved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid dashboard config",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/digital-identity": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "Get digital identity",
        "description": "Returns the digital identity (branding) for the company currently selected by the logged-in user.",
        "operationId": "getDigitalIdentity",
        "responses": {
          "200": {
            "description": "Digital identity returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseDigitalIdentityDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Company"
        ],
        "summary": "Update digital identity",
        "description": "Updates the digital identity (branding) for the company currently selected by the logged-in user.",
        "operationId": "updateDigitalIdentity",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DigitalIdentityDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Digital identity updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Digital identity not found for company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/cms/environments/{key}": {
      "put": {
        "tags": [
          "CMS v2 environments"
        ],
        "summary": "Update routing, auth or htmlLang. Keys are immutable.",
        "operationId": "update_1",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CmsEnvironmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsEnvironmentDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "CMS v2 environments"
        ],
        "summary": "Delete an environment except main",
        "operationId": "delete_1",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/{webhookUuid}": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Get a webhook for an app",
        "description": "Fetches a single webhook that belongs to the specified app.",
        "operationId": "getAppWebhook",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app that owns the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhookUuid",
            "in": "path",
            "description": "UUID of the webhook to fetch",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseSubscribeWebhookDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webhook not found for the specified app or company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Applications"
        ],
        "summary": "Update a webhook for an app",
        "description": "Updates an existing webhook that belongs to the specified app and the authenticated user's selected company.",
        "operationId": "updateAppWebhookForApp",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app that owns the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhookUuid",
            "in": "path",
            "description": "UUID of the webhook to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeWebhookDTO"
              },
              "encoding": {
                "subscribeWebhookDTO": {
                  "contentType": "*/*"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Webhook updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input provided or app not installed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webhook not found for the specified app or company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Applications"
        ],
        "summary": "Delete a webhook for an app",
        "description": "Deletes a webhook that belongs to the specified app and the authenticated user's selected company.",
        "operationId": "deleteAppWebhook",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app that owns the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhookUuid",
            "in": "path",
            "description": "UUID of the webhook to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webhook not found for the specified app or company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/serverless-functions/{uuid}": {
      "get": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "Get a serverless function",
        "description": "Retrieves a serverless function by its UUID, ensuring it belongs to the specified app.",
        "operationId": "show_1",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the serverless function",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved serverless function",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseServerlessFunctionDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Serverless function not found for this app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "Update a serverless function",
        "description": "Updates an existing serverless function's runtime and code, keeping it attached to the same app.",
        "operationId": "update_2",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the serverless function to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated serverless function payload (runtime and code)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerlessFunctionDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated serverless function",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseServerlessFunctionDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Serverless function not found for this app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "Delete a serverless function",
        "description": "Tears down the GCP Cloud Function (if provisioned) and deletes the serverless function entity.",
        "operationId": "delete_2",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the serverless function to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted serverless function",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Serverless function not found for this app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/state": {
      "get": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Get installation state map",
        "operationId": "getState",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "State map",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Replace/merge installation state (shallow merge)",
        "operationId": "putState",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/state/{key}": {
      "get": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Get a single state key",
        "operationId": "getStateKey",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Put a single state key",
        "operationId": "putStateKey",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Delete a state key",
        "operationId": "deleteStateKey",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/settings": {
      "put": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Merge COMPANY-scoped installation settings from the app runtime",
        "operationId": "mergeCompanySettings",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AppSettingFieldSchema"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Merged settings map",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/settings/user": {
      "put": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Save USER-scoped installation settings for the current user",
        "operationId": "saveUserSettings",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AppSettingFieldSchema"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseVoid"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/secrets/{name}": {
      "put": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Set an encrypted secret",
        "operationId": "putSecret",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseVoid"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Delete an encrypted secret",
        "operationId": "deleteSecret",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponseVoid"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/cms-modules": {
      "get": {
        "tags": [
          "CMS modules"
        ],
        "summary": "List an app's CMS modules",
        "description": "Includes retired modules, so a developer can see what a push removed.",
        "operationId": "list",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListCmsModuleDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "CMS modules"
        ],
        "summary": "Replace an app's CMS module catalog",
        "description": "Registers the modules shipped by a published package version. Modules missing from the payload are retired rather than deleted, because pages may still reference them.",
        "operationId": "upsert",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListCmsModuleDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/public/{uuid}": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Get a public app (creator view)",
        "description": "Gets the full app for the creator, including appPublish, appBars, details, and pricing. Returns AppCreatorDTO with everything under App.",
        "operationId": "getPublicApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the public app to retrieve",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the public app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Public app not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Applications"
        ],
        "summary": "Update a public app (creator edit)",
        "description": "Updates a public app with the full creator payload (label, description, details, pricing, settingsSchema, appBars). Send the entire AppCreatorDTO as returned by GET. Returns the updated app as AppCreatorDTO.",
        "operationId": "updatePublicApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the public app to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated the public app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "You are not allowed to update this app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Public app not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/private/{uuid}": {
      "delete": {
        "tags": [
          "Applications"
        ],
        "summary": "Delete a private app",
        "description": "Deletes a private app owned by the current company. An active installation is uninstalled first. The app then disappears from the company.",
        "operationId": "deletePrivateApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the private app to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Private app deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "The app is not private",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Only the creator company can delete the app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Application not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/{uuid}/uploadFile": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Upload a file for a webpage",
        "description": "Uploads a file to S3 storage under the specified webpage's attachments folder, sets the file's ACL to public, and returns the public URL for the file in a SuccessResponse.",
        "operationId": "uploadFile",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "File to upload",
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "File uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid file provided",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webpages/{uuid}/protection/signed-url": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Generate signed URL for protected webpage",
        "operationId": "createSignedUrl",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSignedUrlRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponseSignedUrlResultDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/{uuid}/editing-session": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Claim a webpage editing session",
        "description": "Registers the current user as editing this webpage so other users are blocked from opening the builder.",
        "operationId": "claimWebpageEditingSession",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Editing session claimed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebpageEditingStatusDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Missing write access on webpage fields for this environment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      },
      "delete": {
        "tags": [
          "Webpages"
        ],
        "summary": "Release a webpage editing session",
        "description": "Releases the editing session held by the current user for this webpage.",
        "operationId": "releaseWebpageEditingSession",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Editing session released",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/{uuid}/copy/{fromEnvironment}/{toEnvironment}": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Copy a webpage from one environment to another",
        "description": "Copies a webpage by its UUID from one environment to another. Returns a CreateResponse containing the copied webpage as a WebpageDTO.",
        "operationId": "copyWebpage",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromEnvironment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toEnvironment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Webpage copied successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/records": {
      "post": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Public records visible in an environment",
        "operationId": "records",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/page/{uuid}/unlock": {
      "post": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Unlock a password-protected CMS v2 page",
        "operationId": "unlock",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/patch": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Apply patches to a page draft",
        "description": "Rejected with 409 when expectedRevision does not match, so a stale client cannot overwrite another editor's work.",
        "operationId": "patch",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CmsPagePatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/history/{index}/restore": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Restore a draft snapshot",
        "operationId": "restoreHistory",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/environments/{key}/translate": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Create a translated sibling page for an environment",
        "operationId": "createTranslation",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/environments/{key}/host": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Host this page on another environment",
        "operationId": "hostOnEnvironment",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/ai/rewrite": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Rewrite a page or a module from a prompt",
        "description": "Returns patches the editor applies through the same revision channel as a manual edit, so the change is undoable. Page scope may add, remove and reorder modules. A module's code lives in a shared npm package, so the AI rewrites field values and composition, never the component itself.",
        "operationId": "aiRewrite",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/ai/module-fork/sessions": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Start a Modify-this-module playground session",
        "description": "CMS v2 companies and pages only. Copies the installed module's published source into a playground session. Live code edits stay off the company site until save publishes a platform v2 private-app package and a rebuild compiles it.",
        "operationId": "startModuleFork",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/ai/module-fork/sessions/{sessionId}/save": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Publish the forked module into a private app",
        "description": "Merges the new module into the whole npm package so sibling modules are not retired, then swaps this placement with set_module.",
        "operationId": "saveModuleFork",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/ai/module-fork/sessions/{sessionId}/prompt": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Rewrite forked module source from a prompt",
        "operationId": "promptModuleFork",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/not-found": {
      "post": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Create or reuse the custom 404 page",
        "description": "Finds the page at /404 on the root Webpage object, or creates an empty draft there, and stores it as the company custom 404 page.",
        "operationId": "ensureNotFound",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/uploadFile": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Upload a file",
        "description": "Uploads a file to S3 storage and returns the public URL for the file in a SuccessResponse.",
        "operationId": "uploadFile_1",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "File uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid file provided",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webpages/template/{objectName}/{environment}": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get template webpage",
        "description": "Retrieves the template webpage for the given object name by querying the TemplateWebpage associated with it. Returns a ShowResponse containing TemplateWebpageDTO data.",
        "operationId": "getTemplateWebpage",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Template webpage retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseTemplateWebpageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Template webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      },
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Create or update template webpage",
        "description": "Creates a new or updates an existing template webpage for the specified object. An event is published after the template is changed. Returns an UpdateResponse or CreateResponse with the template webpage details.",
        "operationId": "createOrUpdateTemplateWebpage",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Template webpage details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplateWebpageDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Template webpage updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "201": {
            "description": "Template webpage created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Template webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webpages/template/{objectName}/{environment}/editing-session": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Claim a template webpage editing session",
        "description": "Registers the current user as editing the template webpage so other users are blocked from opening the builder.",
        "operationId": "claimTemplateWebpageEditingSession",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Editing session claimed or blocked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebpageEditingStatusDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Template webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      },
      "delete": {
        "tags": [
          "Webpages"
        ],
        "summary": "Release a template webpage editing session",
        "description": "Releases the editing session held by the current user for this template webpage.",
        "operationId": "releaseTemplateWebpageEditingSession",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Editing session released",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/template/{objectName}/copy/{fromEnvironment}/{toEnvironment}": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Copy a template webpage from one environment to another",
        "description": "Copies a template webpage by object name from one environment to another. Returns a CreateResponse containing the copied template webpage as a TemplateWebpageDTO.",
        "operationId": "copyTemplateWebpage",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromEnvironment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toEnvironment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Template webpage copied successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Template webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/publishFile": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Public URL for a library file",
        "description": "Makes an existing company file public and returns its stable public URL. The file is not copied and is not tied to a webpage.",
        "operationId": "publishFile",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/uuid/{uuid}/unlock": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Unlock password-protected webpage",
        "description": "Validates password and returns a short-lived access token.",
        "operationId": "unlockPublicWebpage",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebpageUnlockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/previews/{pageUuid}/{componentUuid}/{layout}": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get previews for a public webpage",
        "description": "Retrieves a list of previews for a public webpage identified by its UUID. Returns a PaginationResponse containing PreviewDTO objects.",
        "operationId": "getPublicPreviews",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "componentUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "layout",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {}
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePreviewDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/maps/{pageUuid}/{componentUuid}": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get filtered map markers for a public webpage",
        "description": "Resolves map markers for a public map component. Object-bound sources are filtered in Cypher before the 500-marker cap.",
        "operationId": "getPublicMapLocations",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "componentUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordPaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseWebpageMapLocationsDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/maps/{pageUuid}/{componentUuid}/marker-preview": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get a hydrated preview for one public map marker",
        "description": "Hydrates the hover preview selected on a bound map location for a published record.",
        "operationId": "getPublicMapMarkerPreview",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "componentUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MapMarkerPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponsePreviewDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/environments": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get all environments",
        "description": "Retrieves a list of all environments.",
        "operationId": "getEnvironments",
        "responses": {
          "200": {
            "description": "Environments retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListEnvironmentDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Create an environment",
        "description": "Creates an environment.",
        "operationId": "createEnvironments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrUpdateEnvironmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Environments created or updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webpages/environments/properties": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Copy properties to environments",
        "description": "Copies selected properties for the chosen environments (e.g. production_title → german_production_title).",
        "operationId": "copyPropertyToEnvironments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CopyPropertyToEnvironmentsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Environment properties copied successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListPropertyDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object or property not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/": {
      "post": {
        "tags": [
          "Webpages"
        ],
        "summary": "Create a new webpage",
        "description": "Creates a new webpage using the provided webpage details. Returns a CreateResponse containing the newly created webpage as a WebpageDTO. Validation: Webpage fields are validated according to the Webpage validation rules. Required fields and format constraints are enforced.",
        "operationId": "createWebpage",
        "parameters": [
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "requestBody": {
          "description": "Webpage details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebpageDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Webpage created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webmenus": {
      "post": {
        "tags": [
          "WebMenus"
        ],
        "summary": "Create web menu",
        "description": "Create web menu",
        "operationId": "createWebMenu",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebMenuDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Web menu created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webmenus/{uuid}/restore": {
      "post": {
        "tags": [
          "WebMenus"
        ],
        "summary": "Restore deleted web menu",
        "description": "Restore a deleted web menu by its UUID",
        "operationId": "restoreWebMenu",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Web menu restored successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webmenus/index": {
      "post": {
        "tags": [
          "WebMenus"
        ],
        "summary": "Index web menus",
        "description": "Index web menus",
        "operationId": "indexWebMenus",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Web menus indexed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseWebMenuDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/traits/{objectUuid}/{traitName}": {
      "get": {
        "tags": [
          "Traits"
        ],
        "summary": "Fetch a specific trait for an object",
        "description": "Retrieves details of a specific trait associated with the specified object, identified by the trait name. Returns a ShowResponse containing the TraitDTO. If the trait is not found, a NotFoundError is thrown.",
        "operationId": "getTrait",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "traitName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Trait retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseTraitDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      },
      "post": {
        "tags": [
          "Traits"
        ],
        "summary": "Create or update a trait for an object",
        "description": "Creates a new trait or updates an existing trait for the specified object. The trait name is provided in the URL, and trait details are supplied in the request body as a JSON map. If a trait with the specified name exists, it will be updated; otherwise, a new trait is created. Returns a CreateResponse containing the TraitDTO of the created or updated trait.",
        "operationId": "createTrait",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "traitName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Trait details as a JSON map",
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Trait created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      },
      "delete": {
        "tags": [
          "Traits"
        ],
        "summary": "Delete a trait from an object",
        "description": "Removes a trait identified by its name from the specified object. Returns a DeleteResponse confirming that the trait has been removed.",
        "operationId": "deleteTrait",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "traitName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Trait removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/traits/event/{companyUuid}/{eventUuid}/rsvp/{attendeeUuid}": {
      "get": {
        "tags": [
          "Traits"
        ],
        "summary": "Respond to an event invitation (email link)",
        "description": "Public browser RSVP. Without partstat shows a choice page; with partstat applies after login when the attendee has a user trait. Non-user-trait attendees need no login.",
        "operationId": "rsvpBrowserGet",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attendeeUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "partstat",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "switchAccount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "HTML choice, login, success, or error page"
          },
          "400": {
            "description": "Invalid partstat or scope",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      },
      "post": {
        "tags": [
          "Traits"
        ],
        "summary": "Update event RSVP (JSON)",
        "description": "Patches partstat on the attendees edge. No tools @AccessControl — auth is bearer/session + self-only / partner login rules.",
        "operationId": "rsvpJson",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attendeeUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "RSVP payload",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventRsvpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "RSVP updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid partstat or scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Login required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Not the invited attendee",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Event, attendee, or invitation not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/traits/event/{companyUuid}/{eventUuid}/rsvp/{attendeeUuid}/login": {
      "post": {
        "tags": [
          "Traits"
        ],
        "summary": "Email/password login for RSVP",
        "operationId": "rsvpBrowserLogin",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attendeeUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  },
                  "partstat": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string"
                  }
                },
                "required": [
                  "email",
                  "password"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/sync/{uuid}/restore": {
      "post": {
        "tags": [
          "Sync"
        ],
        "summary": "Restore a deleted sync",
        "description": "Restores a previously deleted sync by its UUID. Returns a RestoreResponse containing the restored sync details.",
        "operationId": "restoreSync",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sync restored successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/sync/index": {
      "post": {
        "tags": [
          "Sync"
        ],
        "summary": "Fetch paginated syncs",
        "description": "Retrieves a paginated list of syncs. Returns a PaginationResponse containing SyncDTO objects based on the provided pagination criteria.",
        "operationId": "getSyncs",
        "requestBody": {
          "description": "Pagination request for syncs",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Syncs fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseSyncDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/sync/": {
      "post": {
        "tags": [
          "Sync"
        ],
        "summary": "Create a sync",
        "description": "Creates a new sync. Returns a CreateResponse containing the created sync details.",
        "operationId": "createSync",
        "requestBody": {
          "description": "Sync data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SyncDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Sync created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid sync data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/{relationUuid}/restore": {
      "post": {
        "tags": [
          "Relations"
        ],
        "summary": "Restore a deleted relation",
        "description": "Restores a previously deleted relation by its UUID. Returns a RestoreResponse with the restored relation details.",
        "operationId": "restoreRelation",
        "parameters": [
          {
            "name": "relationUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation restored successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/{objectUuid}": {
      "post": {
        "tags": [
          "Relations"
        ],
        "summary": "Create or update a relation",
        "description": "Creates a new relation or updates an existing one for the specified object. If a relation with the same name exists, it is updated; otherwise, a new relation is created. Returns an UpdateResponse if updated or a CreateResponse if created.",
        "operationId": "createRelationOrUpdate",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Relation data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relation updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "201": {
            "description": "Relation created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/index": {
      "post": {
        "tags": [
          "Relations"
        ],
        "summary": "Fetch paginated relations",
        "description": "Retrieves a paginated list of relations. Returns a PaginationResponse containing RelationDTO objects based on the provided pagination criteria.",
        "operationId": "getRelations",
        "requestBody": {
          "description": "Pagination request for relations",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relations fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseRelationDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/index/{objectUuid}": {
      "post": {
        "tags": [
          "Relations"
        ],
        "summary": "Fetch relations for a specific object",
        "description": "Returns relation definitions where this object participates in the **schema** graph for that relation name: either as origin `(thisObject)-[:relationName]->(:Object)` or as target `(:Object)-[:relationName]->(thisObject)`. Unrelated relations (same name elsewhere, or no typed edge touching this object) are excluded. Uses the object’s `name` to filter; request path uses object UUID.",
        "operationId": "getRelationsByObject",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request for relations",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relations fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseRelationDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/index/{fromObjectUuid}/{toObjectUuid}": {
      "post": {
        "tags": [
          "Relations"
        ],
        "summary": "Get all relations between two objects",
        "description": "Retrieves all relations between two objects based on the provided object UUIDs.",
        "operationId": "getRelationsBetweenObjects",
        "parameters": [
          {
            "name": "fromObjectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toObjectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relations retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseRelationDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "One or more objects not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{uuid}/restore": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Restore a deleted record",
        "description": "Restores a soft-deleted record identified by its UUID. Returns a SuccessResponse confirming that the record has been restored.",
        "operationId": "restore",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Record restored successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{uuid}/extend": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Extend a record",
        "description": "Extends a record identified by its UUID to one or more objects. You can use this to move a record or add it to another object so it'll be visible in the new object.Returns a SuccessResponse confirming that the record has been extended.",
        "operationId": "extend",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExtendRecordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Record extended successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{objectName}": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Create a new record",
        "description": "Creates a new record for the specified object using the provided RecordDTO data. Returns a CreateResponse with the newly created record. Validation: Record properties are validated according to the property rules defined for the object. Each property may have validation rules such as required, type constraints, character limits, uniqueness, etc.",
        "operationId": "create",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          },
          {
            "name": "ignoreErrors",
            "in": "query",
            "description": "If 'true', allows the creation to proceed while ignoring certain non-critical validation errors, when supported.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Record data to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Record created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{objectName}/createOrUpdate": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Create or update a record",
        "description": "Creates a new record or updates an existing one. Match order: body/path uuid already in the graph, then unique property values. If a matching record exists, it is updated; otherwise, a new record is created. Returns a CreateResponse or UpdateResponse with the record details. Validation: Record properties are validated according to the property rules defined for the object. Each property may have validation rules such as required, type constraints, character limits, uniqueness, etc.",
        "operationId": "createOrUpdate",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          },
          {
            "name": "ignoreErrors",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Record data to create or update. Top-level uuid updates that record when it already exists.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Record updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "201": {
            "description": "Record created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{objectName}/bulk-delete": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Bulk delete records",
        "description": "Archives, anonymizes, or permanently deletes multiple records in one request. Returns HTTP 200 when every item succeeds. Returns HTTP 200 with per-record errors when one or more items fail; successful items are still applied and listed in data.uuids.",
        "operationId": "bulkDelete",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDeleteRecordsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Bulk delete completed (possibly with per-record errors)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkDeleteRecordsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/search": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Search records",
        "description": "Performs a search for records based on the specified criteria in the request body. Returns a PaginationResponse containing matching records.",
        "operationId": "search",
        "parameters": [
          {
            "name": "archived",
            "in": "query",
            "description": "When set to 'true', includes soft-deleted records in the search results.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the records to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Search criteria",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Search completed successfully. data items are preview objects when preview is set, otherwise record payloads shaped by recordReturnFormat.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseObject"
                }
              }
            }
          },
          "400": {
            "description": "Invalid search parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/search/cross-object": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Search records across objects",
        "description": "Searches records across multiple object types in one request. Use fromObjectUuid + relationName to limit to relation target objects (e.g. event attendees), or objectUuids for an explicit list, or omit both to search all company objects (capped). Returns preview-shaped results suitable for relation pickers.",
        "operationId": "searchCrossObject",
        "parameters": [
          {
            "name": "archived",
            "in": "query",
            "description": "When true, includes archived records.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Parse property values for display.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CrossObjectRecordSearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Search completed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePreviewDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid search parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/relations/{fromUuid}/{relationName}/{toUuid}": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Create a relation between records",
        "description": "Creates a relation between two records identified by their UUIDs using the provided relation name.",
        "operationId": "createRelation",
        "parameters": [
          {
            "name": "fromUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relationName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "primary",
            "in": "query",
            "description": "When 'true', marks the created relation as primary. Defaults to 'false'.",
            "required": false,
            "schema": {
              "type": "object"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationEdgeRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Relation created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "One or more entities not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Records"
        ],
        "summary": "Delete a relation between records",
        "description": "Deletes a relation between two records identified by their UUIDs and the relation name.",
        "operationId": "deleteRelation",
        "parameters": [
          {
            "name": "fromUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relationName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "One or more entities not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Records"
        ],
        "summary": "Update relation edge properties",
        "description": "Patches values stored on an existing relation edge. Only keys present in edgeProperties are written; a null value clears a key.",
        "operationId": "updateRelationEdge",
        "parameters": [
          {
            "name": "fromUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relationName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationEdgeRequestDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relation updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "400": {
            "description": "Unknown or invalid edge property",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "One or more entities not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/query": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Advanced graph-aware record query",
        "description": "Executes a two-pass GraphRAG query using natural language or a declarative plan. Returns records with scores and graph evidence.",
        "operationId": "query",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvancedRecordQueryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Query completed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvancedRecordQueryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/index": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Fetch paginated records",
        "description": "Retrieves a paginated list of records. If a preview type is specified in the request, returns records formatted for preview; otherwise, returns full record details.",
        "operationId": "index",
        "parameters": [
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          },
          {
            "name": "archived",
            "in": "query",
            "description": "When 'true', archived records are returned instead of active records. Defaults to 'false'.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "relatedRecordUuid",
            "in": "query",
            "description": "UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordReturnFormat",
            "in": "query",
            "description": "Format of the records to return. LEGACY, USER_FRIENDLY, EXPANDED.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "LEGACY",
              "enum": [
                "LEGACY",
                "USER_FRIENDLY",
                "EXPANDED"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request for records",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordPaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Records fetched successfully. data items are preview objects when preview is set, otherwise record payloads shaped by recordReturnFormat.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseObject"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/index/table": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Fetch records for table view",
        "description": "Retrieves records formatted for table display. Returns a PaginationResponse containing records formatted for table view.",
        "operationId": "indexTable",
        "parameters": [
          {
            "name": "relatedRecordUuid",
            "in": "query",
            "description": "UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request for table view",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordPaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Records for table view fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseTable"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/index/page": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Fetch records for page view",
        "description": "Retrieves a paginated list of webpages for page view. The search query is temporarily removed from the pagination request and passed separately. Returns a PaginationResponse containing WebpageDTO objects.",
        "operationId": "indexPage",
        "parameters": [
          {
            "name": "environment",
            "in": "query",
            "description": "Target environment for resolving webpages (for example 'staging' or 'production'). Defaults to 'staging'.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          },
          {
            "name": "relatedRecordUuid",
            "in": "query",
            "description": "UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated WebpageDTO fields to return (for example: uuid,title). When omitted, the full WebpageDTO is returned.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publishedOnly",
            "in": "query",
            "description": "When true, only returns pages published in the selected environment.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "excludeTemplateRelated",
            "in": "query",
            "description": "When true, excludes pages whose options mark them as related to a template.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request for page view",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordPaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Webpages fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseObject"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/index/flow": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Fetch records for flow view",
        "description": "Retrieves a list of records formatted for flow view based on a specific property. If the property is not provided in the request, defaults to the 'status' property of the main object. Returns a SuccessResponse containing the flow records.",
        "operationId": "indexFlow",
        "parameters": [
          {
            "name": "relatedRecordUuid",
            "in": "query",
            "description": "UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request for flow view",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowPaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Records for flow view fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseFlow"
                }
              }
            }
          },
          "400": {
            "description": "Required property not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/analytics/suggest-widgets": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Suggest analytics widgets with AI",
        "description": "Uses structured OpenAI output plus schema validation to propose dashboard charts for an object. Returns an empty list when AI is unavailable.",
        "operationId": "suggestAnalyticsWidgets",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuggestAnalyticsWidgetsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Suggestions generated (may be empty)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseSuggestAnalyticsWidgetsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/aggregate": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Aggregate records for analytics charts",
        "description": "Groups Neo4j records by property or time bucket and returns series points with optional drilldown filters.",
        "operationId": "aggregate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AggregateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Aggregation completed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseAggregateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/aggregate/batch": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Batch aggregate records for analytics dashboards",
        "description": "Runs multiple aggregation requests for dashboard widgets.",
        "operationId": "aggregateBatch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AggregateBatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Batch aggregation completed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListAggregateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{uuid}/syncExtendedObjects": {
      "post": {
        "tags": [
          "Objects"
        ],
        "summary": "Sync extended objects for existing records",
        "description": "Synchronizes existing records for an object after extended configuration changes. The object path variable accepts UUID or object name. Leftover nodes with a unique object label and no primary_object are stamped first. Records that reference the object as primary object, extended object, or label are re-extended.",
        "operationId": "syncExtendedObjects",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Extended objects synchronized successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseMapStringInteger"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{uuid}/previews/{name}": {
      "get": {
        "tags": [
          "Objects"
        ],
        "summary": "Get specific preview by name",
        "description": "Fetches a preview for an object by the object's UUID and the preview name. Returns the preview data wrapped in a ShowResponse.",
        "operationId": "getPreview",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched preview",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponsePreviewDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object or preview not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Objects"
        ],
        "summary": "Save object preview",
        "description": "Creates or updates a preview for a specific object. The preview type is determined by the 'name' path variable. Depending on the preview type (e.g., 'detail', 'flow', 'pill', or 'page'), the request body will be mapped to the corresponding PreviewDTO and converted to the appropriate Preview model.",
        "operationId": "savePreview",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Preview data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully created or updated preview",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object or preview not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/views/index": {
      "post": {
        "tags": [
          "Views"
        ],
        "summary": "Fetch paginated views for an object",
        "description": "Retrieves a paginated list of views for the specified object. A custom Cypher query is used to filter views based on the object's UUID. Returns a PaginationResponse containing ViewDTO objects.",
        "operationId": "getViews",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request details (limit, page, filters, sort, query)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Views fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseViewDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/views/": {
      "post": {
        "tags": [
          "Views"
        ],
        "summary": "Create a new view",
        "description": "Creates a new view for the specified object. The request body must contain the view details as a ViewDTO. Returns a CreateResponse containing the newly created view as a ViewDTO.",
        "operationId": "createView",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "View details to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "View created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/{propertyUuid}/restore": {
      "post": {
        "tags": [
          "Property"
        ],
        "summary": "Restore a soft-deleted property",
        "description": "Restores a previously deleted property by propertyUuid for the specified objectUuid. Returns a RestoreResponse containing the restored property details.",
        "operationId": "restoreProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Property restored successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/index": {
      "post": {
        "tags": [
          "Property"
        ],
        "summary": "Fetch paginated properties",
        "description": "Retrieves a paginated list of properties for a given object. Depending on the object UUID format, a Cypher query is constructed to filter properties belonging to that object. Returns a PaginationResponse containing PropertyDTO objects.",
        "operationId": "getProperties",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Pagination details (limit, page, filters, sort, query)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Properties fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePropertyDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/copy": {
      "post": {
        "tags": [
          "Property"
        ],
        "summary": "Copy properties to object",
        "description": "Attaches existing properties from other objects to the target object in a single request. Archived links on the target object are restored. Properties already active on the target are rejected.",
        "operationId": "copyPropertiesToObject",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CopyPropertiesToObjectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Properties copied successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListPropertyDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object or property not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/": {
      "post": {
        "tags": [
          "Property"
        ],
        "summary": "Create a new property",
        "description": "Creates a new property for a specific object using the provided property details. The SavePropertyDTO must include necessary details, and the object association is determined by the objectUuid path variable. Returns a CreateResponse containing the newly created property as a PropertyDTO. Validation rules: name (required, must be unique, must be lowercase, must match name pattern (lowercase letters, numbers, underscores)), label (required), description (maximum 255 characters), type (required, must be one of valid PropertyTypes, cannot be changed after creation), format (required, must be one of valid PropertyFormats, cannot be changed after creation), rules (required, must be an array of string).",
        "operationId": "createProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Property details for creation",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePropertyDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Property created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/access-grant": {
      "post": {
        "tags": [
          "Objects"
        ],
        "summary": "Grant object record access",
        "description": "Accepts a request to grant record-level scopes on the object to selected users, teams, and installed apps. Validation runs synchronously; grants are applied asynchronously. Returns 202 Accepted on success.",
        "operationId": "grantObjectAccess",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObjectAccessGrantRequestDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Grant accepted and processing in the background",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseVoid"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/previews": {
      "post": {
        "tags": [
          "Objects"
        ],
        "summary": "Get all previews over all objects",
        "description": "Fetches all previews over all objects. Returns a PaginationResponse containing a list of preview DTOs.",
        "operationId": "getPreviews",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully fetched previews",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePreviewDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/index": {
      "post": {
        "tags": [
          "Objects"
        ],
        "summary": "Fetch paginated objects",
        "description": "Fetches a paginated list of objects, optionally including views, properties, and/or relations. The request body should contain pagination details such as limit, page, filters, sort, and query.",
        "operationId": "getObjects",
        "parameters": [
          {
            "name": "views",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "relations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Objects fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseCaraerObjectDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/": {
      "post": {
        "tags": [
          "Objects"
        ],
        "summary": "Create new object",
        "description": "Creates a new Caraer object using the provided details. Optional request parameters specify whether to include views, properties, and relations in the response. Validation rules: label (required, must be a string, maximum 32 characters), plural (required, must be a string, maximum 32 characters), name (required, must be a string, must be lowercase, must be unique, must match name pattern (lowercase letters, numbers, underscores)), description (optional, maximum 255 characters), groups (required, must be an array of string, no duplicate values allowed).",
        "operationId": "createObject",
        "parameters": [
          {
            "name": "views",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "properties",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          },
          {
            "name": "relations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "false"
            }
          }
        ],
        "requestBody": {
          "description": "Details of the object to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaraerObjectDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Object successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/notifications": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "List in-app notifications for the logged-in user",
        "description": "Returns notifications for the selected company plus user-general notifications that have no company. Other companies are never included.",
        "operationId": "listNotifications",
        "parameters": [
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseNotificationInboxDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Notifications"
        ],
        "summary": "Send a notification (app token)",
        "description": "Installed apps call this endpoint after async work completes. Authenticate with the installation token (Authorization: Bearer or X-CARAER-TOKEN). Every notification is scoped to the app's company. Omit targetUserUuid to notify every user in that company, or set it to aim the notification at one member.",
        "operationId": "sendNotification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendNotificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Notification created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponseMapStringString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/modules/personal/index": {
      "post": {
        "tags": [
          "Module"
        ],
        "summary": "Fetch paginated personal modules",
        "description": "Retrieves personal modules for the logged-in user.",
        "operationId": "getPersonalModules",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Modules fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePageContentDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/modules/personal/": {
      "post": {
        "tags": [
          "Module"
        ],
        "summary": "Create a personal module",
        "description": "Creates a module in the user's personal library.",
        "operationId": "createPersonalModule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageContentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Module created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/modules/index": {
      "post": {
        "tags": [
          "Module"
        ],
        "summary": "Fetch paginated modules",
        "description": "Retrieves a paginated list of modules.",
        "operationId": "getModules",
        "requestBody": {
          "description": "Pagination details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Modules fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePageContentDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pagination request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/modules/": {
      "post": {
        "tags": [
          "Module"
        ],
        "summary": "Create a new module",
        "description": "Creates a new module.",
        "operationId": "createModule",
        "requestBody": {
          "description": "Module details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageContentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Module created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/{objectUuid}/index": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Get forms by object UUID",
        "description": "Retrieves a paginated list of forms associated with a specific object UUID. The endpoint uses a custom Cypher query to match forms linked to the object.",
        "operationId": "getFormsByObject",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "description": "UUID of the object to get forms for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved forms for the given object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseFormDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/{formUuid}/restore": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Restore a deleted form",
        "description": "Restores a previously deleted form identified by its UUID. Returns the restored form wrapped in a RestoreResponse.",
        "operationId": "restoreForm",
        "parameters": [
          {
            "name": "formUuid",
            "in": "path",
            "description": "UUID of the form to restore",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Form successfully restored",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/public/{companyUuid}/{propertyUuid}/options": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Property options (public)",
        "description": "When X-CARAER-TOKEN or X-Caraer-Company-Uuid is sent, that value selects the tenant company and overrides the companyUuid path segment.",
        "operationId": "getOptions",
        "parameters": [
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePropertyOption"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/public/{companyUuid}/{formUuid}/upload": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Submit a file",
        "description": "Submits a file with the provided data. Returns a SuccessResponse upon successful submission. When X-CARAER-TOKEN or X-Caraer-Company-Uuid is sent, that value selects the tenant company and overrides the companyUuid path segment.",
        "operationId": "uploadFiles",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "formUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "files",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File successfully submitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/public/{companyUuid}/{formUuid}/submit": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Submit a form",
        "description": "Submits a form with the provided data. Returns a SuccessResponse upon successful submission. When X-CARAER-TOKEN or X-Caraer-Company-Uuid is sent, that value selects the tenant company and overrides the companyUuid path segment.",
        "operationId": "submit",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "formUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Form successfully submitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/public/{companyUuid}/index": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Get all forms for a company",
        "description": "When X-CARAER-TOKEN or X-Caraer-Company-Uuid is sent, that value selects the tenant company and overrides the companyUuid path segment.",
        "operationId": "getFormsPublic",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePublicFormDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/public/{companyUuid}/ai/step/{stepTitle}/{prompt}": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "AI form step (public)",
        "description": "When X-CARAER-TOKEN or X-Caraer-Company-Uuid is sent, that value selects the tenant company and overrides the companyUuid path segment.",
        "operationId": "chatStep",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stepTitle",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "prompt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormWithAiPromptDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/public/{companyUuid}/ai/field/{fieldUuid}/{prompt}": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "AI form field (public)",
        "description": "When X-CARAER-TOKEN or X-Caraer-Company-Uuid is sent, that value selects the tenant company and overrides the companyUuid path segment.",
        "operationId": "chatField",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "prompt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormWithAiPromptDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/index": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Get paginated list of forms",
        "description": "Retrieves a paginated list of forms based on the provided filters, sorting, and search query. This endpoint returns a list of FormDTO objects wrapped in a PaginationResponse containing the current page, limit, total count, and the forms data.",
        "operationId": "getForms",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved forms list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseFormDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Create a new form",
        "description": "Creates a new form with the provided data. The request body should contain a valid FormDTO object. On success, returns the created form as a FormDTO wrapped in a CreateResponse. Validation: Form fields are validated according to the Form validation rules. Required fields and format constraints are enforced.",
        "operationId": "createForm",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Form successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/filters": {
      "post": {
        "tags": [
          "Filter"
        ],
        "summary": "Create a new saved filter",
        "description": "Creates a new saved filter with the provided configuration.",
        "operationId": "createFilter",
        "requestBody": {
          "description": "Saved filter details for creation",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavedFilterDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Filter created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/filters/index/{objectUuid}": {
      "post": {
        "tags": [
          "Filter"
        ],
        "summary": "Fetch paginated saved filters",
        "description": "Fetches a paginated list of saved filters. The request body should contain pagination details such as limit, page, filters, and sort.",
        "operationId": "getFilters",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Pagination request details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Filters fetched successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseSavedFilterDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/files/": {
      "get": {
        "tags": [
          "File Management"
        ],
        "summary": "Download file",
        "description": "Generates a pre-signed URL to download a file stored in S3-compatible storage. The URL expiry time and download behavior can be specified using the query parameters.",
        "operationId": "downloadFile",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "description": "The key of the file to download.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The key of the file to download.",
              "example": "file12345"
            },
            "example": "file12345"
          },
          {
            "name": "expireAfter",
            "in": "query",
            "description": "The URL expiry period in seconds.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 86400,
              "description": "The URL expiry period in seconds.",
              "example": 86400
            },
            "example": 86400
          },
          {
            "name": "download",
            "in": "query",
            "description": "Whether to download the file in the browser.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "description": "Whether to download the file in the browser.",
              "example": false
            },
            "example": false
          }
        ],
        "responses": {
          "200": {
            "description": "File URL generated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "File not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "File Management"
        ],
        "summary": "Upload files",
        "description": "Uploads multiple files to an S3-compatible storage and returns their unique keys. The request must contain one or more files in multipart/form-data format.",
        "operationId": "uploadFile_2",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "query",
            "description": "Optional record UUID to directly link uploaded files as attachments.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional record UUID to directly link uploaded files as attachments.",
              "example": "record12345"
            },
            "example": "record12345"
          }
        ],
        "requestBody": {
          "description": "List of files to upload.",
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "array",
                "format": "binary"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Files uploaded successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input, e.g., file size exceeds the limit.",
            "content": {
              "application/json": {}
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "File Management"
        ],
        "summary": "Delete file",
        "description": "Deletes a file from the S3-compatible storage identified by its unique key.",
        "operationId": "deleteFile",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "description": "The key of the file to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The key of the file to delete.",
              "example": "file12345"
            },
            "example": "file12345"
          }
        ],
        "responses": {
          "200": {
            "description": "File deleted successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseVoid"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "File not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/feeds/index": {
      "post": {
        "tags": [
          "Feeds"
        ],
        "summary": "List feeds",
        "operationId": "index_1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseFeedDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-sandboxes": {
      "get": {
        "tags": [
          "Developer Sandboxes"
        ],
        "summary": "List developer sandboxes",
        "description": "Lists sandboxes owned by the caller's selected company.",
        "operationId": "list_1",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListDeveloperSandboxDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Developer Sandboxes"
        ],
        "summary": "Create a developer sandbox",
        "description": "Clones the selected company's Neo4j database (no new Company node). Activate with X-Caraer-Sandbox-Uuid; company identity stays the owner.",
        "operationId": "create_1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeveloperSandboxRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Sandbox created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "name is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-projects": {
      "post": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "Create or fetch a developer project",
        "description": "Creates a developer project linked to the given app, or returns the existing one if already linked. Creator company only.",
        "operationId": "create_2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeveloperProjectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Project created or fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "appUuid is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Caller is not the app creator",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-projects/{projectUuid}/builds": {
      "get": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "List project builds",
        "operationId": "listBuilds",
        "parameters": [
          {
            "name": "projectUuid",
            "in": "path",
            "description": "UUID of the developer project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListProjectBuildDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "Upload a project build",
        "description": "Decodes a base64-encoded project archive, parses its manifest, uploads it to Cloud Storage, and records an immutable build.",
        "operationId": "createBuild",
        "parameters": [
          {
            "name": "projectUuid",
            "in": "path",
            "description": "UUID of the developer project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectBuildRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Build recorded (may still have status FAILED if parsing/upload failed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "archiveBase64 is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-projects/{projectUuid}/builds/{buildUuid}/deploy": {
      "post": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "Deploy a project build",
        "description": "Reconciles the build's manifest (app details, serverless functions, webhooks, schedules, inbound routes, external OAuth providers) against the linked app. Set prune=true to soft-delete remote resources absent from the archive.",
        "operationId": "deploy",
        "parameters": [
          {
            "name": "projectUuid",
            "in": "path",
            "description": "UUID of the developer project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "buildUuid",
            "in": "path",
            "description": "UUID of the build to deploy",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeployBuildRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Deploy recorded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Build is not ready to deploy",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/{companyUuid}/webhooks/resume": {
      "post": {
        "tags": [
          "Company"
        ],
        "summary": "Resume webhook dispatch",
        "description": "Clears the per-company webhook circuit breaker so outbound deliveries resume immediately.",
        "operationId": "resumeWebhookDispatch",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Circuit breaker cleared",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/{companyUuid}/cms-transfer/rollback": {
      "post": {
        "tags": [
          "CMS v2 transfer"
        ],
        "summary": "Restore the live hostname to the stored v1 project",
        "operationId": "rollback",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCompanyDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/{companyUuid}/cms-transfer/cutover": {
      "post": {
        "tags": [
          "CMS v2 transfer"
        ],
        "summary": "Switch the live site to CMS v2: schema, caraer-web repo, and hostname",
        "operationId": "cutover",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCompanyDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/{companyUuid}/cms-transfer/attach": {
      "post": {
        "tags": [
          "CMS v2 transfer"
        ],
        "summary": "Attach a project, link Caraer-HQ/caraer-web, write its v2 environment, and deploy",
        "operationId": "attach",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCompanyDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/uploadFont": {
      "post": {
        "tags": [
          "Company"
        ],
        "summary": "Upload a font file",
        "description": "Uploads a font file to S3 storage and returns the public URL.",
        "operationId": "uploadFont",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Font uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid file provided",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "Get current company",
        "description": "Returns the company currently selected by the logged-in user. Requires TOOLS_COMPANY_SETTINGS_READ scope.",
        "operationId": "getCompany",
        "responses": {
          "200": {
            "description": "Company returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCompanyDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Company"
        ],
        "summary": "Create a new company",
        "description": "Creates a new company based on the provided request data.",
        "operationId": "createCompany",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCompanyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Company created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseCompanyDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/cms/environments": {
      "get": {
        "tags": [
          "CMS v2 environments"
        ],
        "summary": "List company environments",
        "operationId": "list_2",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListCmsEnvironmentDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "CMS v2 environments"
        ],
        "summary": "Create an environment",
        "operationId": "create_3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CmsEnvironmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsEnvironmentDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/cms/environments/translations/{fromUuid}/link/{toUuid}": {
      "post": {
        "tags": [
          "CMS v2 environments"
        ],
        "summary": "Link two records as translations",
        "operationId": "link",
        "parameters": [
          {
            "name": "fromUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "CMS v2 environments"
        ],
        "summary": "Unlink a translation edge",
        "operationId": "unlink",
        "parameters": [
          {
            "name": "fromUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/calendars": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List calendars visible to the current company",
        "operationId": "list_3",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListCalendarRecordDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Create a calendar owned by the current user",
        "operationId": "create_4",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Calendar created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponseCalendarRecordDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/calendars/bootstrap": {
      "post": {
        "tags": [
          "Calendars"
        ],
        "summary": "Ensure calendar schema, default calendar, and event backfill",
        "operationId": "bootstrap",
        "responses": {
          "200": {
            "description": "Calendars ready",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseCalendarBootstrapDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/billing/setup-email": {
      "post": {
        "tags": [
          "Billing"
        ],
        "summary": "Send billing setup email",
        "description": "Triggers Jortt to email the linked customer a direct-debit authorization payment link.",
        "operationId": "sendSetupEmail",
        "responses": {
          "200": {
            "description": "Email requested",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringBoolean"
                }
              }
            }
          },
          "400": {
            "description": "Billing is not set up, or direct debit is already accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "description": "Jortt or CRM not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{uuid}/uninstall": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Uninstall an application",
        "description": "Removes the installed application specified by its UUID using the provided settings. The request body should contain an AppRequest with the uninstallation settings. Returns the updated application details as a ShowResponse wrapping an AppDTO.",
        "operationId": "uninstallApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the application to uninstall",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully uninstalled the application",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Application not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{uuid}/settings-schema/options": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Load dynamic options for a setting select field",
        "description": "Invokes the app serverless function configured on the field's optionsSource and returns options for SINGLE_SELECT / MULTI_SELECT fields. Uses the draft settingsSchema from the installer UI so credentials entered in other fields are available to the loader.",
        "operationId": "loadSettingOptions",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the application",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Field name, optional query, and draft settings schema",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoadAppSettingOptionsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Options loaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseLoadAppSettingOptionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or dependsOn not satisfied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "App not accessible",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "App, field, or serverless function not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "502": {
            "description": "Serverless function failed or returned invalid response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{uuid}/rotate": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Rotate application configurations",
        "description": "Rotates the configuration or settings for the specified application by UUID. On success, returns the updated application details as a ShowResponse wrapping an AppDTO.",
        "operationId": "rotateApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the application to rotate configurations",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully rotated application configurations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Application not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{uuid}/migrate-v2": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Migrate an app from platform V1 to V2",
        "description": "Opt-in in-place migration to the shared container runtime. Validates a single runtime, sets platformVersion=2, schedules an async rebuild, and keeps invoking via legacy gcpReference until runtimeStatus is READY.",
        "operationId": "migrateToV2",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the app to migrate",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MigrateAppToV2Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Migration started or already in progress",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseMapStringObject"
                }
              }
            }
          },
          "400": {
            "description": "Mixed/missing runtimes or invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Not allowed to migrate this app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "App not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{uuid}/install": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Install an application",
        "description": "Installs the application specified by its UUID with optional initial configuration settings. Returns the updated application details as a ShowResponse wrapping an AppDTO.",
        "operationId": "installApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the application to install",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstallAppRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully installed the application",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Application not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Create a webhook for an app (app-scoped path)",
        "description": "Creates a new webhook for the specified app using normal bearer authentication. The app must be installed for the authenticated user's selected company. This endpoint is an app-scoped equivalent of the generic webhook creation endpoint.",
        "operationId": "createAppWebhookForApp",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app to create the webhook for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeWebhookDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Webhook created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input provided or app not installed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "App not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/test": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Test an unsaved webhook for an app",
        "description": "Generates a test webhook payload from webhook configuration supplied in the request body without persisting the webhook. When recordUuid is omitted, auto-resolves the latest matching record, prefers records that submitted the topic form and that have as many includeRelations as possible, and uses the event from the webhook topic. If no record exists, a simulated record is used and context.testNote (also X-Webhook-Test-Note) explains that plus any missing includeRelations.",
        "operationId": "testAppWebhookUnsaved",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app the webhook belongs to",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook configuration and optional test event parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestWebhookRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Webhook test payload generated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid webhook configuration or event parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "App not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/test/{webhookUuid}": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Test a webhook for an app (auto-resolve)",
        "description": "Generates a test webhook payload using the latest matching record for the topic object. Form-submission topics prefer a record that submitted that form; includeRelations prefer a record that has as many of those related objects as possible. If no record exists, a simulated record is used. Missing includeRelations and simulated samples are explained in context.testNote and the X-Webhook-Test-Note header. Uses the event type from the webhook topic (updated when the topic action is all).",
        "operationId": "testAppWebhookAuto",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app that owns the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhookUuid",
            "in": "path",
            "description": "UUID of the webhook to test",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook test payload generated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Webhook topic cannot be used for record testing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webhook not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/test/{webhookUuid}/{recordUuid}/{eventType}": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Test a webhook for an app",
        "description": "Generates a test webhook payload for a specific record and event type. Uses the same payload generation logic as live webhook delivery.",
        "operationId": "testAppWebhook",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app that owns the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhookUuid",
            "in": "path",
            "description": "UUID of the webhook to test",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordUuid",
            "in": "path",
            "description": "UUID of the record to include in the webhook payload",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "in": "path",
            "description": "Type of event to simulate. Supported values are the entries returned by /webhooks/events, or property_changed for property webhooks.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyName",
            "in": "query",
            "description": "Property name when simulating property_changed",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook test payload generated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid event type or app not installed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webhook not found for the specified app or company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/index": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Retrieve a paginated list of webhooks for an app",
        "description": "Fetches a paginated and optionally filtered list of webhooks associated with the specified app and the authenticated user's selected company.",
        "operationId": "getAppWebhooks",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the application for which to retrieve webhooks",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of webhooks for the app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseSubscribeWebhookDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request data or app not installed for company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Application not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/serverless-functions": {
      "post": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "Create a serverless function",
        "description": "Creates a new serverless function attached to the specified app.",
        "operationId": "create_5",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app to attach the serverless function to",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Serverless function payload (runtime and code)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerlessFunctionDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully created serverless function",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or app not installed for company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/serverless-functions/{uuid}/test": {
      "post": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "Test a serverless function",
        "description": "Provisions (if needed) and invokes a serverless function for a given record and event type, using the same payload shape as webhooks.",
        "operationId": "testServerlessFunction",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the serverless function to test",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Test serverless function payload (recordUuid and eventType)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestServerlessFunctionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Serverless function test executed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseMapStringObject"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input provided",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "App, serverless function, or record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/serverless-functions/sample-payload": {
      "post": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "Generate a sample webhook payload",
        "description": "Builds the same payload shape used for serverless invocations and webhook delivery from a record and event type, without invoking anything.",
        "operationId": "samplePayload",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Sample payload request (recordUuid and eventType)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SamplePayloadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Sample payload generated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseObject"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input provided",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "App or record not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/serverless-functions/index": {
      "post": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "List serverless functions for an app",
        "description": "Retrieves a paginated list of serverless functions that belong to the specified app.",
        "operationId": "index_2",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app whose serverless functions to list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Pagination and filtering options for the request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved serverless functions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseServerlessFunctionDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or app not installed for company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/settings/{fieldName}/trigger": {
      "post": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Trigger an ACTION setting without saving settings",
        "operationId": "triggerSettingAction",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Action started",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/oauth/{provider}/start": {
      "post": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Start external OAuth authorize (returns provider authorize URL)",
        "operationId": "startOAuth",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "redirectUri",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppOAuthStartResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/jobs": {
      "post": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Enqueue an async serverless function job",
        "operationId": "enqueueJob",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/db": {
      "post": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Run SQL in this installation's Postgres schema",
        "operationId": "runInstallationSql",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/cms-modules/package": {
      "post": {
        "tags": [
          "CMS modules"
        ],
        "summary": "Publish an app's CMS module package",
        "description": "Accepts a staged npm tarball (base64) and module manifests. Publishes to the platform registry with the host token, then replaces the catalog.",
        "operationId": "publishPackage",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {}
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListCmsModuleDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/public": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Create a public app",
        "description": "Creates a new public app with the provided label and optional description. Public apps are automatically published for the creating user's company. Returns the created app details as a CreateResponse wrapping an AppDTO.",
        "operationId": "createPublicApp",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully created the public app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/public/{uuid}/submit": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Submit a public app for review",
        "description": "Submits a public app specified by its UUID for review. Returns the submitted app details as a ShowResponse wrapping an AppDTO.",
        "operationId": "submitPublicApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the public app to submit for review",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully submitted the public app for review",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Public app not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/public/{uuid}/review": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Review a public app",
        "description": "Sets review outcome (approve/reject/changes requested), feedback, and optional reviewer notes. Returns the updated app details as a ShowResponse wrapping an AppDTO.",
        "operationId": "reviewPublicApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the public app to review",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully reviewed the public app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Public app not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/private": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Create a private app",
        "description": "Creates a new private app with the provided label and optional description. Private apps are automatically installed for the creating user's company. Returns the created app details as a CreateResponse wrapping an AppDTO.",
        "operationId": "createPrivateApp",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrivateAppRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully created the private app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/my/index": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Retrieve apps created by the logged-in user's selected company",
        "description": "Fetches a paginated and optionally filtered list of apps where the selected company is the creator. Returns a PaginationResponse containing AppDTO objects.",
        "operationId": "getMyCreatedApps",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved creator apps",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseAppDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/index": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Retrieve a paginated list of applications",
        "description": "Fetches a paginated and optionally filtered list of applications. The list is sorted alphabetically by category and name. On success, returns a PaginationResponse containing AppSummaryDTO objects.",
        "operationId": "getApps",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "installedOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaginationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of applications",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseAppDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/app-bars/{appBarUuid}/trigger": {
      "post": {
        "tags": [
          "App Bars"
        ],
        "summary": "Trigger an action-based app bar",
        "description": "Fires the app bar webhook with optional settings values and record/view context.",
        "operationId": "triggerAppBar",
        "parameters": [
          {
            "name": "appBarUuid",
            "in": "path",
            "description": "UUID of the app bar to trigger",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppBarTriggerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Trigger accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "App bar not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/app-bars/{appBarUuid}/iframe-session": {
      "post": {
        "tags": [
          "App Bar Iframe Sessions"
        ],
        "summary": "Create an iframe session token",
        "description": "Issues a short-lived opaque token for an iframe-based app bar. The token can be validated by the embedded app to confirm user, company, view, and filter context.",
        "operationId": "createIframeSession",
        "parameters": [
          {
            "name": "appBarUuid",
            "in": "path",
            "description": "UUID of the iframe app bar",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppBarIframeSessionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Token created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppBarIframeSessionTokenDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "App bar not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/app-bars/iframe-session/validate": {
      "post": {
        "tags": [
          "App Bar Iframe Sessions"
        ],
        "summary": "Validate an iframe session token",
        "description": "Public endpoint for embedded apps to validate a caraer_iframe_token and receive safe context.",
        "operationId": "validateIframeSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppBarIframeSessionValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Token validated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppBarIframeSessionContextDTO"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or expired token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/notifications/{notificationId}/read": {
      "patch": {
        "tags": [
          "Notifications"
        ],
        "summary": "Mark a notification as read",
        "operationId": "markAsRead",
        "parameters": [
          {
            "name": "notificationId",
            "in": "path",
            "description": "Firestore notification document ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Notification marked as read",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Notification not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/notifications/read-all": {
      "patch": {
        "tags": [
          "Notifications"
        ],
        "summary": "Mark all notifications as read",
        "operationId": "markAllAsRead",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/{uuid}/protection/grants": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "List signed URL grants for a webpage",
        "operationId": "listProtectionGrants",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseWebpageAccessGrantDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/{uuid}/editing-status": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Check if a webpage is being edited",
        "description": "Returns whether another user is actively editing this webpage (via an open builder session or collaborative WebSocket connection).",
        "operationId": "getWebpageEditingStatus",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Editing status retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebpageEditingStatusDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Missing read access on webpage fields for this environment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/settings": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Company settings, branding and locales",
        "operationId": "settings",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/paths": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Published paths per environment, for sitemaps and cache warming",
        "operationId": "paths",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/page": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "A published page by URL path",
        "operationId": "pageByPath",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/page/{uuid}": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "A page by record uuid",
        "description": "Used by the builder preview, which addresses a page by uuid because a draft may not have a slug yet.",
        "operationId": "pageByUuid",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "published"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "caraer_expires",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "caraer_sig",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/page/gate": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Protection info for a path, without the page document",
        "operationId": "pageGate",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/menus": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Navigation menus for the header and footer",
        "operationId": "menus",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListCmsPublicMenuDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/asset": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Redirect to a company file for the website runtime",
        "operationId": "asset",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageUuid",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "caraer_expires",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "caraer_sig",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/public/apps/{appName}/settings": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Installed app settings with SECRET fields removed",
        "operationId": "appSettings",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/preview-link": {
      "get": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Signed preview URL for the builder iframe",
        "description": "The iframe renders the draft document, which the public API will not serve. The signature covers the page and an expiry so a leaked link cannot be retargeted or replayed.",
        "operationId": "previewLink",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "draft"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/history": {
      "get": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Draft snapshots for one locale",
        "operationId": "history",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/environments": {
      "get": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Environment coverage for the builder dropdown",
        "operationId": "environmentCoverage",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/library/modules": {
      "get": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Modules available to this company",
        "description": "Backs the builder's library picker. Only modules from installed apps, and never retired ones, because a new page must be able to render them.",
        "operationId": "library",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListCmsModuleDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/build/manifest": {
      "get": {
        "tags": [
          "CMS v2 public"
        ],
        "summary": "Installed apps and modules for a company's website build",
        "operationId": "buildManifest",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/template/{objectName}/{environment}/editing-status": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Check if a template webpage is being edited",
        "description": "Returns whether another user is actively editing the template webpage for the given object and environment.",
        "operationId": "getTemplateWebpageEditingStatus",
        "parameters": [
          {
            "name": "objectName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Editing status retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebpageEditingStatusDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Template webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/{rootSlug}/{slug}": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get a public webpage by slug",
        "description": "Retrieves a published webpage based on the provided root slug and slug. Returns a ShowResponse containing WebpageDTO data.",
        "operationId": "getPublicWebpage",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rootSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webpage retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebpageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/uuid/{uuid}": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get a public webpage by UUID",
        "description": "Retrieves a published webpage based on its UUID. Returns a ShowResponse containing WebpageDTO data.",
        "operationId": "getPublicWebpageByUuid",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Webpage-Access",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "access",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webpage retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebpageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webpage not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/uuid/{uuid}/protection": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get webpage protection metadata",
        "description": "Returns protection requirements without page content.",
        "operationId": "getPublicWebpageProtection",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseWebpageProtectionInfoDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/module/{moduleUuid}": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Fetch public website module",
        "description": "Returns the PageContent tree for a module exposed by website settings, such as the custom footer or the cookie banner. Requires X-Caraer-Subdomain; only the UUIDs configured in website settings are accessible.",
        "operationId": "getPublicWebsiteModule",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "moduleUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Module retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Module not found or not exposed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/public/getSlugs": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Get all public webpage slugs",
        "description": "Retrieves a list of all webpage slugs for the public site. Returns a PaginationResponse containing WebpageMapItemDTO objects.",
        "operationId": "getAllSlugs",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Slugs retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePublicEnvironmentDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webpages/public/getMenus": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Fetch public web menus",
        "description": "Retrieves a list of web menus for the public site. Returns a PaginationResponse containing WebMenuDTO objects.",
        "operationId": "getMenus",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Menus retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseWebMenuDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webpages/public/companySettings": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "Fetch public company settings",
        "description": "Retrieves the public company configuration for the given subdomain. Returns a ShowResponse containing PublicCompanyDTO details.",
        "operationId": "getCompanySettings",
        "parameters": [
          {
            "name": "X-Caraer-Subdomain",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Caraer-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "X-Caraer-Primary-Environment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Company settings retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimplePublicCompanyDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webpages/picker/pages": {
      "get": {
        "tags": [
          "Webpages"
        ],
        "summary": "List webpages for picker dropdowns",
        "description": "Returns uuid and title for all webpage records across objects with a Page trait. Supports optional filters for published pages and excluding template-related pages.",
        "operationId": "getWebpagePickerPages",
        "parameters": [
          {
            "name": "environment",
            "in": "query",
            "description": "Environment to resolve webpage properties from (e.g. 'production' or 'staging').",
            "required": false,
            "schema": {
              "type": "string",
              "default": "production"
            }
          },
          {
            "name": "publishedOnly",
            "in": "query",
            "description": "When true, only returns pages that are published in the given environment.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "excludeTemplateRelated",
            "in": "query",
            "description": "When true, excludes pages whose options mark them as related to a template.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webpages retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListWebpagePickerItemDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/traits/{objectUuid}": {
      "get": {
        "tags": [
          "Traits"
        ],
        "summary": "Fetch all traits for an object",
        "description": "Retrieves a list of traits associated with the specified object. Returns a paginated response containing TraitDTO objects. The page is set to 0 by default, with a maximum limit of 100.",
        "operationId": "getTraits",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Traits retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponseTraitDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/traits/event/{companyUuid}/{eventUuid}/rsvp/{attendeeUuid}/social/{provider}": {
      "get": {
        "tags": [
          "Traits"
        ],
        "summary": "Start social login for RSVP",
        "operationId": "rsvpBrowserSocial",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attendeeUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "partstat",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/relations/{relationUuid}": {
      "get": {
        "tags": [
          "Relations"
        ],
        "summary": "Get relation details",
        "description": "Retrieves the details of a relation by its UUID. Returns a ShowResponse containing a RelationDTO.",
        "operationId": "getRelation",
        "parameters": [
          {
            "name": "relationUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseRelationDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Relations"
        ],
        "summary": "Delete a relation",
        "description": "Deletes a relation specified by its UUID. Returns a DeleteResponse with the deleted relation details.",
        "operationId": "deleteRelation_1",
        "parameters": [
          {
            "name": "relationUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/relations/{relationUuid}/{objectUuid}": {
      "get": {
        "tags": [
          "Relations"
        ],
        "summary": "Get relation details for a specific object",
        "description": "Retrieves a relation by its UUID and associates it with the specified object, returning a RelationDTO that includes details from the related object.",
        "operationId": "getRelationForObject",
        "parameters": [
          {
            "name": "relationUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation for object retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseRelationDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Relation or object not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/records/{uuid}/previews/{name}": {
      "get": {
        "tags": [
          "Records"
        ],
        "summary": "Get record preview",
        "description": "Retrieves a preview for a record specified by its UUID and preview name. Returns a ShowResponse containing the preview data.",
        "operationId": "preview",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "object",
            "in": "query",
            "description": "Optional object name used to resolve the record before building the preview.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parse",
            "in": "query",
            "description": "Value presentation mode: omit/false/db for raw stored values; true/human_readable for display strings; structured for rich JSON (e.g. PropertyOption arrays, related records).",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DB",
                "HUMAN_READABLE",
                "STRUCTURED"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Preview retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponsePreviewDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Record or preview not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{uuid}/previews": {
      "get": {
        "tags": [
          "Objects"
        ],
        "summary": "Get all previews of an object",
        "description": "Fetches all previews associated with a specific object. Returns a PaginationResponse containing a list of preview DTOs.",
        "operationId": "getPreviews_1",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched previews",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePreviewDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Object not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/{propertyUuid}/calculation-types": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Retrieve allowed calculation types for a property",
        "description": "Returns calculation functions supported for the property's type.",
        "operationId": "getPropertyCalculationTypes",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation types retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/formats": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Retrieve property formats",
        "description": "Fetches a sorted list of available property formats. The formats are retrieved from the PropertyFormats enum and converted to PropertyFormat instances.",
        "operationId": "getFormats",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Property formats retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePropertyFormat"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/calculation-types": {
      "get": {
        "tags": [
          "Property"
        ],
        "summary": "Retrieve allowed calculation types per property type",
        "description": "Returns the calculation functions available for each property type (for example min/max on numbers).",
        "operationId": "getCalculationTypes",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation types retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationResponsePropertyCalculationTypeDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/access-grant/candidates": {
      "get": {
        "tags": [
          "Objects"
        ],
        "summary": "List access grant candidates",
        "description": "Returns all company users, teams, and installed apps that can receive record access on an object.",
        "operationId": "getAccessGrantCandidates",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseObjectAccessGrantCandidatesDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/notifications/firebase-token": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Mint a Firebase custom token so the app can listen to its inbox",
        "operationId": "firebaseToken",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/public/{companyUuid}/{formUuid}": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get form by UUID",
        "description": "Retrieves a specific form by its UUID. When X-CARAER-TOKEN or X-Caraer-Company-Uuid is sent, that value selects the tenant company and overrides the companyUuid path segment.",
        "operationId": "getFormPublic",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "formUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the form",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponsePublicFormDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/forms/objects": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "List objects that have forms",
        "description": "Returns distinct custom objects that have at least one non-deleted form, ordered by object index.",
        "operationId": "getObjectsWithForms",
        "responses": {
          "200": {
            "description": "Successfully retrieved objects with forms",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListFormObjectSummaryDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/files/list": {
      "get": {
        "tags": [
          "File Management"
        ],
        "summary": "List files",
        "description": "Lists all files stored in the system or, if a record UUID is provided, lists the files related to that record.",
        "operationId": "listFiles",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "query",
            "description": "An optional record UUID to filter files.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "An optional record UUID to filter files.",
              "example": "record12345"
            },
            "example": "record12345"
          }
        ],
        "responses": {
          "200": {
            "description": "Files listed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/files/library": {
      "get": {
        "tags": [
          "File Management"
        ],
        "summary": "List company files with metadata for the media library",
        "operationId": "listLibrary",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListFileListItemDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-sandboxes/{uuid}": {
      "get": {
        "tags": [
          "Developer Sandboxes"
        ],
        "summary": "Get a developer sandbox",
        "operationId": "show_2",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the sandbox",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "Caller does not own this sandbox",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Sandbox not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-projects/{uuid}": {
      "get": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "Get a developer project",
        "operationId": "show_3",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the developer project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Project retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseDeveloperProjectDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Project not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-projects/{projectUuid}/source": {
      "get": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "Download the deployed project source",
        "description": "Returns the zip of the build currently deployed for this project. That archive is the source of truth for functions and CMS modules.",
        "operationId": "deployedSource",
        "parameters": [
          {
            "name": "projectUuid",
            "in": "path",
            "description": "UUID of the developer project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Deployed source archive",
            "content": {
              "application/zip": {
                "schema": {
                  "type": "string",
                  "format": "byte"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-projects/{projectUuid}/deploys": {
      "get": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "List project deploys",
        "operationId": "listDeploys",
        "parameters": [
          {
            "name": "projectUuid",
            "in": "path",
            "description": "UUID of the developer project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListProjectDeployDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/developer-projects/{projectUuid}/builds/{buildUuid}": {
      "get": {
        "tags": [
          "Developer Projects"
        ],
        "summary": "Get a project build",
        "operationId": "getBuild",
        "parameters": [
          {
            "name": "projectUuid",
            "in": "path",
            "description": "UUID of the developer project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "buildUuid",
            "in": "path",
            "description": "UUID of the build",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Build not found for this project",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/{companyUuid}/cms-transfer": {
      "get": {
        "tags": [
          "CMS v2 transfer"
        ],
        "summary": "Transfer status for one company",
        "operationId": "status",
        "parameters": [
          {
            "name": "companyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/company/suite-dashboards": {
      "get": {
        "tags": [
          "Company"
        ],
        "summary": "List suite dashboards",
        "description": "Returns all home analytics dashboards keyed by suite name for the selected company.",
        "operationId": "getSuiteDashboards",
        "responses": {
          "200": {
            "description": "Suite dashboards returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringAnalyticsDashboardConfig"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/cms/environments/translations/{recordUuid}": {
      "get": {
        "tags": [
          "CMS v2 environments"
        ],
        "summary": "Translation group for a record",
        "operationId": "group",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/calendars/teams": {
      "get": {
        "tags": [
          "Calendars"
        ],
        "summary": "List teams that can be linked to a calendar",
        "operationId": "listTeams",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseListCalendarTeamOptionDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/billing/status": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Get billing enforcement status",
        "description": "Returns whether the selected company should see no UI, a billing banner, or a non-dismissible lockout, based on Caraer BV CRM billing fields.",
        "operationId": "getStatus",
        "responses": {
          "200": {
            "description": "Billing status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseBillingStatusDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/automations/token": {
      "get": {
        "tags": [
          "Automations"
        ],
        "summary": "Get Latenode JWT token for current user",
        "description": "Generates a short-lived Latenode JWT token for the authenticated user, to be used with the Latenode embedded SDK.",
        "operationId": "getToken",
        "responses": {
          "200": {
            "description": "Successfully generated token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{uuid}": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Retrieve application details by UUID",
        "description": "Fetches details about an application specified by its UUID. Returns the application details as a ShowResponse wrapping an AppDetailDTO.",
        "operationId": "getApp",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the application to retrieve",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved application details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseAppDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Application not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/{webhookUuid}/deliveries": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Recent webhook delivery decisions",
        "description": "Returns the latest match, suppression, and delivery attempts for this webhook on this server. A selected-object topic records MATCHED. A different object records SUPPRESSED. A missing required setting records SKIPPED_MISSING_SETTING.",
        "operationId": "getAppWebhookDeliveries",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app that owns the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhookUuid",
            "in": "path",
            "description": "UUID of the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Delivery history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListEntry"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Webhook not found for the specified app or company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/property-topics": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Get webhook property topic options",
        "description": "Returns property names on an object that can be used in 4-part property_changed webhook topics.",
        "operationId": "getWebhookPropertyTopics",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "object",
            "in": "query",
            "description": "Object name (e.g. contact)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of property names",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/formats": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Get available webhook formats",
        "description": "Returns all supported webhook payload formats with their details.",
        "operationId": "getWebhookFormats",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app to get the webhook formats for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of available webhook formats",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {}
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/webhooks/events": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Get available webhook record events",
        "description": "Returns all supported record webhook events with their details.",
        "operationId": "getWebhookEvents",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app to get the webhook events for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of available webhook record events",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {}
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/serverless-functions/{uuid}/logs": {
      "get": {
        "tags": [
          "Serverless Functions"
        ],
        "summary": "Get serverless function logs",
        "description": "Queries Cloud Logging for recent log entries emitted by the Cloud Function backing this serverless function.",
        "operationId": "logs",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "in": "path",
            "description": "UUID of the serverless function",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Lookback window, e.g. 15m, 1h, 24h",
            "required": false,
            "schema": {
              "type": "string",
              "default": "1h"
            },
            "example": "1h"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of log entries to return",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved logs (may be empty if logging is unavailable)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Serverless function not found for this app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/runtime/logs": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Get app runtime logs",
        "description": "Queries Cloud Logging for the shared V2 app container (app-{uuid}) without filtering to a single function.",
        "operationId": "getRuntimeLogs",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Lookback window, e.g. 15m, 1h, 24h",
            "required": false,
            "schema": {
              "type": "string",
              "default": "1h"
            },
            "example": "1h"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of log entries to return",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved logs (may be empty if logging is unavailable)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "App not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/runtime/logs/stream": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Stream app runtime logs (SSE)",
        "description": "Server-Sent Events stream of Cloud Logging entries for the shared V2 app container. Polls every ~2.5s and stops after 5 minutes or client disconnect.",
        "operationId": "streamRuntimeLogs",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "SSE stream of log entries",
            "content": {
              "text/event-stream": {
                "schema": {
                  "$ref": "#/components/schemas/SseEmitter"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/me": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Get current user's company information",
        "description": "Retrieves the company information of the authenticated user. The response includes public details of the user's selected company.",
        "operationId": "getCompanyInformation",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "description": "UUID of the app to get the company information for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved company information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimplePublicCompanyDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/secrets": {
      "get": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "List secret names (no values)",
        "operationId": "listSecrets",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/jobs/{jobId}": {
      "get": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Get async job status",
        "operationId": "getJob",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/connections": {
      "get": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "List external OAuth connection status",
        "operationId": "listConnections",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListAppConnectionStatusDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/categories": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "List predefined marketplace app categories",
        "description": "Returns the allowed category keys and labels for public app marketplace listings.",
        "operationId": "listAppCategories",
        "responses": {
          "200": {
            "description": "Successfully retrieved app categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppCategoryDTO"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/app-bars": {
      "get": {
        "tags": [
          "App Bars"
        ],
        "summary": "List installed app bars for a location",
        "description": "Returns all app bars from installed apps for the authenticated user's company at the given location.",
        "operationId": "listAppBars",
        "parameters": [
          {
            "name": "location",
            "in": "query",
            "description": "App bar location",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "RECORD_PREVIEW",
                "RECORD_OVERVIEW",
                "RECORD_DETAIL",
                "TOOL_BAR",
                "TRAIT_BAR",
                "RECORD_TRAIT"
              ]
            }
          },
          {
            "name": "object",
            "in": "query",
            "description": "Object name in context",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordUuid",
            "in": "query",
            "description": "Record UUID in context",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "viewId",
            "in": "query",
            "description": "View ID in context",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "trait",
            "in": "query",
            "description": "Trait name in context",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "suite",
            "in": "query",
            "description": "Suite selected in the UI. A tool bar is included when this suite is saved on the bar.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "App bars retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseListInstalledAppBarDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/{uuid}/protection/grants/{grantUuid}": {
      "delete": {
        "tags": [
          "Webpages"
        ],
        "summary": "Revoke a signed URL grant",
        "operationId": "revokeProtectionGrant",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "grantUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "staging"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        }
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/environments/{key}": {
      "delete": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Remove an environment from this page only",
        "operationId": "unselectEnvironment",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseCmsPageDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/v2/pages/{recordUuid}/ai/module-fork/sessions/{sessionId}": {
      "delete": {
        "tags": [
          "CMS v2 pages"
        ],
        "summary": "Discard a Modify-this-module playground session",
        "operationId": "discardModuleFork",
        "parameters": [
          {
            "name": "recordUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseMapStringObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/webpages/environments/{environment}": {
      "delete": {
        "tags": [
          "Webpages"
        ],
        "summary": "Delete an environment",
        "description": "Soft deletes an environment.",
        "operationId": "deleteEnvironment",
        "parameters": [
          {
            "name": "environment",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Environment deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/relations/{relationUuid}/permanent": {
      "delete": {
        "tags": [
          "Relations"
        ],
        "summary": "Permanently delete archived relation",
        "description": "Hard-deletes a soft-deleted relation. Only relations with deletedAt set can be removed.",
        "operationId": "permanentlyDeleteArchivedRelation",
        "parameters": [
          {
            "name": "relationUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation permanently deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Relation is not archived",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{uuid}/permanent": {
      "delete": {
        "tags": [
          "Objects"
        ],
        "summary": "Permanently delete archived object",
        "description": "Hard-deletes a soft-deleted object. Only objects with deletedAt set can be removed.",
        "operationId": "permanentlyDeleteArchivedObject",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Object permanently deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Object is not archived",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/objects/{objectUuid}/properties/{propertyUuid}/permanent": {
      "delete": {
        "tags": [
          "Property"
        ],
        "summary": "Permanently remove archived property",
        "description": "Deletes the soft-deleted HAS_PROPERTY link to this object. If the property is not linked to any other object, the property node is hard-deleted.",
        "operationId": "permanentlyDeleteArchivedProperty",
        "parameters": [
          {
            "name": "objectUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "propertyUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Archived property permanently removed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Property is not archived for this object",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/notifications/{notificationId}": {
      "delete": {
        "tags": [
          "Notifications"
        ],
        "summary": "Dismiss a notification",
        "operationId": "dismissNotification",
        "parameters": [
          {
            "name": "notificationId",
            "in": "path",
            "description": "Firestore notification document ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Notification dismissed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponseString"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/api/v2/apps/{appUuid}/installation/connections/{providerOrConnectionId}": {
      "delete": {
        "tags": [
          "App installation runtime"
        ],
        "summary": "Revoke external OAuth connection tokens by connection id or provider name",
        "operationId": "revokeConnection",
        "parameters": [
          {
            "name": "appUuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providerOrConnectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponseVoid"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "FilterGroup": {
        "type": "object",
        "description": "A DTO that defines a group of filter items used for record filtering.",
        "properties": {
          "items": {
            "$ref": "#/components/schemas/FilterItem",
            "description": "A set of filter items included in the group."
          }
        }
      },
      "FilterItem": {
        "type": "object",
        "description": "DTO representing a filter used in querying records.",
        "properties": {
          "object": {
            "type": "string",
            "description": "The name of the object to which this pagination item belongs.",
            "example": "User"
          },
          "relation": {
            "type": "string",
            "description": "The relationship between objects.",
            "example": "hasProperty"
          },
          "relationDirection": {
            "type": "string",
            "description": "Optional relation direction: outgoing (related→main), incoming (main→related), or omit for undirected.",
            "example": "outgoing"
          },
          "property": {
            "type": "string",
            "description": "The name of the property within the object.",
            "example": "email"
          },
          "relationIncluded": {
            "type": "boolean",
            "description": "Specifies whether the relation is included.",
            "example": true
          },
          "operator": {
            "type": "string",
            "description": "Defines the operator used in the filter. Available operators are defined in the API documentation.",
            "example": "EQUALS"
          },
          "value": {
            "description": "Represents the value to filter against.",
            "example": 12345
          },
          "smartContent": {
            "type": "boolean",
            "description": "When true, filter fields contain smart content placeholders resolved at runtime.",
            "example": true
          },
          "edgeProperty": {
            "type": "boolean",
            "description": "When true, propertyName refers to a property stored on the relation edge itself (declared on the relation schema, e.g. partstat on attendees) instead of a property of the related record. Requires relation and propertyName.",
            "example": false
          }
        }
      },
      "AnalyticsAxisConfig": {
        "type": "object",
        "properties": {
          "property": {
            "$ref": "#/components/schemas/AnalyticsPropertyRef"
          },
          "timeBucket": {
            "type": "string"
          },
          "timeZone": {
            "type": "string"
          },
          "windowDays": {
            "type": "integer",
            "format": "int32"
          },
          "binCount": {
            "type": "integer",
            "format": "int32"
          },
          "metric": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      },
      "AnalyticsComparisonMetric": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "mainObject": {
            "type": "string"
          },
          "filter": {
            "$ref": "#/components/schemas/Filter"
          },
          "yAxis": {
            "$ref": "#/components/schemas/AnalyticsAxisConfig"
          }
        }
      },
      "AnalyticsDashboardConfig": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "format": "int32"
          },
          "columns": {
            "type": "integer",
            "format": "int32"
          },
          "widgets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyticsWidgetConfig"
            }
          }
        }
      },
      "AnalyticsPropertyRef": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "propertyName": {
            "type": "string"
          }
        }
      },
      "AnalyticsReferenceLine": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "format": "double"
          },
          "label": {
            "type": "string"
          },
          "color": {
            "type": "string"
          }
        }
      },
      "AnalyticsSeriesConfig": {
        "type": "object",
        "properties": {
          "groupBy": {
            "$ref": "#/components/schemas/AnalyticsPropertyRef"
          }
        }
      },
      "AnalyticsTrendConfig": {
        "type": "object",
        "properties": {
          "property": {
            "$ref": "#/components/schemas/AnalyticsPropertyRef"
          },
          "windowDays": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AnalyticsWidgetConfig": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "chartType": {
            "type": "string"
          },
          "mainObject": {
            "type": "string"
          },
          "x": {
            "type": "integer",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "format": "int32"
          },
          "w": {
            "type": "integer",
            "format": "int32"
          },
          "h": {
            "type": "integer",
            "format": "int32"
          },
          "filter": {
            "$ref": "#/components/schemas/Filter"
          },
          "xAxis": {
            "$ref": "#/components/schemas/AnalyticsAxisConfig"
          },
          "yAxis": {
            "$ref": "#/components/schemas/AnalyticsAxisConfig"
          },
          "series": {
            "$ref": "#/components/schemas/AnalyticsSeriesConfig"
          },
          "comparisonMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyticsComparisonMetric"
            }
          },
          "trend": {
            "$ref": "#/components/schemas/AnalyticsTrendConfig"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "type": "string"
          },
          "excludeEmptyValues": {
            "type": "boolean"
          },
          "style": {
            "$ref": "#/components/schemas/AnalyticsWidgetStyle"
          }
        }
      },
      "AnalyticsWidgetStyle": {
        "type": "object",
        "properties": {
          "showLegend": {
            "type": "boolean"
          },
          "showGrid": {
            "type": "boolean"
          },
          "showValueLabels": {
            "type": "boolean"
          },
          "barOrientation": {
            "type": "string"
          },
          "barGrouping": {
            "type": "string"
          },
          "colors": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "referenceLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyticsReferenceLine"
            }
          }
        }
      },
      "CaraerObjectDTO": {
        "type": "object",
        "description": "Data transfer object representing a Caraer object with its configuration, properties, relations, and views",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "Unique identifier name for the object"
          },
          "label": {
            "type": "string",
            "description": "Display label for the object"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering objects"
          },
          "plural": {
            "type": "string",
            "description": "Plural form of the object's name, used for display purposes"
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the object's purpose and usage"
          },
          "groups": {
            "type": "array",
            "description": "Collection of group names this object belongs to",
            "items": {
              "type": "string"
            }
          },
          "icon": {
            "type": "string",
            "description": "Icon identifier for visual representation of the object"
          },
          "defaultTrait": {
            "type": "string",
            "description": "Name of the default trait applied to this object"
          },
          "traits": {
            "type": "array",
            "description": "List of trait names associated with this object",
            "items": {
              "type": "string"
            }
          },
          "views": {
            "type": "array",
            "description": "List of view configurations for displaying this object",
            "items": {
              "$ref": "#/components/schemas/ViewDTO"
            }
          },
          "properties": {
            "type": "array",
            "description": "List of properties defined for this object",
            "items": {
              "$ref": "#/components/schemas/PropertyDTO"
            }
          },
          "relations": {
            "type": "array",
            "description": "List of relations this object has with other objects",
            "items": {
              "$ref": "#/components/schemas/RelationDTO"
            }
          },
          "suites": {
            "type": "array",
            "description": "List of suite names this object belongs to",
            "items": {
              "type": "string"
            }
          },
          "extendsTo": {
            "type": "array",
            "description": "List of objects this object extends to",
            "items": {
              "$ref": "#/components/schemas/CaraerObjectDTO"
            }
          },
          "editable": {
            "type": "boolean",
            "description": "When false, the object schema cannot be updated or deleted via the API"
          }
        },
        "required": [
          "uuid"
        ]
      },
      "Currency": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "CurrencyRange": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "Date": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "DateRange": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "Duration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "Email": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "File": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "FilledProperty": {
        "type": "object",
        "properties": {
          "icon": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "value": {},
          "type": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      },
      "Filter": {
        "type": "object",
        "description": "DTO representing a filter composed of filter groups for querying records. The filter groups are combined using a logical OR operation. The filter items within each group are combined using a logical AND operation.",
        "properties": {
          "groups": {
            "type": "array",
            "description": "A collection of filter groups.",
            "items": {
              "$ref": "#/components/schemas/FilterGroup",
              "description": "A collection of filter groups."
            },
            "uniqueItems": true
          }
        }
      },
      "FormDTO": {
        "type": "object",
        "description": "Data transfer object representing a form with its associated properties and structure",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The associated Caraer object that this form belongs to"
          },
          "grids": {
            "type": "array",
            "description": "List of form items that make up the form's structure. Each grid represents a section or group of form elements",
            "items": {
              "$ref": "#/components/schemas/FormItemDTO"
            }
          },
          "description": {
            "type": "string",
            "description": "Descriptive text providing additional information about the form"
          },
          "styling": {
            "type": "string",
            "description": "The styling of the form. Can be 'standard', 'underline' or 'plain'"
          },
          "leadscores": {
            "type": "array",
            "description": "List of lead scoring rules associated with this form. Used to evaluate and score form submissions",
            "items": {
              "$ref": "#/components/schemas/Leadscore"
            }
          },
          "relations": {
            "type": "array",
            "description": "List of form relations that define the relationships between this form conversion record and other records in the system",
            "items": {
              "$ref": "#/components/schemas/FormRelationDTO"
            }
          },
          "wizard": {
            "type": "boolean",
            "description": "Indicates if the form should be displayed as a step-by-step wizard interface"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata associated with the form"
          },
          "thankYouMessage": {
            "type": "string",
            "description": "Thank you message to be displayed after the form is submitted"
          },
          "redirectUrl": {
            "type": "string",
            "description": "Redirect URL to be displayed after the form is submitted"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "FormItemDTO": {
        "type": "object",
        "description": "Represents a section or group within a form, containing a grid of form elements",
        "properties": {
          "aiprompt": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "description": "The title or heading of this form section"
          },
          "description": {
            "type": "string",
            "description": "Additional descriptive text explaining the purpose or instructions for this section"
          },
          "type": {
            "type": "string",
            "description": "The type of form section (e.g., 'grid', 'section', etc.)"
          },
          "AIPrompt": {
            "type": "string",
            "description": "The AI prompt for the form section. Only applicable to steps."
          },
          "grid": {
            "type": "array",
            "description": "A two-dimensional array representing the layout of form elements. Each inner list represents a row of elements",
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/GridItemDTO"
              }
            }
          }
        }
      },
      "FormRelationDTO": {
        "type": "object",
        "description": "Data transfer object representing a form relation",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the form relation. The options are: CONVERSION_PAGE_RECORD, RELATED_RECORD_TO_CONVERSION_PAGE_RECORD, STATIC",
            "example": "CONVERSION_PAGE_RECORD"
          },
          "relation": {
            "$ref": "#/components/schemas/RelationDTO",
            "description": "The relation to be created."
          },
          "relatedRelation": {
            "$ref": "#/components/schemas/RelationDTO",
            "description": "The related relation associated with conversion page record"
          },
          "relatedObject": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The related object associated with conversion page record or for static"
          },
          "recordUuid": {
            "type": "string",
            "description": "UUID of the record for the static connection.",
            "example": "fc453abc-123e-4567-890a-6789abcd1234"
          },
          "relatedObjectConnection": {
            "type": "string",
            "description": "The connection type for the related object. The options are: PRIMARY, ALL",
            "example": "PRIMARY"
          }
        }
      },
      "GridItemDTO": {
        "type": "object",
        "description": "Represents a single cell within a form grid, which can contain a property, text, nested form, or other form elements",
        "properties": {
          "property": {
            "$ref": "#/components/schemas/PropertyDTO",
            "description": "The property associated with this grid item, typically representing a form field or input"
          },
          "text": {
            "type": "string",
            "description": "Static text content to be displayed in this grid cell"
          },
          "form": {
            "$ref": "#/components/schemas/FormDTO",
            "description": "A nested form that can be embedded within this grid cell"
          },
          "submitButton": {
            "type": "string",
            "description": "The text of the submit button for this grid item"
          },
          "settings": {
            "$ref": "#/components/schemas/GridItemSettingsDTO",
            "description": "Configuration settings for this grid item, including display and validation rules"
          },
          "value": {
            "type": "string",
            "description": "The value of this grid item, used for form submissions"
          }
        }
      },
      "GridItemSettingsDTO": {
        "type": "object",
        "description": "Configuration settings for a grid item in a form, including property settings and form-related settings",
        "properties": {
          "relation": {
            "$ref": "#/components/schemas/RelationDTO",
            "description": "Defines the relationship between this form field and other entities or forms"
          },
          "record": {
            "$ref": "#/components/schemas/Record",
            "description": "UUID of a record to be pre-filled in this form field"
          },
          "aiprompt": {
            "type": "string"
          },
          "label": {
            "type": "string",
            "description": "The display label for the form field"
          },
          "defaultValue": {
            "type": "string",
            "description": "The default value to be pre-filled in the form field"
          },
          "isRequired": {
            "type": "boolean",
            "description": "Indicates whether this field must be filled out before form submission"
          },
          "hidden": {
            "type": "boolean",
            "description": "Indicates whether this field should be hidden from view"
          },
          "placeholder": {
            "type": "string",
            "description": "The placeholder text for the form field"
          },
          "helpText": {
            "type": "string",
            "description": "The help text for the form field"
          },
          "AIPrompt": {
            "type": "string",
            "description": "The AI prompt for the form field. Only applicable to text fields."
          },
          "styling": {
            "type": "string",
            "description": "The styling for the form field. Can be 'dropdown', 'grid' or 'boxes'"
          },
          "stretch": {
            "type": "boolean",
            "description": "Whether the form field should be stretched to the full width of the form"
          },
          "align": {
            "type": "string",
            "description": "The alignment of the form field. Can be 'left', 'center' or 'right'"
          },
          "rangeMin": {
            "type": "integer",
            "format": "int32",
            "description": "The minimum value for the slider field"
          },
          "rangeMax": {
            "type": "integer",
            "format": "int32",
            "description": "The maximum value for the slider field"
          }
        }
      },
      "Leadscore": {
        "type": "object",
        "description": "DTO representing a lead score rule",
        "properties": {
          "object": {
            "type": "string",
            "description": "The name of the object to which this pagination item belongs.",
            "example": "User"
          },
          "relation": {
            "type": "string",
            "description": "The relationship between objects.",
            "example": "hasProperty"
          },
          "relationDirection": {
            "type": "string",
            "description": "Optional relation direction: outgoing (related→main), incoming (main→related), or omit for undirected.",
            "example": "outgoing"
          },
          "property": {
            "type": "string",
            "description": "The name of the property within the object.",
            "example": "email"
          },
          "relationIncluded": {
            "type": "boolean",
            "description": "Specifies whether the relation is included.",
            "example": true
          },
          "operator": {
            "type": "string",
            "description": "Defines the operator used in the filter. Available operators are defined in the API documentation.",
            "example": "EQUALS"
          },
          "value": {
            "description": "Represents the value to filter against.",
            "example": 12345
          },
          "smartContent": {
            "type": "boolean",
            "description": "When true, filter fields contain smart content placeholders resolved at runtime.",
            "example": true
          },
          "edgeProperty": {
            "type": "boolean",
            "description": "When true, propertyName refers to a property stored on the relation edge itself (declared on the relation schema, e.g. partstat on attendees) instead of a property of the related record. Requires relation and propertyName.",
            "example": false
          },
          "smart_value": {
            "type": "boolean",
            "description": "Whether the value is a smart value",
            "example": true
          },
          "score": {
            "type": "integer",
            "format": "int32",
            "description": "The score to assign if the rule is met",
            "example": 10
          }
        }
      },
      "LinkedProperty": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          },
          {
            "type": "object",
            "properties": {
              "linkedProperty": {
                "$ref": "#/components/schemas/PropertyDTO"
              }
            }
          }
        ]
      },
      "Location": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "MapLocationDTO": {
        "type": "object",
        "description": "A map marker from one source: custom lat/lng, a page location property, or an object",
        "properties": {
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "propertyUuid": {
            "type": "string",
            "description": "UUID of a location property"
          },
          "propertyName": {
            "type": "string",
            "description": "Name of a location property (fallback if uuid missing)"
          },
          "objectUuid": {
            "type": "string",
            "description": "When set, resolve markers from published records of this object. Exclusive with propertyUuid and custom lat/lng."
          },
          "objectName": {
            "type": "string",
            "description": "Object name fallback when uuid is missing"
          },
          "icon": {
            "type": "string",
            "description": "FontAwesome icon key for the marker"
          },
          "iconColor": {
            "type": "string",
            "description": "Marker icon color (hex or rgba)"
          },
          "iconBackgroundColor": {
            "type": "string",
            "description": "Marker pin background fill color (hex or rgba)"
          },
          "markerSize": {
            "type": "number",
            "format": "double",
            "description": "Marker pin size in CSS pixels"
          },
          "iconSize": {
            "type": "number",
            "format": "double",
            "description": "Marker glyph size in CSS pixels"
          },
          "label": {
            "type": "string",
            "description": "Text shown when hovering the marker (supports smart content)"
          },
          "labelPropertyUuid": {
            "type": "string",
            "description": "UUID of a property whose value is shown as hover text"
          },
          "labelPropertyName": {
            "type": "string",
            "description": "Name of a property whose value is shown as hover text"
          },
          "hoverPreviewUuid": {
            "type": "string",
            "description": "UUID of the preview shown when hovering a bound marker"
          },
          "hoverPreviewName": {
            "type": "string",
            "description": "Name of the preview shown when hovering a bound marker"
          },
          "recordUuid": {
            "type": "string",
            "description": "Record this concrete public marker was resolved from"
          },
          "clickLinkType": {
            "type": "string",
            "description": "Marker click target: liveUrl, custom, or unset"
          },
          "clickLinkUrl": {
            "type": "string",
            "description": "Custom URL used when clickLinkType is custom"
          },
          "clickLinkOpenInNewWindow": {
            "type": "boolean",
            "description": "Open the marker link in a new tab"
          },
          "href": {
            "type": "string",
            "description": "Resolved public URL for this concrete marker"
          },
          "filterProperties": {
            "type": "array",
            "description": "Properties exposed as public filters for object-bound markers",
            "items": {
              "$ref": "#/components/schemas/PropertyDTO"
            }
          },
          "filterValues": {
            "type": "object",
            "additionalProperties": {},
            "description": "Resolved property values used to filter this concrete marker"
          }
        }
      },
      "MultiFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "MultiLine": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "MultiSelect": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "Number": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "NumberRange": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "PageContentDTO": {
        "type": "object",
        "description": "Data transfer object representing a webpage content",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "category": {
            "type": "string",
            "description": "Category of the content"
          },
          "parentUuid": {
            "type": "string",
            "description": "Unique identifier for the parent content"
          },
          "type": {
            "type": "string",
            "description": "Type of the content ('box' or 'component')"
          },
          "display": {
            "type": "string",
            "description": "Display of the content for box ('column', 'row' or 'wrap') and for component ()"
          },
          "text": {
            "type": "string",
            "description": "Text content of the content"
          },
          "customCss": {
            "type": "string",
            "description": "Direct CSS for this content node, scoped to data-component-uuid at render time"
          },
          "styling": {
            "$ref": "#/components/schemas/PageContentStylingDTO",
            "description": "Styling of the content"
          },
          "settings": {
            "$ref": "#/components/schemas/PageContentSettingsDTO",
            "description": "Settings for the content"
          },
          "children": {
            "type": "array",
            "description": "Children of the content",
            "items": {
              "$ref": "#/components/schemas/PageContentDTO"
            }
          },
          "scope": {
            "type": "string",
            "description": "Module storage scope: company or personal"
          },
          "moduleKind": {
            "type": "string",
            "description": "Module kind: content (section/component) or page (full page design)"
          },
          "pageCustomCss": {
            "type": "string",
            "description": "Page-level custom CSS for page modules"
          },
          "pageCustomJsHead": {
            "type": "string",
            "description": "Page-level custom JS for the head for page modules"
          },
          "pageCustomJsBody": {
            "type": "string",
            "description": "Page-level custom JS for the body for page modules"
          },
          "sidebarUuid": {
            "type": "string",
            "description": "Sidebar preview UUID for page modules"
          },
          "sidebarRelationUuid": {
            "type": "string",
            "description": "Sidebar relation UUID for page modules"
          },
          "sidebarObjectUuid": {
            "type": "string",
            "description": "Sidebar object UUID for page modules"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "PageContentSettingsDTO": {
        "type": "object",
        "description": "Data transfer object representing the settings for a content",
        "properties": {
          "form": {
            "$ref": "#/components/schemas/FormDTO",
            "description": "The form associated with the content"
          },
          "openIcon": {
            "type": "string",
            "description": "The icon to display when the accordion is open"
          },
          "closeIcon": {
            "type": "string",
            "description": "The icon to display when the accordion is closed"
          },
          "alt": {
            "type": "string",
            "description": "The alt text of the image"
          },
          "key": {
            "type": "string",
            "description": "The key of the image"
          },
          "playVideo": {
            "type": "boolean",
            "description": "Whether the video should play automatically"
          },
          "startMuted": {
            "type": "boolean",
            "description": "Whether the image should start muted"
          },
          "loopVideo": {
            "type": "boolean",
            "description": "Whether the video should loop"
          },
          "startOffset": {
            "type": "integer",
            "format": "int32",
            "description": "The start offset of the video"
          },
          "link": {
            "type": "string",
            "description": "The link of the button"
          },
          "style": {
            "type": "string",
            "description": "The style of the button. Primary, secondary, tertiary or custom"
          },
          "ctaId": {
            "type": "string",
            "description": "Optional CTA tracking identifier for CMS buttons"
          },
          "openInNewWindow": {
            "type": "boolean",
            "description": "Whether the link should open in a new window"
          },
          "sliderType": {
            "type": "string",
            "description": "The slider type. Dots, arrows and swipe"
          },
          "carouselSpeed": {
            "type": "number",
            "format": "double",
            "description": "The carousel speed."
          },
          "enableControls": {
            "type": "boolean",
            "description": "Whether carousel prev/next controls are shown"
          },
          "previewObject": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The object of the previews"
          },
          "previews": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/PreviewDTO"
            },
            "description": "The previews associated with the layouts"
          },
          "previewLayoutOrder": {
            "type": "array",
            "description": "The order of preview layouts",
            "items": {
              "type": "string"
            }
          },
          "filter": {
            "$ref": "#/components/schemas/Filter",
            "description": "The filter associated with the settings"
          },
          "orderBy": {
            "$ref": "#/components/schemas/PropertyDTO",
            "description": "The order by property associated with the settings"
          },
          "orderByDirection": {
            "type": "string",
            "description": "The order by direction associated with the settings. ASC or DESC, default is ASC"
          },
          "asWebpages": {
            "type": "boolean",
            "description": "Whether the previews should be shown as webpages"
          },
          "loop": {
            "type": "boolean",
            "description": "Whether the previews should loop"
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "The limit associated with the settings"
          },
          "groupBy": {
            "$ref": "#/components/schemas/PropertyDTO",
            "description": "The group by property associated with the settings"
          },
          "hideOnNoResults": {
            "type": "boolean",
            "description": "Whether the previews should be hidden when there are no results"
          },
          "filterType": {
            "type": "string",
            "description": "The type of the filter block. left_bar or top_search"
          },
          "searchResultSingleString": {
            "type": "string",
            "description": "The single result string of the filter block"
          },
          "searchResultPluralString": {
            "type": "string",
            "description": "The Plural result string of the filter block"
          },
          "noResultsString": {
            "type": "string",
            "description": "The no results string of the filter block"
          },
          "searchFieldEnabled": {
            "type": "boolean",
            "description": "Whether the search field should be enabled"
          },
          "searchFieldPlaceholder": {
            "type": "string",
            "description": "The placeholder of the search field"
          },
          "filterBlockEnabled": {
            "type": "boolean",
            "description": "Whether the filter block should be enabled"
          },
          "filterTitle": {
            "type": "string",
            "description": "The title of the filter block"
          },
          "filterSubtitle": {
            "type": "string",
            "description": "The subtitle of the filter block"
          },
          "filterProperties": {
            "type": "array",
            "description": "The properties of the filter block",
            "items": {
              "$ref": "#/components/schemas/PropertyDTO"
            }
          },
          "enableFilterTiles": {
            "type": "boolean",
            "description": "Whether the filter tiles should be enabled"
          },
          "enableFilterQuery": {
            "type": "boolean",
            "description": "Whether the filter query should be enabled"
          },
          "enableRemoveAllFiltersButton": {
            "type": "boolean",
            "description": "Whether the remove all filters button should be enabled"
          },
          "ctaEnabled": {
            "type": "boolean",
            "description": "Whether the CTA should be enabled"
          },
          "ctaTitle": {
            "type": "string",
            "description": "The title of the CTA"
          },
          "ctaText": {
            "type": "string",
            "description": "The text of the CTA"
          },
          "ctaButtonText": {
            "type": "string",
            "description": "The button text of the CTA"
          },
          "ctaButtonLink": {
            "type": "string",
            "description": "The button link of the CTA"
          },
          "targetPagePath": {
            "type": "string",
            "description": "Public path of the page that owns the linked preview, for the search component"
          },
          "targetPageUuid": {
            "type": "string",
            "description": "Webpage uuid of the page that owns the linked preview"
          },
          "targetPreviewUuid": {
            "type": "string",
            "description": "Page content uuid of the preview component the search component links to"
          },
          "platforms": {
            "type": "array",
            "description": "The platforms shown in the share component",
            "items": {
              "type": "string"
            }
          },
          "mapLatitude": {
            "type": "number",
            "format": "double",
            "description": "Latitude for the map component"
          },
          "mapLongitude": {
            "type": "number",
            "format": "double",
            "description": "Longitude for the map component"
          },
          "mapLocations": {
            "type": "array",
            "description": "Multiple map markers",
            "items": {
              "$ref": "#/components/schemas/MapLocationDTO"
            }
          },
          "distanceFilterEnabled": {
            "type": "boolean",
            "description": "Show a public distance-from-location filter on this map"
          },
          "locationContainsFilterEnabled": {
            "type": "boolean",
            "description": "Show a public contains filter for city, street, or postcode on this map"
          }
        }
      },
      "PageContentStylingDTO": {
        "type": "object",
        "properties": {
          "all": {
            "$ref": "#/components/schemas/StyleSetDTO",
            "description": "The style set for all devices"
          },
          "mobile": {
            "$ref": "#/components/schemas/StyleSetDTO",
            "description": "The style set for the mobile device"
          },
          "tablet": {
            "$ref": "#/components/schemas/StyleSetDTO",
            "description": "The style set for the tablet device"
          },
          "desktop": {
            "$ref": "#/components/schemas/StyleSetDTO",
            "description": "The style set for the desktop device"
          }
        }
      },
      "Phone": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "PreviewDTO": {
        "type": "object",
        "description": "Data transfer object representing a preview entity",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the preview",
            "example": "Preview description example"
          },
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The Caraer object associated with this preview"
          },
          "recordUuid": {
            "type": "string",
            "description": "UUID of the associated record",
            "example": "abcdef12-3456-7890-abcd-ef1234567890"
          },
          "primary": {
            "type": "boolean",
            "description": "Indicates whether this preview is the primary one",
            "example": true
          },
          "edgeProperties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Values stored on the relation edge for properties declared on the relation schema. Only present when the preview was loaded through such a relation.",
            "example": {
              "partstat": "ACCEPTED"
            }
          },
          "grid": {
            "type": "array",
            "description": "Rows of the preview grid",
            "items": {
              "type": "array",
              "description": "Two-dimensional grid representing the layout of preview items",
              "items": {
                "$ref": "#/components/schemas/PreviewItemDTO"
              }
            },
            "maxItems": 2147483647
          },
          "previewType": {
            "type": "string",
            "description": "Preview type",
            "example": "detail"
          },
          "profileImage": {
            "$ref": "#/components/schemas/PropertyDTO",
            "description": "Profile image property"
          },
          "profileImagePosition": {
            "type": "string",
            "description": "Profile image position (top, left, right, bottom, background)",
            "example": "top"
          },
          "profileImageStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO",
            "description": "Style set for the profile image"
          },
          "firstInitialProperty": {
            "$ref": "#/components/schemas/PropertyDTO",
            "description": "First initial property"
          },
          "secondInitialProperty": {
            "$ref": "#/components/schemas/PropertyDTO",
            "description": "Second initial property"
          },
          "profileImageValue": {
            "type": "string",
            "description": "Value of the profile image"
          },
          "firstInitialPropertyValue": {
            "type": "string",
            "description": "Value of the first initial property"
          },
          "secondInitialPropertyValue": {
            "type": "string",
            "description": "Value of the second initial property"
          },
          "customCss": {
            "type": "string",
            "description": "Custom CSS styles for the preview"
          },
          "url": {
            "type": "string",
            "description": "URL of the preview"
          },
          "styling": {
            "$ref": "#/components/schemas/PageContentStylingDTO",
            "description": "The styling of the preview"
          },
          "sortProperty": {
            "type": "string",
            "description": "Property name used for server-side list sorting"
          },
          "sortValue": {
            "description": "Raw stored value of the sort property for this record"
          },
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "PreviewItemDTO": {
        "type": "object",
        "description": "Data Transfer Object for PreviewItem, used for transferring preview details.",
        "properties": {
          "property": {
            "$ref": "#/components/schemas/PropertyDTO",
            "description": "The property details associated with the preview item."
          },
          "text": {
            "type": "string",
            "description": "The text content associated with the preview item.",
            "example": "Sample text"
          },
          "value": {
            "description": "The value associated with the preview item. This can hold custom data."
          },
          "relatedObject": {
            "$ref": "#/components/schemas/PreviewRelatedObjectDTO",
            "description": "The related object information for the preview item."
          },
          "relatedObjectValue": {
            "description": "The related object value associated with this preview item."
          },
          "divider": {
            "type": "string",
            "description": "Whether the preview item is a divider. (solid, dashed, dotted, spacer)",
            "example": "solid"
          },
          "buttonText": {
            "type": "string",
            "description": "The button text associated with the preview item.",
            "example": "Sample text"
          },
          "buttonUrl": {
            "type": "string",
            "description": "The button url associated with the preview item.",
            "example": "https://www.google.com"
          },
          "buttonTextValue": {
            "description": "The button text value associated with the preview item."
          },
          "buttonUrlValue": {
            "description": "The button value associated with the preview item."
          },
          "settings": {
            "$ref": "#/components/schemas/PreviewItemSettingsDTO",
            "description": "The settings associated with the preview item."
          },
          "styling": {
            "$ref": "#/components/schemas/PageContentStylingDTO",
            "description": "The styling associated with the preview item."
          }
        }
      },
      "PreviewItemSettingsDTO": {
        "type": "object",
        "description": "Data Transfer Object for PreviewItemSettings, used for transferring preview item settings.",
        "properties": {
          "showIcon": {
            "type": "boolean",
            "description": "Whether the preview item should show the icon."
          },
          "iconPadding": {
            "type": "number",
            "format": "double",
            "description": "The padding of the icon."
          },
          "iconColor": {
            "type": "string",
            "description": "The color of the icon."
          },
          "iconSize": {
            "type": "number",
            "format": "double",
            "description": "The size of the icon."
          },
          "defaultValue": {
            "type": "string",
            "description": "The default value of the preview item."
          },
          "editable": {
            "type": "boolean",
            "description": "Whether this preview property is editable inline."
          },
          "helpText": {
            "type": "string",
            "description": "The help text of the preview item."
          },
          "paragraph": {
            "type": "string",
            "description": "The paragraph of the preview item p, h1, h2, h3, h4, h5, h6."
          },
          "showColor": {
            "type": "boolean",
            "description": "Whether the preview item should show the color of the select option."
          },
          "showBorder": {
            "type": "boolean",
            "description": "Whether the preview item should show the border around the select option."
          },
          "buttonType": {
            "type": "string",
            "description": "What type the button should be (primary, secondary or tertiary)"
          },
          "showFavicon": {
            "type": "boolean",
            "description": "Whether to show the favicon of the button URL."
          }
        }
      },
      "PreviewRelatedObjectDTO": {
        "type": "object",
        "description": "Data transfer object representing a PreviewRelatedObject, constructed using related object and relation data.",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The related object data."
          },
          "relation": {
            "$ref": "#/components/schemas/RelationDTO",
            "description": "The type of relation between objects."
          }
        }
      },
      "Progress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          },
          {
            "type": "object",
            "properties": {
              "checkboxProperty": {
                "$ref": "#/components/schemas/PropertyDTO"
              }
            }
          }
        ]
      },
      "PropertyDTO": {
        "type": "object",
        "description": "Data transfer object representing a property with its configuration and metadata",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name identifier of the property"
          },
          "label": {
            "type": "string",
            "description": "Display label for the property"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the property's purpose and usage"
          },
          "type": {
            "type": "string",
            "description": "The data type of the property (e.g., 'string', 'number', 'date', etc.)"
          },
          "options": {
            "type": "array",
            "description": "List of predefined options for properties that support selection",
            "items": {
              "$ref": "#/components/schemas/PropertyOption"
            }
          },
          "group": {
            "type": "string",
            "description": "Group name for organizing related properties"
          },
          "format": {
            "description": "Format configuration for the property's display and validation",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Currency"
              },
              {
                "$ref": "#/components/schemas/CurrencyRange"
              },
              {
                "$ref": "#/components/schemas/Date"
              },
              {
                "$ref": "#/components/schemas/DateRange"
              },
              {
                "$ref": "#/components/schemas/Duration"
              },
              {
                "$ref": "#/components/schemas/Email"
              },
              {
                "$ref": "#/components/schemas/File"
              },
              {
                "$ref": "#/components/schemas/LinkedProperty"
              },
              {
                "$ref": "#/components/schemas/Location"
              },
              {
                "$ref": "#/components/schemas/MultiFile"
              },
              {
                "$ref": "#/components/schemas/MultiLine"
              },
              {
                "$ref": "#/components/schemas/MultiSelect"
              },
              {
                "$ref": "#/components/schemas/Number"
              },
              {
                "$ref": "#/components/schemas/NumberRange"
              },
              {
                "$ref": "#/components/schemas/Phone"
              },
              {
                "$ref": "#/components/schemas/Progress"
              },
              {
                "$ref": "#/components/schemas/Recurrence"
              },
              {
                "$ref": "#/components/schemas/SingleCheckbox"
              },
              {
                "$ref": "#/components/schemas/SingleLine"
              },
              {
                "$ref": "#/components/schemas/SingleSelect"
              },
              {
                "$ref": "#/components/schemas/Structure"
              },
              {
                "$ref": "#/components/schemas/Tag"
              },
              {
                "$ref": "#/components/schemas/Url"
              }
            ]
          },
          "rules": {
            "type": "array",
            "description": "Collection of validation rules applied to the property",
            "items": {
              "type": "string"
            }
          },
          "immutable": {
            "type": "boolean",
            "description": "Indicates if the property value cannot be modified after initial creation"
          },
          "hidden": {
            "type": "boolean",
            "description": "Indicates if the property should be hidden from view"
          },
          "lifecycleActive": {
            "type": "boolean",
            "description": "When true, property value changes are tracked as lifecycle records"
          },
          "requiredFilter": {
            "$ref": "#/components/schemas/Filter",
            "description": "When this filter matches the record being saved, the property becomes required"
          },
          "nonPublic": {
            "type": "boolean",
            "description": "Indicates if the property should be excluded from public APIs"
          },
          "indexed": {
            "type": "boolean",
            "description": "Indicates if the property should be indexed for searching"
          },
          "editable": {
            "type": "boolean",
            "description": "Indicates if the property value can be modified"
          },
          "formatSettings": {
            "type": "object",
            "additionalProperties": {},
            "description": "Additional format-specific settings for the property"
          },
          "usedIn": {
            "$ref": "#/components/schemas/UsedInResult",
            "description": "Information about where this property is used in the system"
          },
          "icon": {
            "type": "string",
            "description": "Icon identifier for visual representation of the property"
          },
          "webpagePublic": {
            "type": "boolean",
            "description": "Indicates if the property can be used in webpages"
          },
          "embeddable": {
            "type": "boolean",
            "deprecated": true,
            "description": "Indicates if the property can be embedded in other properties"
          },
          "sensitive": {
            "type": "boolean",
            "description": "When true, exclude from advanced query evidence"
          },
          "minAndMaxValue": {
            "$ref": "#/components/schemas/Tuple2LongLong",
            "description": "The minimum and maximum value of the property"
          },
          "pinned": {
            "type": "boolean",
            "description": "Indicates if the property is pinned by the logged-in user"
          }
        },
        "required": [
          "uuid"
        ]
      },
      "PropertyFormat": {
        "type": "object",
        "discriminator": {
          "propertyName": "name"
        },
        "properties": {
          "label": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "settings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettingField"
            }
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PropertyOption": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "disabled": {
            "type": "boolean"
          },
          "completed": {
            "type": "boolean"
          },
          "usedIn": {
            "$ref": "#/components/schemas/UsedInResult"
          }
        }
      },
      "PublicUserDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "firstname": {
            "type": "string"
          },
          "lastname": {
            "type": "string"
          },
          "initials": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filters": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Filter"
            }
          },
          "role": {
            "type": "string"
          },
          "record": {
            "$ref": "#/components/schemas/Record"
          }
        }
      },
      "Record": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "label": {
            "type": "string"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64"
          },
          "createdByUuid": {
            "type": "string"
          },
          "updatedByUuid": {
            "type": "string"
          },
          "deletedByUuid": {
            "type": "string"
          },
          "index": {
            "type": "integer",
            "format": "int32"
          },
          "deleted": {
            "type": "boolean"
          },
          "complete": {
            "type": "boolean"
          },
          "uuid": {
            "type": "string",
            "minLength": 1
          },
          "properties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FilledProperty"
            }
          },
          "objects": {
            "type": "object",
            "additionalProperties": {}
          },
          "user": {
            "$ref": "#/components/schemas/PublicUserDTO"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "Recurrence": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "RelationDTO": {
        "type": "object",
        "description": "Data transfer object representing a relation between Caraer objects",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "Unique identifier name for the relation"
          },
          "label": {
            "type": "string",
            "description": "Display label for the relation"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the relation's purpose and usage"
          },
          "objects": {
            "type": "array",
            "description": "Set of Caraer objects that are part of this relation",
            "items": {
              "$ref": "#/components/schemas/CaraerObjectDTO"
            },
            "uniqueItems": true
          },
          "immutable": {
            "type": "boolean",
            "description": "Whether the relation is immutable"
          },
          "editable": {
            "type": "boolean",
            "description": "Whether the relation is editable"
          }
        },
        "required": [
          "uuid"
        ]
      },
      "SettingField": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "helpText": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "STRING",
              "NUMBER",
              "SINGLE_SELECT",
              "MULTI_SELECT",
              "DATE",
              "FILE"
            ]
          },
          "required": {
            "type": "boolean"
          },
          "dynamic": {
            "type": "boolean"
          },
          "hidden": {
            "type": "boolean"
          },
          "disabled": {
            "type": "boolean"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettingOption"
            }
          },
          "value": {},
          "defaultValue": {}
        }
      },
      "SettingOption": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "helpText": {
            "type": "string"
          },
          "preview": {
            "type": "string"
          }
        }
      },
      "ShowItem": {
        "type": "object",
        "description": "DTO representing an item with properties defined for displaying and handling in UI related operations.",
        "properties": {
          "object": {
            "type": "string",
            "description": "The name of the object to which this pagination item belongs.",
            "example": "User"
          },
          "relation": {
            "type": "string",
            "description": "The relationship between objects.",
            "example": "hasProperty"
          },
          "relationDirection": {
            "type": "string",
            "description": "Optional relation direction: outgoing (related→main), incoming (main→related), or omit for undirected.",
            "example": "outgoing"
          },
          "property": {
            "type": "string",
            "description": "The name of the property within the object.",
            "example": "email"
          },
          "separator": {
            "type": "string",
            "description": "Separator string used to visually separate this item.",
            "example": "|"
          },
          "sticky": {
            "type": "boolean",
            "default": false,
            "description": "Flag indicating whether this item is sticky and will stay fixed in the list."
          },
          "width": {
            "type": "integer",
            "format": "int32",
            "description": "Width of the item in pixels.",
            "example": 100
          },
          "calculationFunction": {
            "type": "string",
            "description": "Calculation function used to calculate the value of the item.",
            "example": "max"
          },
          "calculationResult": {
            "description": "Result of the calculation.",
            "example": 100
          }
        }
      },
      "SingleCheckbox": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "SingleLine": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "SingleSelect": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "SortItem": {
        "type": "object",
        "description": "Represents a sortable item, including object, relation, property, and sort direction.",
        "properties": {
          "object": {
            "type": "string",
            "description": "The name of the object to which this pagination item belongs.",
            "example": "User"
          },
          "relation": {
            "type": "string",
            "description": "The relationship between objects.",
            "example": "hasProperty"
          },
          "relationDirection": {
            "type": "string",
            "description": "Optional relation direction: outgoing (related→main), incoming (main→related), or omit for undirected.",
            "example": "outgoing"
          },
          "property": {
            "type": "string",
            "description": "The name of the property within the object.",
            "example": "email"
          },
          "direction": {
            "type": "string",
            "description": "The direction for sorting. Can be ASC (ascending) or DESC (descending).",
            "enum": [
              "ASC",
              "DESC"
            ],
            "example": "ASC"
          }
        }
      },
      "Structure": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "StyleSetDTO": {
        "type": "object",
        "properties": {
          "hide": {
            "type": "boolean"
          },
          "customID": {
            "type": "string"
          },
          "customClass": {
            "type": "string"
          },
          "customAnchor": {
            "type": "string"
          },
          "spacing": {},
          "directionLTR": {
            "type": "boolean"
          },
          "alignContent": {
            "type": "string"
          },
          "alignItems": {
            "type": "string"
          },
          "justifyContent": {
            "type": "string"
          },
          "alignSelf": {
            "type": "string"
          },
          "flexWrap": {
            "type": "string"
          },
          "flexDirection": {
            "type": "string"
          },
          "overflow": {
            "type": "string"
          },
          "transformX": {},
          "transformY": {},
          "topMargin": {},
          "bottomMargin": {},
          "leftMargin": {},
          "rightMargin": {},
          "topPadding": {},
          "bottomPadding": {},
          "leftPadding": {},
          "rightPadding": {},
          "fullWidthEnabled": {
            "type": "boolean"
          },
          "maxWidth": {},
          "minWidth": {},
          "width": {},
          "flex": {
            "type": "integer",
            "format": "int32"
          },
          "minHeight": {},
          "maxHeight": {},
          "height": {},
          "borderRadiusTopLeft": {},
          "borderRadiusTopRight": {},
          "borderRadiusBottomLeft": {},
          "borderRadiusBottomRight": {},
          "borderWidthTop": {},
          "borderWidthBottom": {},
          "borderWidthLeft": {},
          "borderWidthRight": {},
          "borderColorTop": {
            "type": "string"
          },
          "borderColorBottom": {
            "type": "string"
          },
          "borderColorLeft": {
            "type": "string"
          },
          "borderColorRight": {
            "type": "string"
          },
          "borderStyleTop": {
            "type": "string"
          },
          "borderStyleBottom": {
            "type": "string"
          },
          "borderStyleLeft": {
            "type": "string"
          },
          "borderStyleRight": {
            "type": "string"
          },
          "backgroundVideo": {
            "type": "string"
          },
          "backgroundImage": {
            "type": "string"
          },
          "backgroundMediaRepeat": {
            "type": "string"
          },
          "backgroundMediaFit": {
            "type": "string"
          },
          "backgroundMediaSizeWidth": {},
          "backgroundMediaSizeHeight": {},
          "backgroundMediaPosition": {
            "type": "string"
          },
          "backgroundMediaScroll": {
            "type": "string"
          },
          "backgroundMediaParallax": {
            "type": "boolean"
          },
          "backgroundMediaAutoPlay": {
            "type": "boolean"
          },
          "backgroundMediaMuted": {
            "type": "boolean"
          },
          "backgroundMediaLoop": {
            "type": "boolean"
          },
          "backgroundColorOverlayColor": {
            "type": "string"
          },
          "backgroundColorOverlayOpacity": {
            "type": "number",
            "format": "double"
          },
          "backgroundGradientOverlayColors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "backgroundGradientOverlayOpacity": {
            "type": "number",
            "format": "double"
          },
          "backgroundGradientOverlayDirection": {
            "type": "string"
          },
          "backgroundColor": {
            "type": "string"
          },
          "backgroundColorOffsetBottom": {},
          "backgroundColorOffsetLeft": {},
          "backgroundColorOffsetRight": {},
          "backgroundColorOffsetTop": {},
          "backgroundGradientColors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "backgroundGradientOpacity": {
            "type": "number",
            "format": "double"
          },
          "backgroundGradientDirection": {
            "type": "string"
          },
          "animationDelay": {
            "type": "number",
            "format": "double"
          },
          "animationDuration": {
            "type": "number",
            "format": "double"
          },
          "animationIn": {
            "type": "string"
          },
          "animationOut": {
            "type": "string"
          },
          "animationRepeat": {
            "type": "string"
          },
          "animationDirection": {
            "type": "string"
          },
          "animationTimingFunction": {
            "type": "string"
          },
          "animationFillMode": {
            "type": "string"
          },
          "mediaHover": {
            "type": "string"
          },
          "mediaAlignment": {
            "type": "string"
          },
          "mediaFit": {
            "type": "string"
          },
          "mediaPosition": {
            "type": "string"
          },
          "enlargeOnClickBorderRadiusTopLeft": {},
          "enlargeOnClickBorderRadiusTopRight": {},
          "enlargeOnClickBorderRadiusBottomLeft": {},
          "enlargeOnClickBorderRadiusBottomRight": {},
          "enlargeOnClickBorderWidthTop": {},
          "enlargeOnClickBorderWidthBottom": {},
          "enlargeOnClickBorderWidthLeft": {},
          "enlargeOnClickBorderWidthRight": {},
          "enlargeOnClickBorderColorTop": {
            "type": "string"
          },
          "enlargeOnClickBorderColorBottom": {
            "type": "string"
          },
          "enlargeOnClickBorderColorLeft": {
            "type": "string"
          },
          "enlargeOnClickBorderColorRight": {
            "type": "string"
          },
          "enlargeOnClickBorderStyleTop": {
            "type": "string"
          },
          "enlargeOnClickBorderStyleBottom": {
            "type": "string"
          },
          "enlargeOnClickBorderStyleLeft": {
            "type": "string"
          },
          "enlargeOnClickBorderStyleRight": {
            "type": "string"
          },
          "enlargeOnClickShadowOffsetX": {},
          "enlargeOnClickShadowOffsetY": {},
          "enlargeOnClickShadowBlur": {},
          "enlargeOnClickShadowColor": {
            "type": "string"
          },
          "enlargeOnClickShadowSpread": {},
          "enlargeOnClickShadowInset": {
            "type": "boolean"
          },
          "enlargeOnClickShadowOpacity": {
            "type": "number",
            "format": "double"
          },
          "enlargeOnClickScale": {
            "type": "number",
            "format": "double"
          },
          "shadowOffsetX": {},
          "shadowOffsetY": {},
          "shadowBlur": {},
          "shadowBorderRadiusTopLeft": {},
          "shadowBorderRadiusTopRight": {},
          "shadowBorderRadiusBottomLeft": {},
          "shadowBorderRadiusBottomRight": {},
          "shadowColor": {
            "type": "string"
          },
          "shadowSpread": {},
          "shadowInset": {
            "type": "boolean"
          },
          "shadowOpacity": {
            "type": "number",
            "format": "double"
          },
          "textGradientOverlayColors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "textGradientOverlayOpacity": {
            "type": "number",
            "format": "double"
          },
          "textGradientOverlayDirection": {
            "type": "string"
          },
          "darkTextEnabled": {
            "type": "boolean"
          },
          "textAlign": {
            "type": "string"
          },
          "transitionScrollSpeed": {
            "type": "number",
            "format": "double"
          },
          "autoRotate": {
            "type": "boolean"
          },
          "autoRotateInterval": {
            "type": "number",
            "format": "double"
          },
          "buttonIcon": {
            "type": "string"
          },
          "buttonIconPosition": {
            "type": "string"
          },
          "buttonIconColor": {
            "type": "string"
          },
          "openInNewWindow": {
            "type": "boolean"
          },
          "sidebar": {
            "type": "boolean"
          },
          "sidebarPosition": {
            "type": "string"
          },
          "sidebarAnimation": {
            "type": "string"
          },
          "sidebarAnimationDuration": {
            "type": "number",
            "format": "double"
          },
          "sidebarAnimationTimingFunction": {
            "type": "string"
          },
          "fontFamily": {
            "type": "string"
          },
          "fontSize": {},
          "fontWeight": {
            "type": "string"
          },
          "fontDecoration": {
            "type": "string"
          },
          "fontTextTransform": {
            "type": "string"
          },
          "fontLineHeight": {},
          "fontLetterSpacing": {},
          "fontColorLight": {
            "type": "string"
          },
          "fontColorDark": {
            "type": "string"
          },
          "xxLargeFontSize": {},
          "largeFontSize": {},
          "mediumFontSize": {},
          "smallFontSize": {},
          "h1FontFamily": {
            "type": "string"
          },
          "h1FontSize": {},
          "h1FontWeight": {
            "type": "string"
          },
          "h1FontDecoration": {
            "type": "string"
          },
          "h1TextTransform": {
            "type": "string"
          },
          "h1LineHeight": {},
          "h1LetterSpacing": {},
          "h1ColorLight": {
            "type": "string"
          },
          "h1ColorDark": {
            "type": "string"
          },
          "h2FontFamily": {
            "type": "string"
          },
          "h2FontSize": {},
          "h2FontWeight": {
            "type": "string"
          },
          "h2FontDecoration": {
            "type": "string"
          },
          "h2TextTransform": {
            "type": "string"
          },
          "h2LineHeight": {},
          "h2LetterSpacing": {},
          "h2ColorLight": {
            "type": "string"
          },
          "h2ColorDark": {
            "type": "string"
          },
          "h3FontFamily": {
            "type": "string"
          },
          "h3FontSize": {},
          "h3FontWeight": {
            "type": "string"
          },
          "h3FontDecoration": {
            "type": "string"
          },
          "h3TextTransform": {
            "type": "string"
          },
          "h3LineHeight": {},
          "h3LetterSpacing": {},
          "h3ColorLight": {
            "type": "string"
          },
          "h3ColorDark": {
            "type": "string"
          },
          "h4FontFamily": {
            "type": "string"
          },
          "h4FontSize": {},
          "h4FontWeight": {
            "type": "string"
          },
          "h4FontDecoration": {
            "type": "string"
          },
          "h4TextTransform": {
            "type": "string"
          },
          "h4LineHeight": {},
          "h4LetterSpacing": {},
          "h4ColorLight": {
            "type": "string"
          },
          "h4ColorDark": {
            "type": "string"
          },
          "h5FontFamily": {
            "type": "string"
          },
          "h5FontSize": {},
          "h5FontWeight": {
            "type": "string"
          },
          "h5FontDecoration": {
            "type": "string"
          },
          "h5TextTransform": {
            "type": "string"
          },
          "h5LineHeight": {},
          "h5LetterSpacing": {},
          "h5ColorLight": {
            "type": "string"
          },
          "h5ColorDark": {
            "type": "string"
          },
          "h6FontFamily": {
            "type": "string"
          },
          "h6FontSize": {},
          "h6FontWeight": {
            "type": "string"
          },
          "h6FontDecoration": {
            "type": "string"
          },
          "h6TextTransform": {
            "type": "string"
          },
          "h6LineHeight": {},
          "h6LetterSpacing": {},
          "h6ColorLight": {
            "type": "string"
          },
          "h6ColorDark": {
            "type": "string"
          },
          "navigationFontFamily": {
            "type": "string"
          },
          "navigationFontSize": {},
          "navigationFontWeight": {
            "type": "string"
          },
          "navigationFontDecoration": {
            "type": "string"
          },
          "navigationTextTransform": {
            "type": "string"
          },
          "navigationLineHeight": {},
          "navigationLetterSpacing": {},
          "navigationColorLight": {
            "type": "string"
          },
          "navigationColorDark": {
            "type": "string"
          },
          "subNavigationFontFamily": {
            "type": "string"
          },
          "subNavigationFontSize": {},
          "subNavigationFontWeight": {
            "type": "string"
          },
          "subNavigationFontDecoration": {
            "type": "string"
          },
          "subNavigationTextTransform": {
            "type": "string"
          },
          "subNavigationLineHeight": {},
          "subNavigationLetterSpacing": {},
          "subNavigationColorLight": {
            "type": "string"
          },
          "subNavigationColorDark": {
            "type": "string"
          },
          "bodyFontFamily": {
            "type": "string"
          },
          "bodyFontSize": {},
          "bodyFontWeight": {
            "type": "string"
          },
          "bodyFontDecoration": {
            "type": "string"
          },
          "bodyTextTransform": {
            "type": "string"
          },
          "bodyLineHeight": {},
          "bodyLetterSpacing": {},
          "bodyColorLight": {
            "type": "string"
          },
          "bodyColorDark": {
            "type": "string"
          },
          "hyperlinkFontFamily": {
            "type": "string"
          },
          "hyperlinkFontSize": {},
          "hyperlinkFontWeight": {
            "type": "string"
          },
          "hyperlinkFontDecoration": {
            "type": "string"
          },
          "hyperlinkTextTransform": {
            "type": "string"
          },
          "hyperlinkLineHeight": {},
          "hyperlinkLetterSpacing": {},
          "hyperlinkColorLight": {
            "type": "string"
          },
          "hyperlinkColorDark": {
            "type": "string"
          },
          "zindex": {
            "type": "integer",
            "format": "int32"
          },
          "xLargeFontSize": {},
          "xSmallFontSize": {}
        }
      },
      "Tag": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "Tuple2LongLong": {
        "type": "object",
        "properties": {
          "t1": {
            "type": "integer",
            "format": "int64"
          },
          "t2": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "Url": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PropertyFormat"
          }
        ]
      },
      "UsedInResult": {
        "type": "object",
        "properties": {
          "recordUuids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "count": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ViewDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "favorite": {
            "type": "boolean"
          },
          "team": {
            "type": "boolean"
          },
          "shared": {
            "type": "boolean"
          },
          "personal": {
            "type": "boolean"
          },
          "trait": {
            "type": "string"
          },
          "filters": {
            "$ref": "#/components/schemas/Filter"
          },
          "shows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShowItem"
            }
          },
          "sorts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SortItem"
            }
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "showIcons": {
            "type": "boolean"
          },
          "rowHeight": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "flowProperty": {
            "type": "string"
          },
          "flowPreview": {
            "type": "string"
          },
          "taskProgressProperty": {
            "type": "string"
          },
          "taskGroupProperty": {
            "type": "string"
          },
          "taskExpandSubtasks": {
            "type": "boolean"
          },
          "taskCollapsedGroupKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "taskExpandedTaskUuids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "calendarOverlay": {
            "type": "string"
          },
          "visibleCalendarUuids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "selectedCalendarUuid": {
            "type": "string"
          },
          "calendarColorBy": {
            "type": "string"
          },
          "defaultView": {
            "type": "boolean"
          },
          "isInternallyPublic": {
            "type": "boolean"
          },
          "analytics": {
            "$ref": "#/components/schemas/AnalyticsDashboardConfig"
          }
        },
        "required": [
          "uuid"
        ]
      },
      "WebpageDTO": {
        "type": "object",
        "description": "Data transfer object representing a webpage with its various states, properties, and associated form/versions",
        "properties": {
          "environment": {
            "type": "string",
            "description": "The environment of the webpage."
          },
          "uuid": {
            "type": "string",
            "description": "The UUID of the webpage."
          },
          "title": {
            "type": "string",
            "description": "The title of the webpage.",
            "example": "Homepage"
          },
          "excerpt": {
            "type": "string",
            "description": "Short summary or excerpt displayed for the webpage.",
            "example": "This is a summary of the webpage."
          },
          "slug": {
            "type": "string",
            "description": "URL-friendly identifier for the webpage.",
            "example": "homepage"
          },
          "image": {
            "type": "string",
            "description": "URL or identifier of the image associated with the webpage.",
            "example": "https://example.com/image.jpg"
          },
          "customCss": {
            "type": "string",
            "description": "Custom CSS for the webpage."
          },
          "customJsHead": {
            "type": "string",
            "description": "Custom JS for the webpage."
          },
          "customJsBody": {
            "type": "string",
            "description": "Custom JS for the webpage."
          },
          "content": {
            "$ref": "#/components/schemas/PageContentDTO",
            "description": "Content of the webpage"
          },
          "sidebar": {
            "$ref": "#/components/schemas/PreviewDTO",
            "description": "Preview of the sidebar"
          },
          "sidebarRelation": {
            "$ref": "#/components/schemas/RelationDTO",
            "description": "Relation of the sidebar"
          },
          "sidebarObject": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "Object of the sidebar"
          },
          "floatingActionBarModuleUuid": {
            "type": "string",
            "description": "UUID of the CMS module rendered as a floating action bar on this page. Null or empty disables the bar."
          },
          "floatingActionBar": {
            "$ref": "#/components/schemas/PageContentDTO",
            "description": "Hydrated module tree for the floating action bar. Set only on public page responses."
          },
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The Object object associated with the webpage, representing application data."
          },
          "record": {
            "$ref": "#/components/schemas/WebpagePublicRecordDTO",
            "description": "Webpage-public backing record values (internal + parsed). Set only on public page responses."
          },
          "options": {
            "$ref": "#/components/schemas/WebpageOptionsDTO",
            "description": "Custom options and configurations specific to the webpage."
          },
          "metaData": {
            "type": "object",
            "additionalProperties": {},
            "description": "Map of additional metadata and attributes for the webpage.",
            "example": {
              "author": "John Doe",
              "category": "blog"
            }
          },
          "publishedBy": {
            "type": "string",
            "description": "Identifier of the user or process that published the webpage"
          },
          "publishedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp representing when the webpage was published",
            "example": 1686582457000
          },
          "unpublishedBy": {
            "type": "string",
            "description": "Identifier of the user or process that unpublished the webpage"
          },
          "unpublishedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp representing when the webpage was unpublished",
            "example": 1686592457000
          },
          "publishAt": {
            "type": "integer",
            "format": "int64",
            "description": "Scheduled timestamp for when the webpage will be published",
            "example": 1686602457000
          },
          "unpublishAt": {
            "type": "integer",
            "format": "int64",
            "description": "Scheduled timestamp for when the webpage will be unpublished",
            "example": 1686702457000
          },
          "isPublished": {
            "type": "boolean",
            "default": false,
            "description": "Flag indicating whether the webpage is currently published"
          },
          "liveUrl": {
            "type": "string",
            "description": "Fully qualified public URL of the webpage, including the page trait root slug.",
            "example": "https://example.com/blog/my-page"
          }
        }
      },
      "WebpageOptionsDTO": {
        "type": "object",
        "description": "Data Transfer Object representing options for a webpage.",
        "properties": {
          "relatedToTemplate": {
            "type": "boolean",
            "description": "Indicates if the webpage is related to a template.",
            "example": true
          },
          "protectionOverride": {
            "type": "string",
            "description": "Page-level protection override: inherit, none, password, signedUrl, caraerAuth"
          },
          "passwordHash": {
            "type": "string",
            "description": "Bcrypt hash for per-page password (never returned in public APIs)"
          },
          "password": {
            "type": "string",
            "description": "Recoverable per-page password value for CMS display only"
          },
          "passwordValue": {
            "type": "string",
            "description": "Stored recoverable per-page password value for CMS display only"
          },
          "passwordSmartContent": {
            "type": "boolean",
            "description": "Whether the per-page password value should be resolved as smart content"
          },
          "hasPassword": {
            "type": "boolean",
            "description": "Whether a per-page password is configured"
          },
          "inheritedPassword": {
            "type": "string",
            "description": "Recoverable inherited shared password value for CMS display only"
          },
          "inheritedPasswordValue": {
            "type": "string",
            "description": "Stored recoverable inherited shared password value for CMS display only"
          },
          "inheritedPasswordSmartContent": {
            "type": "boolean",
            "description": "Whether the inherited shared password value should be resolved as smart content"
          },
          "inheritedHasPassword": {
            "type": "boolean",
            "description": "Whether an inherited shared password is configured"
          }
        }
      },
      "WebpagePublicRecordDTO": {
        "type": "object",
        "description": "Webpage-public record values with internal and parsed property maps",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "UUID of the webpage backing record"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Internal/plain property values keyed by property name"
          },
          "parsedProperties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Parsed/display property values keyed by property name"
          }
        }
      },
      "UpdateResponse": {
        "type": "object",
        "description": "Represents the response returned after a successful update operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CaraerErrorType": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "The error message providing details about the failure.",
            "example": "Invalid file type."
          },
          "type": {
            "type": "string",
            "description": "The type of error.",
            "enum": [
              "VALIDATION",
              "NOT_FOUND",
              "TEST",
              "RELATION_NOT_ALLOWED",
              "INVALID_VALUE",
              "GENERAL",
              "INVALID_FILE_TYPE",
              "INTERNAL_SERVER_ERROR",
              "CARAER_ERROR",
              "INVALID_EMAIL",
              "INVALID_DATE"
            ],
            "example": "INVALID_FILE_TYPE"
          },
          "correctionSuggestion": {
            "type": "string",
            "description": "A suggestion on how to correct the error.",
            "example": "Try uploading a different file type."
          }
        },
        "required": [
          "correctionSuggestion",
          "message",
          "type"
        ]
      },
      "NotFoundError": {
        "type": "object",
        "properties": {
          "cause": {
            "type": "object",
            "properties": {
              "stackTrace": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "classLoaderName": {
                      "type": "string"
                    },
                    "moduleName": {
                      "type": "string"
                    },
                    "moduleVersion": {
                      "type": "string"
                    },
                    "methodName": {
                      "type": "string"
                    },
                    "fileName": {
                      "type": "string"
                    },
                    "lineNumber": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "className": {
                      "type": "string"
                    },
                    "nativeMethod": {
                      "type": "boolean"
                    }
                  }
                }
              },
              "message": {
                "type": "string"
              },
              "localizedMessage": {
                "type": "string"
              }
            }
          },
          "stackTrace": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "classLoaderName": {
                  "type": "string"
                },
                "moduleName": {
                  "type": "string"
                },
                "moduleVersion": {
                  "type": "string"
                },
                "methodName": {
                  "type": "string"
                },
                "fileName": {
                  "type": "string"
                },
                "lineNumber": {
                  "type": "integer",
                  "format": "int32"
                },
                "className": {
                  "type": "string"
                },
                "nativeMethod": {
                  "type": "boolean"
                }
              }
            }
          },
          "errors": {
            "type": "array",
            "description": "The error message providing details about the failure.",
            "example": "Resource not found.",
            "items": {
              "$ref": "#/components/schemas/CaraerErrorType"
            }
          },
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "The HTTP status code associated with the error.",
            "example": 404
          },
          "correctionSuggestion": {
            "type": "string",
            "description": "A suggestion on how to correct the error.",
            "example": "Try uploading a different file type."
          },
          "message": {
            "type": "string",
            "description": "The error message providing details about the failure.",
            "example": "Invalid file type."
          },
          "suppressed": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "stackTrace": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "classLoaderName": {
                        "type": "string"
                      },
                      "moduleName": {
                        "type": "string"
                      },
                      "moduleVersion": {
                        "type": "string"
                      },
                      "methodName": {
                        "type": "string"
                      },
                      "fileName": {
                        "type": "string"
                      },
                      "lineNumber": {
                        "type": "integer",
                        "format": "int32"
                      },
                      "className": {
                        "type": "string"
                      },
                      "nativeMethod": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "message": {
                  "type": "string"
                },
                "localizedMessage": {
                  "type": "string"
                }
              }
            }
          },
          "localizedMessage": {
            "type": "string"
          },
          "resourceKind": {
            "type": "string"
          },
          "identifier": {
            "type": "string"
          },
          "identifierType": {
            "type": "string"
          },
          "referencedBy": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          }
        },
        "required": [
          "correctionSuggestion",
          "message"
        ]
      },
      "Reference": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "identifier": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "field": {
            "type": "string"
          }
        }
      },
      "ValidationError": {
        "type": "object",
        "properties": {
          "cause": {
            "type": "object",
            "properties": {
              "stackTrace": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "classLoaderName": {
                      "type": "string"
                    },
                    "moduleName": {
                      "type": "string"
                    },
                    "moduleVersion": {
                      "type": "string"
                    },
                    "methodName": {
                      "type": "string"
                    },
                    "fileName": {
                      "type": "string"
                    },
                    "lineNumber": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "className": {
                      "type": "string"
                    },
                    "nativeMethod": {
                      "type": "boolean"
                    }
                  }
                }
              },
              "message": {
                "type": "string"
              },
              "localizedMessage": {
                "type": "string"
              }
            }
          },
          "stackTrace": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "classLoaderName": {
                  "type": "string"
                },
                "moduleName": {
                  "type": "string"
                },
                "moduleVersion": {
                  "type": "string"
                },
                "methodName": {
                  "type": "string"
                },
                "fileName": {
                  "type": "string"
                },
                "lineNumber": {
                  "type": "integer",
                  "format": "int32"
                },
                "className": {
                  "type": "string"
                },
                "nativeMethod": {
                  "type": "boolean"
                }
              }
            }
          },
          "suppressed": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "stackTrace": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "classLoaderName": {
                        "type": "string"
                      },
                      "moduleName": {
                        "type": "string"
                      },
                      "moduleVersion": {
                        "type": "string"
                      },
                      "methodName": {
                        "type": "string"
                      },
                      "fileName": {
                        "type": "string"
                      },
                      "lineNumber": {
                        "type": "integer",
                        "format": "int32"
                      },
                      "className": {
                        "type": "string"
                      },
                      "nativeMethod": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "message": {
                  "type": "string"
                },
                "localizedMessage": {
                  "type": "string"
                }
              }
            }
          },
          "localizedMessage": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "description": "The type of error.",
            "enum": [
              "VALIDATION",
              "NOT_FOUND",
              "TEST",
              "RELATION_NOT_ALLOWED",
              "INVALID_VALUE",
              "GENERAL",
              "INVALID_FILE_TYPE",
              "INTERNAL_SERVER_ERROR",
              "CARAER_ERROR",
              "INVALID_EMAIL",
              "INVALID_DATE"
            ],
            "example": "INVALID_FILE_TYPE"
          },
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string",
            "description": "The error message providing details about the failure.",
            "example": "Invalid file type."
          },
          "correctionSuggestion": {
            "type": "string",
            "description": "A suggestion on how to correct the error.",
            "example": "Try uploading a different file type."
          },
          "class": {
            "type": "string"
          }
        },
        "required": [
          "correctionSuggestion",
          "message",
          "type"
        ]
      },
      "CmsPageDocument": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "format": "int32"
          },
          "revision": {
            "type": "integer",
            "format": "int64"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CmsPageModuleInstance"
            }
          },
          "seo": {
            "type": "object",
            "additionalProperties": {}
          },
          "title": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "excerpt": {
            "type": "string"
          },
          "css": {
            "type": "string"
          },
          "headJs": {
            "type": "string"
          },
          "bodyJs": {
            "type": "string"
          },
          "relatedToTemplate": {
            "type": "boolean"
          }
        }
      },
      "CmsPageModuleInstance": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "module": {
            "type": "string"
          },
          "fields": {
            "type": "object",
            "additionalProperties": {}
          },
          "hidden": {
            "type": "boolean"
          }
        }
      },
      "CmsPageDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "published": {
            "type": "boolean"
          },
          "document": {
            "$ref": "#/components/schemas/CmsPageDocument"
          },
          "record": {
            "$ref": "#/components/schemas/RecordSummary"
          },
          "protection": {
            "type": "object",
            "additionalProperties": {}
          },
          "locales": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "publishAt": {
            "type": "integer",
            "format": "int64"
          },
          "unpublishAt": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "RecordSummary": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "object": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {}
          },
          "parsedProperties": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "ShowResponseCmsPageDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CmsPageDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ShowResponseMapStringObject": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": {},
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ShowResponseListCmsPageDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/CmsPageDTO"
            }
          }
        }
      },
      "ShowResponseCmsPageDocument": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CmsPageDocument",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "WebMenuDTO": {
        "type": "object",
        "description": "Data transfer object representing the structure of a web menu",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "title": {
            "type": "string",
            "description": "The title of the web menu",
            "example": "Main Menu"
          },
          "active": {
            "type": "boolean",
            "description": "Indicates whether the web menu is active",
            "example": true
          },
          "environments": {
            "type": "array",
            "description": "The environments of the web menu",
            "example": [
              "production",
              "development"
            ],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "type": "string",
            "description": "The location of the web menu in the UI, e.g., 'footer_block_1' or 'header'",
            "example": "header"
          },
          "urls": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "A list of URLs represented as maps with labels and links"
            }
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebMenuItem",
              "description": "A list of items represented as maps with labels and links"
            }
          },
          "text": {
            "type": "string",
            "description": "The text of the web menu",
            "example": "Welcome to our website"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "WebMenuItem": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "image": {
            "type": "string"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "description": "Defines the structure of error responses returned by the API.",
        "properties": {
          "message": {
            "type": "string",
            "description": "The error message providing details about the failure.",
            "example": "Resource not found."
          },
          "errors": {
            "type": "array",
            "description": "A list of error types providing further details about the error.",
            "items": {
              "$ref": "#/components/schemas/CaraerErrorType",
              "description": "A list of error types providing further details about the error."
            }
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "description": "The HTTP status code associated with the error.",
            "example": 400
          },
          "stackTrace": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "description": "Roles the caller is missing when the failure is an authorization error.",
            "items": {
              "type": "string",
              "enum": [
                "USER",
                "ADMIN",
                "RESELLER",
                "DEVELOPER",
                "SUPER_ADMIN"
              ]
            }
          },
          "scopes": {
            "type": "array",
            "description": "Scopes the caller is missing when the failure is an authorization error.",
            "items": {
              "type": "string"
            }
          },
          "requestId": {
            "type": "string",
            "description": "Request correlation ID for support and log tracing.",
            "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
          }
        }
      },
      "RecordDTO": {
        "type": "object",
        "description": "Data Transfer Object for representing a record with dynamic properties.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Property values as a name→value map, or a LEGACY array of {name,type,value} objects (same shape as LEGACY GET responses).",
            "example": {
              "key1": "value1",
              "key2": 123
            }
          },
          "user": {
            "$ref": "#/components/schemas/PublicUserDTO",
            "description": "The user of the record if the user trait is enabled."
          },
          "relations": {
            "type": "array",
            "description": "Relations to create or merge after the record is saved. Each item links to an existing record (uuid) or creates a nested record first.",
            "items": {
              "$ref": "#/components/schemas/RecordRelationRequestDTO"
            }
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "RecordRelationRequestDTO": {
        "type": "object",
        "description": "Relation to create when saving a record",
        "properties": {
          "relationName": {
            "type": "string",
            "description": "Name of the relation type",
            "example": "works_at"
          },
          "uuid": {
            "type": "string",
            "description": "UUID of an existing record to link to"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Properties to update on the existing record referenced by uuid before linking"
          },
          "edgeProperties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Values for properties declared on the relation schema, stored on the relation edge itself (not on either record). Omit to leave existing edge values untouched; a null value clears a key.",
            "example": {
              "partstat": "ACCEPTED"
            }
          },
          "record": {
            "$ref": "#/components/schemas/RecordDTO",
            "description": "Nested record to create or update (by uuid or unique properties) before linking"
          },
          "objectName": {
            "type": "string",
            "description": "Object name for nested record create when relation allows multiple target types"
          },
          "primary": {
            "type": "boolean",
            "description": "When true, marks this relation edge as primary",
            "example": false
          },
          "merge": {
            "type": "boolean",
            "description": "When true, MERGE relation edge instead of CREATE",
            "example": true
          }
        },
        "required": [
          "relationName"
        ]
      },
      "Response": {},
      "Team": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "label": {
            "type": "string"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64"
          },
          "createdByUuid": {
            "type": "string"
          },
          "updatedByUuid": {
            "type": "string"
          },
          "deletedByUuid": {
            "type": "string"
          },
          "index": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filtersString": {
            "type": "string"
          },
          "filters": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Filter"
            }
          },
          "memberCount": {
            "type": "integer",
            "format": "int64"
          },
          "deleted": {
            "type": "boolean"
          },
          "complete": {
            "type": "boolean"
          },
          "uuid": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "MappingDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "sourceUrl": {
            "type": "string"
          },
          "syncRate": {
            "type": "integer",
            "format": "int32"
          },
          "active": {
            "type": "boolean"
          },
          "mappingItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MappingItemDTO"
            }
          },
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO"
          },
          "unpublishWhenNotInSource": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "MappingItemDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "sourceField": {
            "type": "string"
          },
          "targetObject": {
            "$ref": "#/components/schemas/CaraerObjectDTO"
          },
          "targetProperty": {
            "$ref": "#/components/schemas/PropertyDTO"
          },
          "conversionFunction": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "SyncDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "mappings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MappingDTO"
            }
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "BulkEditRecordItem": {
        "type": "object",
        "description": "A single record to create or update in a bulk edit request.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "UUID of an existing record to update. Omit to create a new record."
          },
          "clientRef": {
            "type": "string",
            "description": "Client-side reference for matching the item back after create (e.g. row-3)."
          },
          "properties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Property values to set on the record.",
            "example": {
              "email": "a@b.com"
            }
          },
          "relations": {
            "type": "array",
            "description": "Relations to create or merge after the record is saved. Same shape as createOrUpdate.",
            "items": {
              "$ref": "#/components/schemas/RecordRelationRequestDTO"
            }
          }
        }
      },
      "BulkEditRecordsRequest": {
        "type": "object",
        "description": "Request to create or update multiple records in one operation.",
        "properties": {
          "records": {
            "type": "array",
            "description": "Records to create or update.",
            "items": {
              "$ref": "#/components/schemas/BulkEditRecordItem"
            }
          }
        }
      },
      "BulkEditRecordErrorItem": {
        "type": "object",
        "description": "Validation or processing errors for a single record in a bulk edit operation.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "UUID of the record that failed, if known."
          },
          "clientRef": {
            "type": "string",
            "description": "Client reference echoed from the request, if provided."
          },
          "message": {
            "type": "string",
            "description": "Summary message for this record's failure."
          },
          "errors": {
            "type": "array",
            "description": "Field-level validation errors.",
            "items": {
              "$ref": "#/components/schemas/CaraerErrorType"
            }
          }
        }
      },
      "BulkEditRecordResultItem": {
        "type": "object",
        "description": "A successfully saved record from a bulk edit operation.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "UUID of the saved record."
          },
          "clientRef": {
            "type": "string",
            "description": "Client reference echoed from the request, if provided."
          },
          "created": {
            "type": "boolean",
            "description": "True when the record was created; false when updated."
          }
        }
      },
      "BulkEditRecordsData": {
        "type": "object",
        "description": "Payload of a bulk edit records response.",
        "properties": {
          "records": {
            "type": "array",
            "description": "Successfully saved records.",
            "items": {
              "$ref": "#/components/schemas/BulkEditRecordResultItem"
            }
          }
        }
      },
      "BulkEditRecordsResponse": {
        "type": "object",
        "description": "Response for a bulk create/update records operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "Result message."
          },
          "data": {
            "$ref": "#/components/schemas/BulkEditRecordsData",
            "description": "Successfully saved records."
          },
          "errors": {
            "type": "array",
            "description": "Per-record errors when one or more items failed validation.",
            "items": {
              "$ref": "#/components/schemas/BulkEditRecordErrorItem"
            }
          }
        }
      },
      "ViewShareRequest": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Record"
            }
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Record"
            }
          },
          "isInternallyPublic": {
            "type": "boolean"
          }
        }
      },
      "ShowResponseViewDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/ViewDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "SavePropertyDTO": {
        "type": "object",
        "description": "DTO representing a property to be saved",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The internal name of the property",
            "example": "property_name"
          },
          "label": {
            "type": "string",
            "description": "The display label of the property",
            "example": "Property Label"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "description": {
            "type": "string",
            "description": "A brief description of the property",
            "example": "This is a sample property description"
          },
          "type": {
            "type": "string",
            "description": "The data type of the property",
            "example": "string"
          },
          "options": {
            "type": "array",
            "description": "List of available options for the property",
            "items": {
              "$ref": "#/components/schemas/PropertyOption"
            }
          },
          "group": {
            "type": "string",
            "description": "The group to which this property belongs",
            "example": "General"
          },
          "format": {
            "type": "string",
            "description": "Property format type",
            "example": "single-line"
          },
          "rules": {
            "type": "array",
            "description": "Collection of rules applied to the property",
            "items": {
              "type": "string"
            }
          },
          "hidden": {
            "type": "boolean",
            "description": "Indicates if the property is hidden by default",
            "example": false
          },
          "lifecycleActive": {
            "type": "boolean",
            "description": "When true, property value changes are tracked as lifecycle records",
            "example": false
          },
          "requiredFilter": {
            "$ref": "#/components/schemas/Filter",
            "description": "When this filter matches the record being saved, the property becomes required"
          },
          "nonPublic": {
            "type": "boolean",
            "description": "Indicates if the property is not accessible publicly",
            "example": false
          },
          "indexed": {
            "type": "boolean",
            "description": "Indicates if the property is indexed",
            "example": false
          },
          "formatSettings": {
            "type": "object",
            "additionalProperties": {},
            "description": "Settings to configure the format of the property"
          },
          "immutable": {
            "type": "boolean",
            "description": "Indicates if the property is immutable",
            "example": false
          },
          "editable": {
            "type": "boolean",
            "description": "Indicates if the property can be edited",
            "example": true
          },
          "icon": {
            "type": "string",
            "description": "The icon associated with the property",
            "example": "icon_name"
          },
          "webpagePublic": {
            "type": "boolean",
            "description": "Indicates if the property is webpage public",
            "example": false
          },
          "embeddable": {
            "type": "boolean",
            "deprecated": true,
            "description": "Deprecated. Use sensitive instead.",
            "example": false
          },
          "sensitive": {
            "type": "boolean",
            "description": "When true, exclude from advanced query evidence",
            "example": false
          }
        },
        "required": [
          "uuid"
        ]
      },
      "UpdateLifecyclePropertiesDTO": {
        "type": "object",
        "description": "Request body for enabling lifecycle tracking on object properties",
        "properties": {
          "propertyUuids": {
            "type": "array",
            "description": "UUIDs of properties to track in lifecycle history",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SavedFilterDTO": {
        "type": "object",
        "description": "Data transfer object representing a saved filter configuration",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name identifier of the saved filter",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the saved filter"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "description": {
            "type": "string",
            "description": "Description of what this saved filter is used for"
          },
          "mainObject": {
            "type": "string",
            "description": "The main object for the saved filter"
          },
          "filter": {
            "$ref": "#/components/schemas/Filter",
            "description": "The filter definition used when querying records"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "FeedDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "slug": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "mainObject": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          },
          "publicToken": {
            "type": "string"
          },
          "filter": {},
          "filterJson": {
            "type": "string"
          },
          "mapping": {},
          "mappingJson": {
            "type": "string"
          },
          "parseRecord": {
            "type": "boolean"
          },
          "rootElement": {
            "type": "string"
          },
          "itemElement": {
            "type": "string"
          },
          "itemPath": {
            "type": "string"
          },
          "cacheTtlSeconds": {
            "type": "integer",
            "format": "int64"
          },
          "active": {
            "type": "boolean"
          },
          "direction": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string"
          },
          "sourceAuthType": {
            "type": "string"
          },
          "sourceAuthKey": {
            "type": "string"
          },
          "sourceAuthValue": {
            "type": "string"
          },
          "sourceAuthUsername": {
            "type": "string"
          },
          "importInterval": {
            "type": "string"
          },
          "publishMode": {
            "type": "string"
          },
          "publishEnvironment": {
            "type": "string"
          },
          "publishFilter": {},
          "publishFilterJson": {
            "type": "string"
          },
          "unpublishFilter": {},
          "unpublishFilterJson": {
            "type": "string"
          },
          "lastImportAt": {
            "type": "integer",
            "format": "int64"
          },
          "lastImportStatus": {
            "type": "string"
          },
          "lastImportMessage": {
            "type": "string"
          },
          "lastImportJson": {
            "type": "string"
          },
          "importRunningAt": {
            "type": "integer",
            "format": "int64"
          },
          "nextImportAt": {
            "type": "integer",
            "format": "int64"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "availableEnvironments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "siblingImportFeeds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "UpdateResponseFeedDTO": {
        "type": "object",
        "description": "Represents the response returned after a successful update operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/FeedDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "BillingSettingsDTO": {
        "type": "object",
        "description": "The billing settings of the company.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "billingEmail": {
            "type": "string",
            "description": "The email address of the billing contact."
          },
          "address": {
            "type": "string",
            "description": "The address of the billing contact."
          },
          "city": {
            "type": "string",
            "description": "The city of the billing contact."
          },
          "state": {
            "type": "string",
            "description": "The state of the billing contact."
          },
          "zip": {
            "type": "string",
            "description": "The zip code of the billing contact."
          },
          "country": {
            "type": "string",
            "description": "The country of the billing contact."
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "CompanyDTO": {
        "type": "object",
        "description": "A DTO representing a company with its various settings and details.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "details": {
            "$ref": "#/components/schemas/CompanyDetailsDTO",
            "description": "The details of the company."
          },
          "digitalIdentity": {
            "$ref": "#/components/schemas/DigitalIdentityDTO",
            "description": "The digital identity of the company."
          },
          "websiteSettings": {
            "$ref": "#/components/schemas/WebsiteSettingsDTO",
            "description": "The website settings of the company."
          },
          "billingSettings": {
            "$ref": "#/components/schemas/BillingSettingsDTO",
            "description": "The billing settings of the company."
          },
          "cmsVersion": {
            "type": "integer",
            "format": "int32",
            "description": "Which CMS serves this company: 1 = WerkenBij, 2 = caraer-web"
          },
          "cmsV2PreviewOrigin": {
            "type": "string",
            "description": "Origin of the v2 sidecar site while the live hostname is still v1"
          },
          "cmsV2ProjectId": {
            "type": "string"
          },
          "cmsV1ProjectId": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "CompanyDetailsDTO": {
        "type": "object",
        "description": "A DTO representing the details of a company.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "twitter": {
            "type": "string",
            "description": "The twitter/X url of the company."
          },
          "linkedIn": {
            "type": "string",
            "description": "The linkedin url of the company."
          },
          "facebook": {
            "type": "string",
            "description": "The facebook url of the company."
          },
          "youtube": {
            "type": "string",
            "description": "The youtube url of the company."
          },
          "instagram": {
            "type": "string",
            "description": "The instagram url of the company."
          },
          "address": {
            "type": "string",
            "description": "The address of the company."
          },
          "city": {
            "type": "string",
            "description": "The city of the company."
          },
          "state": {
            "type": "string",
            "description": "The state of the company."
          },
          "zip": {
            "type": "string",
            "description": "The zip code of the company."
          },
          "country": {
            "type": "string",
            "description": "The country of the company."
          },
          "phone": {
            "type": "string",
            "description": "The phone number of the company."
          },
          "email": {
            "type": "string",
            "description": "The email of the company."
          },
          "website": {
            "type": "string",
            "description": "The website of the company."
          },
          "unsubscribeLink": {
            "type": "string",
            "description": "The unsubscribe link of the company."
          },
          "cookiePolicy": {
            "type": "string",
            "description": "The cookie policy of the company."
          },
          "privacyPolicy": {
            "type": "string",
            "description": "The privacy policy of the company."
          },
          "termsAndConditions": {
            "type": "string",
            "description": "The terms and conditions of the company."
          },
          "disclaimer": {
            "type": "string",
            "description": "The disclaimer of the company."
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "CustomFontDTO": {
        "type": "object",
        "properties": {
          "familyName": {
            "type": "string"
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FontVariantDTO"
            }
          }
        }
      },
      "DigitalIdentityDTO": {
        "type": "object",
        "description": "A DTO representing the digital identity of a company.",
        "properties": {
          "lightPrimaryColor": {
            "type": "string",
            "description": "The primary color of the company in light mode."
          },
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "lightFontColor": {
            "type": "string",
            "description": "The font color of the company in light mode."
          },
          "lightSecondaryColor": {
            "type": "string",
            "description": "The secondary color of the company in light mode."
          },
          "lightPrimary100Color": {
            "type": "string",
            "description": "The primary 100 color of the company in light mode."
          },
          "lightAccentColor": {
            "type": "string",
            "description": "The accent color of the company in light mode."
          },
          "lightPrimary50Color": {
            "type": "string",
            "description": "The lightPrimary50Color of the company."
          },
          "lightPrimary200Color": {
            "type": "string",
            "description": "The lightPrimary200Color of the company."
          },
          "lightPrimary300Color": {
            "type": "string",
            "description": "The lightPrimary300Color of the company."
          },
          "lightPrimary400Color": {
            "type": "string",
            "description": "The lightPrimary400Color of the company."
          },
          "lightPrimary600Color": {
            "type": "string",
            "description": "The lightPrimary600Color of the company."
          },
          "lightPrimary700Color": {
            "type": "string",
            "description": "The lightPrimary700Color of the company."
          },
          "lightPrimary800Color": {
            "type": "string",
            "description": "The lightPrimary800Color of the company."
          },
          "lightPrimary900Color": {
            "type": "string",
            "description": "The lightPrimary900Color of the company."
          },
          "lightSecondary50Color": {
            "type": "string",
            "description": "The lightSecondary50Color of the company."
          },
          "lightSecondary100Color": {
            "type": "string",
            "description": "The lightSecondary100Color of the company."
          },
          "lightSecondary200Color": {
            "type": "string",
            "description": "The lightSecondary200Color of the company."
          },
          "lightSecondary300Color": {
            "type": "string",
            "description": "The lightSecondary300Color of the company."
          },
          "lightSecondary400Color": {
            "type": "string",
            "description": "The lightSecondary400Color of the company."
          },
          "lightSecondary600Color": {
            "type": "string",
            "description": "The lightSecondary600Color of the company."
          },
          "lightSecondary700Color": {
            "type": "string",
            "description": "The lightSecondary700Color of the company."
          },
          "lightSecondary800Color": {
            "type": "string",
            "description": "The lightSecondary800Color of the company."
          },
          "lightSecondary900Color": {
            "type": "string",
            "description": "The lightSecondary900Color of the company."
          },
          "lightAccent50Color": {
            "type": "string",
            "description": "The lightAccent50Color of the company."
          },
          "lightAccent100Color": {
            "type": "string",
            "description": "The lightAccent100Color of the company."
          },
          "lightAccent200Color": {
            "type": "string",
            "description": "The lightAccent200Color of the company."
          },
          "lightAccent300Color": {
            "type": "string",
            "description": "The lightAccent300Color of the company."
          },
          "lightAccent400Color": {
            "type": "string",
            "description": "The lightAccent400Color of the company."
          },
          "lightAccent600Color": {
            "type": "string",
            "description": "The lightAccent600Color of the company."
          },
          "lightAccent700Color": {
            "type": "string",
            "description": "The lightAccent700Color of the company."
          },
          "lightAccent800Color": {
            "type": "string",
            "description": "The lightAccent800Color of the company."
          },
          "lightAccent900Color": {
            "type": "string",
            "description": "The lightAccent900Color of the company."
          },
          "lightBlackColor": {
            "type": "string",
            "description": "The black color of the company in light mode."
          },
          "lightGray900Color": {
            "type": "string",
            "description": "The gray 900 color of the company in light mode."
          },
          "lightGray800Color": {
            "type": "string",
            "description": "The gray 800 color of the company in light mode."
          },
          "lightGray700Color": {
            "type": "string",
            "description": "The gray 700 color of the company in light mode."
          },
          "lightGray600Color": {
            "type": "string",
            "description": "The gray 600 color of the company in light mode."
          },
          "lightGray500Color": {
            "type": "string",
            "description": "The gray 500 color of the company in light mode."
          },
          "lightGray400Color": {
            "type": "string",
            "description": "The gray 400 color of the company in light mode."
          },
          "lightGray300Color": {
            "type": "string",
            "description": "The gray 300 color of the company in light mode."
          },
          "lightGray200Color": {
            "type": "string",
            "description": "The gray 200 color of the company in light mode."
          },
          "lightGray100Color": {
            "type": "string",
            "description": "The gray 100 color of the company in light mode."
          },
          "lightGray50Color": {
            "type": "string",
            "description": "The gray 50 color of the company in light mode."
          },
          "lightWhiteColor": {
            "type": "string",
            "description": "The white color of the company in light mode."
          },
          "lightBackgroundColor": {
            "type": "string",
            "description": "The background color of the company in light mode."
          },
          "lightDestructiveColor": {
            "type": "string",
            "description": "The destructive color of the company in light mode."
          },
          "darkFontColor": {
            "type": "string",
            "description": "The font color of the company in dark mode."
          },
          "darkPrimaryColor": {
            "type": "string",
            "description": "The primary color of the company in dark mode."
          },
          "darkSecondaryColor": {
            "type": "string",
            "description": "The secondary color of the company in dark mode."
          },
          "darkPrimary100Color": {
            "type": "string",
            "description": "The primary 100 color of the company in dark mode."
          },
          "darkAccentColor": {
            "type": "string",
            "description": "The accent color of the company in dark mode."
          },
          "darkPrimary50Color": {
            "type": "string",
            "description": "The darkPrimary50Color of the company."
          },
          "darkPrimary200Color": {
            "type": "string",
            "description": "The darkPrimary200Color of the company."
          },
          "darkPrimary300Color": {
            "type": "string",
            "description": "The darkPrimary300Color of the company."
          },
          "darkPrimary400Color": {
            "type": "string",
            "description": "The darkPrimary400Color of the company."
          },
          "darkPrimary600Color": {
            "type": "string",
            "description": "The darkPrimary600Color of the company."
          },
          "darkPrimary700Color": {
            "type": "string",
            "description": "The darkPrimary700Color of the company."
          },
          "darkPrimary800Color": {
            "type": "string",
            "description": "The darkPrimary800Color of the company."
          },
          "darkPrimary900Color": {
            "type": "string",
            "description": "The darkPrimary900Color of the company."
          },
          "darkSecondary50Color": {
            "type": "string",
            "description": "The darkSecondary50Color of the company."
          },
          "darkSecondary100Color": {
            "type": "string",
            "description": "The darkSecondary100Color of the company."
          },
          "darkSecondary200Color": {
            "type": "string",
            "description": "The darkSecondary200Color of the company."
          },
          "darkSecondary300Color": {
            "type": "string",
            "description": "The darkSecondary300Color of the company."
          },
          "darkSecondary400Color": {
            "type": "string",
            "description": "The darkSecondary400Color of the company."
          },
          "darkSecondary600Color": {
            "type": "string",
            "description": "The darkSecondary600Color of the company."
          },
          "darkSecondary700Color": {
            "type": "string",
            "description": "The darkSecondary700Color of the company."
          },
          "darkSecondary800Color": {
            "type": "string",
            "description": "The darkSecondary800Color of the company."
          },
          "darkSecondary900Color": {
            "type": "string",
            "description": "The darkSecondary900Color of the company."
          },
          "darkAccent50Color": {
            "type": "string",
            "description": "The darkAccent50Color of the company."
          },
          "darkAccent100Color": {
            "type": "string",
            "description": "The darkAccent100Color of the company."
          },
          "darkAccent200Color": {
            "type": "string",
            "description": "The darkAccent200Color of the company."
          },
          "darkAccent300Color": {
            "type": "string",
            "description": "The darkAccent300Color of the company."
          },
          "darkAccent400Color": {
            "type": "string",
            "description": "The darkAccent400Color of the company."
          },
          "darkAccent600Color": {
            "type": "string",
            "description": "The darkAccent600Color of the company."
          },
          "darkAccent700Color": {
            "type": "string",
            "description": "The darkAccent700Color of the company."
          },
          "darkAccent800Color": {
            "type": "string",
            "description": "The darkAccent800Color of the company."
          },
          "darkAccent900Color": {
            "type": "string",
            "description": "The darkAccent900Color of the company."
          },
          "darkBlackColor": {
            "type": "string",
            "description": "The black color of the company in dark mode."
          },
          "darkGray900Color": {
            "type": "string",
            "description": "The gray 900 color of the company in dark mode."
          },
          "darkGray800Color": {
            "type": "string",
            "description": "The gray 800 color of the company in dark mode."
          },
          "darkGray700Color": {
            "type": "string",
            "description": "The gray 700 color of the company in dark mode."
          },
          "darkGray600Color": {
            "type": "string",
            "description": "The gray 600 color of the company in dark mode."
          },
          "darkGray500Color": {
            "type": "string",
            "description": "The gray 500 color of the company in dark mode."
          },
          "darkGray400Color": {
            "type": "string",
            "description": "The gray 400 color of the company in dark mode."
          },
          "darkGray300Color": {
            "type": "string",
            "description": "The gray 300 color of the company in dark mode."
          },
          "darkGray200Color": {
            "type": "string",
            "description": "The gray 200 color of the company in dark mode."
          },
          "darkGray100Color": {
            "type": "string",
            "description": "The gray 100 color of the company in dark mode."
          },
          "darkGray50Color": {
            "type": "string",
            "description": "The gray 50 color of the company in dark mode."
          },
          "darkWhiteColor": {
            "type": "string",
            "description": "The white color of the company in dark mode."
          },
          "darkBackgroundColor": {
            "type": "string",
            "description": "The background color of the company in dark mode."
          },
          "darkDestructiveColor": {
            "type": "string",
            "description": "The destructive color of the company in dark mode."
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "FontVariantDTO": {
        "type": "object",
        "properties": {
          "weight": {
            "type": "integer",
            "format": "int32"
          },
          "style": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "WebsiteSettingsDTO": {
        "type": "object",
        "description": "The website settings of the company.",
        "properties": {
          "subdomain": {
            "type": "string"
          },
          "customDomain": {
            "type": "string"
          },
          "recordType": {
            "type": "string"
          },
          "recordValue": {
            "type": "string"
          },
          "favicon": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "logoDark": {
            "type": "string"
          },
          "logoLight": {
            "type": "string"
          },
          "logoUrl": {
            "type": "string"
          },
          "logoWidth": {
            "type": "number",
            "format": "float"
          },
          "logoHeight": {
            "type": "number",
            "format": "float"
          },
          "headerLayout": {
            "type": "string"
          },
          "headerminHeight": {
            "type": "number",
            "format": "float"
          },
          "headerMaxHeight": {
            "type": "number",
            "format": "float"
          },
          "headerMinWidth": {
            "type": "number",
            "format": "float"
          },
          "headerMaxWidth": {
            "type": "number",
            "format": "float"
          },
          "headerMarginTop": {
            "type": "number",
            "format": "float"
          },
          "headerMarginBottom": {
            "type": "number",
            "format": "float"
          },
          "headerMarginLeft": {
            "type": "number",
            "format": "float"
          },
          "headerMarginRight": {
            "type": "number",
            "format": "float"
          },
          "headerTop": {
            "type": "number",
            "format": "float"
          },
          "headerBottom": {
            "type": "number",
            "format": "float"
          },
          "headerLeft": {
            "type": "number",
            "format": "float"
          },
          "headerRight": {
            "type": "number",
            "format": "float"
          },
          "headerPaddingTop": {
            "type": "number",
            "format": "float"
          },
          "headerPaddingBottom": {
            "type": "number",
            "format": "float"
          },
          "headerPaddingLeft": {
            "type": "number",
            "format": "float"
          },
          "headerPaddingRight": {
            "type": "number",
            "format": "float"
          },
          "headerBorderRadiusTopLeft": {
            "type": "number",
            "format": "float"
          },
          "headerBorderRadiusTopRight": {
            "type": "number",
            "format": "float"
          },
          "headerBorderRadiusBottomLeft": {
            "type": "number",
            "format": "float"
          },
          "headerBorderRadiusBottomRight": {
            "type": "number",
            "format": "float"
          },
          "headerBorderWidthTop": {
            "type": "number",
            "format": "float"
          },
          "headerBorderWidthBottom": {
            "type": "number",
            "format": "float"
          },
          "headerBorderWidthLeft": {
            "type": "number",
            "format": "float"
          },
          "headerBorderWidthRight": {
            "type": "number",
            "format": "float"
          },
          "headerBorderColorTop": {
            "type": "string"
          },
          "headerBorderColorBottom": {
            "type": "string"
          },
          "headerBorderColorLeft": {
            "type": "string"
          },
          "headerBorderColorRight": {
            "type": "string"
          },
          "headerBorderStyleTop": {
            "type": "string"
          },
          "headerBorderStyleBottom": {
            "type": "string"
          },
          "headerBorderStyleLeft": {
            "type": "string"
          },
          "headerBorderStyleRight": {
            "type": "string"
          },
          "headerBehavior": {
            "type": "string"
          },
          "headerBehaviorOnMobile": {
            "type": "string"
          },
          "headerItemSpacing": {
            "type": "number",
            "format": "float"
          },
          "defaultLightHeader": {
            "type": "boolean"
          },
          "headerRevealOffset": {
            "type": "number",
            "format": "float"
          },
          "headerRevealSpeed": {
            "type": "number",
            "format": "float"
          },
          "mobileMenuAlwaysVisible": {
            "type": "boolean"
          },
          "mobileMenuDisplay": {
            "type": "string"
          },
          "mobileMenuText": {
            "type": "string"
          },
          "mobileMenuNextToHeader": {
            "type": "boolean"
          },
          "mobileMenuBehaviour": {
            "type": "string"
          },
          "mobileMenuBehaviourOnMobile": {
            "type": "string"
          },
          "headerBackgroundColor": {
            "type": "string"
          },
          "headerForegroundColor": {
            "type": "string"
          },
          "headerItemHoverBackgroundColor": {
            "type": "string"
          },
          "headerItemHoverForegroundColor": {
            "type": "string"
          },
          "headerBlur": {
            "type": "boolean"
          },
          "headerBlurAmount": {
            "type": "number",
            "format": "float"
          },
          "headerOpacity": {
            "type": "number",
            "format": "float"
          },
          "headerShadow": {
            "type": "boolean"
          },
          "headerButtonStyle": {
            "type": "string"
          },
          "headerButtonText": {
            "type": "string"
          },
          "headerButtonTextColor": {
            "type": "string"
          },
          "headerButtonLink": {
            "type": "string"
          },
          "headerButtonIcon": {
            "type": "string"
          },
          "headerButtonIconPosition": {
            "type": "string"
          },
          "headerButtonIconColor": {
            "type": "string"
          },
          "headerSecondaryButtonStyle": {
            "type": "string"
          },
          "headerSecondaryButtonText": {
            "type": "string"
          },
          "headerSecondaryButtonTextColor": {
            "type": "string"
          },
          "headerSecondaryButtonLink": {
            "type": "string"
          },
          "headerSecondaryButtonIcon": {
            "type": "string"
          },
          "headerSecondaryButtonIconPosition": {
            "type": "string"
          },
          "headerSecondaryButtonIconColor": {
            "type": "string"
          },
          "headerTertiaryButtonStyle": {
            "type": "string"
          },
          "headerTertiaryButtonText": {
            "type": "string"
          },
          "headerTertiaryButtonTextColor": {
            "type": "string"
          },
          "headerTertiaryButtonLink": {
            "type": "string"
          },
          "headerTertiaryButtonIcon": {
            "type": "string"
          },
          "headerTertiaryButtonIconPosition": {
            "type": "string"
          },
          "headerTertiaryButtonIconColor": {
            "type": "string"
          },
          "cookieText": {
            "type": "string"
          },
          "cookieAgreementText": {
            "type": "string"
          },
          "cookieBannerEnabled": {
            "type": "boolean"
          },
          "cookieBannerModuleUuid": {
            "type": "string"
          },
          "cssStyles": {
            "type": "string"
          },
          "headJsScript": {
            "type": "string"
          },
          "bodyJsScript": {
            "type": "string"
          },
          "trackingBodyJsScript": {
            "type": "string"
          },
          "footerImage": {
            "type": "string"
          },
          "footerImagePosition": {
            "type": "string"
          },
          "footerImageSize": {
            "type": "string"
          },
          "footerImageRepeat": {
            "type": "string"
          },
          "footerImageOpacity": {
            "type": "number",
            "format": "double"
          },
          "footerImageWidth": {
            "type": "number",
            "format": "float"
          },
          "footerImageHeight": {
            "type": "number",
            "format": "float"
          },
          "footerCopyrightText": {
            "type": "string"
          },
          "footerCompanyName": {
            "type": "string"
          },
          "footerCompanyLink": {
            "type": "string"
          },
          "footerCompanyText": {
            "type": "string"
          },
          "customFooterEnabled": {
            "type": "boolean"
          },
          "customFooterModuleUuid": {
            "type": "string"
          },
          "cmsHeaderModule": {
            "type": "string"
          },
          "cmsFooterModule": {
            "type": "string"
          },
          "cmsCookieBannerModule": {
            "type": "string"
          },
          "cmsModuleDefaults": {
            "type": "string"
          },
          "footerBackgroundColor": {
            "type": "string"
          },
          "footerForegroundColor": {
            "type": "string"
          },
          "footerShowSocialButtons": {
            "type": "boolean"
          },
          "footerShowTermsAndConditions": {
            "type": "boolean"
          },
          "footerShowPrivacyPolicy": {
            "type": "boolean"
          },
          "custom404WebpageUuid": {
            "type": "string"
          },
          "backToTopButton": {
            "type": "boolean"
          },
          "backToTopButtonPosition": {
            "type": "string"
          },
          "backToTopButtonIcon": {
            "type": "string"
          },
          "backToTopButtonIconPosition": {
            "type": "string"
          },
          "backToTopButtonText": {
            "type": "string"
          },
          "backToTopButtonColor": {
            "type": "string"
          },
          "backToTopButtonBackgroundColor": {
            "type": "string"
          },
          "backToTopButtonBorderColor": {
            "type": "string"
          },
          "backToTopButtonOnMobile": {
            "type": "boolean"
          },
          "animatedAnchorLinks": {
            "type": "boolean"
          },
          "maxWebsiteContainerWidth": {
            "type": "number",
            "format": "float"
          },
          "disableAnimationsOnMobile": {
            "type": "boolean"
          },
          "customFonts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFontDTO"
            }
          },
          "mainStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "mainElementStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "rowStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "columnStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "sectionStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "textStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "primaryButtonStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "secondaryButtonStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "tertiaryButtonStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "imageStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "videoStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "mapStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "formStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "sliderStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "accordionStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "previewStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "iconStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "codeStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "shareStyling": {
            "$ref": "#/components/schemas/PageContentStylingDTO"
          },
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "CmsEnvironmentDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "routing": {
            "type": "string"
          },
          "slugPrefix": {
            "type": "string"
          },
          "hostLabel": {
            "type": "string"
          },
          "requiresAuth": {
            "type": "boolean"
          },
          "htmlLang": {
            "type": "string"
          },
          "default": {
            "type": "boolean"
          }
        }
      },
      "ShowResponseCmsEnvironmentDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CmsEnvironmentDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ServerlessFunctionDTO": {
        "type": "object",
        "description": "Data transfer object for a serverless function (runtime and code) owned by an app",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "runtime": {
            "type": "string",
            "description": "Runtime identifier (e.g. javascript, python)"
          },
          "code": {
            "type": "string",
            "description": "Function source code"
          },
          "sourceFiles": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional source files relative to the function folder (e.g. shared.js)"
          },
          "description": {
            "type": "string",
            "description": "Optional description of the serverless function"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "SubscribeWebhookDTO": {
        "type": "object",
        "description": "Data Transfer Object for subscribing to a webhook. This DTO represents the details required to configure a webhook subscription.",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL of the webhook where requests will be sent.",
            "example": "https://example.com/webhook"
          },
          "serverlessFunction": {
            "$ref": "#/components/schemas/ServerlessFunctionDTO",
            "description": "UUID of the serverless function to invoke when the webhook is triggered (must belong to the same app)."
          },
          "deliveryMode": {
            "type": "string",
            "description": "Delivery mode for this webhook: HTTP (use url) or SERVERLESS (use serverlessFunctionUuid). If omitted, legacy behavior applies based on presence of url/serverlessFunctionUuid."
          },
          "waitUntilComplete": {
            "type": "boolean",
            "description": "When true, install or settings save waits for this lifecycle hook to finish and returns the settings it wrote."
          },
          "secret": {
            "type": "string",
            "description": "The secret used for webhook validation.",
            "example": "abcd1234"
          },
          "topic": {
            "type": "string",
            "description": "The topic for which the webhook is subscribed.",
            "example": "user.created"
          },
          "description": {
            "type": "string",
            "description": "Optional human-readable description for this webhook"
          },
          "webhookFormat": {
            "type": "string",
            "description": "Webhook payload format (LEGACY, USER_FRIENDLY)",
            "example": "LEGACY"
          },
          "parseRecord": {
            "type": "boolean",
            "description": "Whether to parse the record before returning it",
            "example": true
          },
          "filter": {
            "$ref": "#/components/schemas/Filter",
            "description": "Filter criteria for webhook triggers"
          },
          "includeRelations": {
            "type": "array",
            "description": "Records to include in webhook payload",
            "example": [
              "candidate",
              "vacancy"
            ],
            "items": {
              "type": "string"
            }
          },
          "relationFilters": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Filter"
            },
            "description": "Filter criteria for relations"
          },
          "relationLimit": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of relations to include",
            "example": 10
          },
          "retryEnabled": {
            "type": "boolean",
            "description": "Whether retry is enabled for failed deliveries (defaults to true if omitted)",
            "example": true
          },
          "maxRetries": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of retries",
            "example": 3
          },
          "retryBackoffMs": {
            "type": "integer",
            "format": "int64",
            "description": "Retry backoff in milliseconds",
            "example": 1000
          },
          "triggerOffsetSeconds": {
            "type": "integer",
            "format": "int64",
            "description": "Offset from the target date in seconds (required for date_due webhooks)",
            "example": 604800
          },
          "scheduleDirection": {
            "type": "string",
            "description": "Whether the webhook fires BEFORE or AFTER the target date",
            "example": "BEFORE"
          },
          "scheduleRecurring": {
            "type": "string",
            "description": "Recurrence for date_due webhooks: NONE, DAILY, WEEKLY, MONTHLY, QUARTERLY, HALF_YEARLY, YEARLY, or CRON",
            "example": "YEARLY"
          },
          "scheduleCronExpression": {
            "type": "string",
            "description": "Spring cron expression used when scheduleRecurring is CRON",
            "example": 0
          },
          "scheduleVersion": {
            "type": "integer",
            "format": "int64",
            "description": "Internal schedule version incremented when schedule config changes"
          },
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "CreateResponse": {
        "type": "object",
        "description": "Response for a successful resource creation operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "description": "The data payload of the response, if any."
          }
        }
      },
      "AppScheduleDTO": {
        "type": "object",
        "description": "App schedule definition (cron → function)",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "schedule": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "payloadTemplate": {
            "type": "string"
          },
          "serverlessFunction": {
            "$ref": "#/components/schemas/ServerlessFunctionRefDTO"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "ServerlessFunctionRefDTO": {
        "type": "object",
        "description": "Reference to a serverless function by uuid and/or name",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      },
      "ShowResponseAppScheduleDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppScheduleDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ShowResponseObject": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "description": "The data payload of the response, if any."
          }
        }
      },
      "AppSettingActionSource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "serverlessFunctionUuid": {
            "type": "string"
          },
          "serverlessFunctionName": {
            "type": "string"
          },
          "enqueue": {
            "type": "boolean"
          }
        }
      },
      "AppSettingCondition": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "operator": {
            "type": "string"
          },
          "value": {}
        }
      },
      "AppSettingFieldMappingStructure": {
        "type": "object",
        "properties": {
          "objectName": {
            "type": "string"
          },
          "targetKind": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldMappingStructureItem"
            }
          },
          "recordTarget": {
            "type": "boolean"
          }
        }
      },
      "AppSettingFieldMappingStructureItem": {
        "type": "object",
        "properties": {
          "fieldLabel": {
            "type": "string"
          },
          "fieldName": {
            "type": "string"
          },
          "fieldHelpText": {
            "type": "string"
          },
          "isRequired": {
            "type": "boolean"
          },
          "allowedPropertyTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "allowedPropertyFormats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "propertyName": {
            "type": "string"
          },
          "literalValue": {
            "type": "string"
          },
          "relationName": {
            "type": "string"
          },
          "objectName": {
            "type": "string"
          },
          "recordUuid": {
            "type": "string"
          },
          "formatPattern": {
            "type": "string"
          },
          "formatReplacement": {
            "type": "string"
          }
        }
      },
      "AppSettingFieldSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "helpText": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "paragraph": {
            "type": "string"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettingOption"
            }
          },
          "optionsSource": {
            "$ref": "#/components/schemas/AppSettingOptionsSource"
          },
          "actionSource": {
            "$ref": "#/components/schemas/AppSettingActionSource"
          },
          "defaultValue": {},
          "hidden": {
            "type": "boolean"
          },
          "advanced": {
            "type": "boolean"
          },
          "group": {
            "type": "string"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          },
          "filterTraits": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "visibleWhen": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppSettingCondition"
            }
          },
          "itemFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          },
          "min": {
            "type": "integer",
            "format": "int32"
          },
          "max": {
            "type": "integer",
            "format": "int32"
          },
          "itemLabel": {
            "type": "string"
          },
          "value": {},
          "hasValue": {
            "type": "boolean"
          },
          "mappingValue": {
            "$ref": "#/components/schemas/AppSettingFieldMappingStructure"
          },
          "valueScope": {
            "type": "string"
          },
          "settingsGroup": {
            "type": "boolean"
          },
          "action": {
            "type": "boolean"
          },
          "filterPropertyTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterPropertyFormats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AppSettingOptionsSource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "serverlessFunctionUuid": {
            "type": "string"
          },
          "serverlessFunctionName": {
            "type": "string"
          },
          "dependsOn": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "searchable": {
            "type": "boolean"
          },
          "minQueryLength": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SuccessResponseVoid": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "description": "The data payload of the response, if any."
          }
        }
      },
      "AppInboundRouteDTO": {
        "type": "object",
        "description": "Public inbound route into an app function",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "authMode": {
            "type": "string"
          },
          "enqueue": {
            "type": "boolean"
          },
          "hasSharedSecret": {
            "type": "boolean"
          },
          "sharedSecret": {
            "type": "string"
          },
          "serverlessFunction": {
            "$ref": "#/components/schemas/ServerlessFunctionRefDTO"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "ShowResponseAppInboundRouteDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppInboundRouteDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "AppExternalOAuthProviderDTO": {
        "type": "object",
        "description": "Third-party OAuth provider declared on an app",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "preset": {
            "type": "string",
            "deprecated": true,
            "description": "Ignored. Set authorizeUrl and tokenUrl explicitly."
          },
          "logo": {
            "type": "string",
            "description": "Optional logo URL shown on the Connect button"
          },
          "authorizeUrl": {
            "type": "string"
          },
          "tokenUrl": {
            "type": "string"
          },
          "clientId": {
            "type": "string"
          },
          "clientSecret": {
            "type": "string"
          },
          "hasClientSecret": {
            "type": "boolean"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pkce": {
            "type": "boolean"
          },
          "connectionOwner": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "ShowResponseAppExternalOAuthProviderDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppExternalOAuthProviderDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CmsModuleDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "preview": {
            "type": "string"
          },
          "appUuid": {
            "type": "string"
          },
          "appName": {
            "type": "string"
          },
          "appLabel": {
            "type": "string"
          },
          "packageName": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "retired": {
            "type": "boolean"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          },
          "frameworks": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "ShowResponseListCmsModuleDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/CmsModuleDTO"
            }
          }
        }
      },
      "AppBarDTO": {
        "type": "object",
        "description": "Data transfer object for an app bar (location-specific settings and action config)",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "location": {
            "type": "string",
            "description": "Bar location: RECORD_PREVIEW, RECORD_OVERVIEW, RECORD_DETAIL, TOOL_BAR, TRAIT_BAR, RECORD_TRAIT",
            "enum": [
              "RECORD_PREVIEW",
              "RECORD_OVERVIEW",
              "RECORD_DETAIL",
              "TOOL_BAR",
              "TRAIT_BAR",
              "RECORD_TRAIT"
            ]
          },
          "iframeUrl": {
            "type": "string",
            "description": "URL for iframe-based locations (supports {recordUuid}, {object}, {viewId}, {trait}, {companyUuid} placeholders)"
          },
          "icon": {
            "type": "string",
            "description": "Optional icon name/key for this app bar"
          },
          "description": {
            "type": "string",
            "description": "Description shown under the dialog title for action-based bars"
          },
          "tooltipLabel": {
            "type": "string",
            "description": "Tooltip label for buttons and sidebar entries"
          },
          "actionLabel": {
            "type": "string",
            "description": "Primary button label in the action dialog"
          },
          "settingsSchema": {
            "type": "array",
            "description": "JSON array of AppSettingFieldSchema (field definitions for action locations)",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          },
          "webhook": {
            "$ref": "#/components/schemas/SubscribeWebhookDTO",
            "description": "Webhook configuration for action-based locations"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "AppBarVisibilityEntry": {
        "type": "object",
        "properties": {
          "objects": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "suites": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "traits": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AppDTO": {
        "type": "object",
        "description": "Full app payload (AppCreatorDTO) to apply",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "privateApp": {
            "type": "boolean",
            "description": "Indicates whether this app is private (only available to the creator's company)"
          },
          "hideApiKeyField": {
            "type": "boolean",
            "description": "Whether to hide the API token field in marketplace installer UI. Defaults to true when omitted. Private apps show the key regardless."
          },
          "details": {
            "$ref": "#/components/schemas/AppDetailsDTO",
            "description": "Additional details and specifications about the application"
          },
          "appBars": {
            "type": "array",
            "description": "App bars (location-specific configuration and actions)",
            "items": {
              "$ref": "#/components/schemas/AppBarDTO"
            }
          },
          "serverlessFunctions": {
            "type": "array",
            "description": "Serverless functions owned by this app",
            "items": {
              "$ref": "#/components/schemas/ServerlessFunctionDTO"
            }
          },
          "installWebhook": {
            "$ref": "#/components/schemas/SubscribeWebhookDTO",
            "description": "Webhook triggered when the app is installed"
          },
          "uninstallWebhook": {
            "$ref": "#/components/schemas/SubscribeWebhookDTO",
            "description": "Webhook triggered when the app is uninstalled"
          },
          "rotateWebhook": {
            "$ref": "#/components/schemas/SubscribeWebhookDTO",
            "description": "Webhook triggered when the app installation token is rotated"
          },
          "updateWebhook": {
            "$ref": "#/components/schemas/SubscribeWebhookDTO",
            "description": "Webhook triggered when an already installed app is saved again"
          },
          "settingsSchema": {
            "type": "array",
            "description": "JSON array of AppSettingFieldSchema (app-level setting field definitions)",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          },
          "settingsSections": {
            "type": "array",
            "description": "Optional UI grouping of settingsSchema fields into installer cards",
            "items": {
              "$ref": "#/components/schemas/AppSettingsSection"
            }
          },
          "externalOAuthProviders": {
            "type": "array",
            "description": "External OAuth providers installers can Connect (name/logo only; no secrets)",
            "items": {
              "$ref": "#/components/schemas/AppExternalOAuthProviderSummaryDTO"
            }
          },
          "webhookRateLimitPerMinute": {
            "type": "integer",
            "format": "int32",
            "description": "Webhook rate limit per minute"
          },
          "jobRateLimitPerMinute": {
            "type": "integer",
            "format": "int32",
            "description": "App job enqueue rate limit per minute per installation"
          },
          "appPublish": {
            "$ref": "#/components/schemas/AppPublishDTO",
            "description": "Publish and review state for the app in the marketplace (creator view)"
          },
          "hasApp": {
            "$ref": "#/components/schemas/HasAppDTO",
            "description": "Installation link (company–app) with token, scopes, and per-installation settingsValues; present when includeSettings is true"
          },
          "image": {
            "type": "string",
            "description": "URL to the application's image or icon (derived from details.image)"
          },
          "url": {
            "type": "string",
            "description": "URL where the application can be accessed (derived from details.url)"
          },
          "category": {
            "type": "string",
            "description": "Category the application belongs to (derived from details.category)"
          },
          "installed": {
            "type": "boolean",
            "description": "Whether the app is installed for the current company"
          },
          "requiredScopes": {
            "type": "array",
            "description": "Required scopes requested by the app (macro patterns or concrete scope strings).",
            "items": {
              "type": "string"
            }
          },
          "resolvedRequiredScopes": {
            "type": "array",
            "description": "Resolved concrete required scopes derived from requiredScopes and dynamic availableScopes.",
            "items": {
              "type": "string"
            }
          },
          "authMethod": {
            "type": "string",
            "description": "Authentication method for this app (API_KEY default, OAUTH2 for OAuth 2.0)",
            "enum": [
              "API_KEY",
              "OAUTH2"
            ]
          },
          "oauthClientId": {
            "type": "string",
            "description": "OAuth 2.0 client identifier (OAuth apps only)"
          },
          "oauthClientSecret": {
            "type": "string",
            "description": "OAuth 2.0 client secret; only returned once on create or secret rotation"
          },
          "oauthClientSecretConfigured": {
            "type": "boolean",
            "description": "Whether an OAuth client secret is stored for this app (plain value is not re-readable)"
          },
          "oauthRedirectUris": {
            "type": "array",
            "description": "Registered OAuth redirect URIs (OAuth apps only)",
            "items": {
              "type": "string"
            }
          },
          "oauthAuthorizeUrl": {
            "type": "string",
            "description": "OAuth authorization endpoint URL"
          },
          "oauthTokenUrl": {
            "type": "string",
            "description": "OAuth token endpoint URL"
          },
          "installUrl": {
            "type": "string",
            "description": "External URL where end users install this app (e.g. ChatGPT connector page)"
          },
          "brandmark": {
            "type": "string",
            "description": "Square brandmark URL used in compact app surfaces"
          },
          "description": {
            "type": "string",
            "description": "Internal app description used in Caraer admin views"
          },
          "platformVersion": {
            "type": "integer",
            "format": "int32",
            "description": "App platform version: 1 = legacy per-function Cloud Functions; 2 = one container per app"
          },
          "runtime": {
            "type": "string",
            "description": "Serverless runtime for platform V2 apps (nodejs22 or python312)"
          },
          "runtimeBaseUrl": {
            "type": "string",
            "description": "Base HTTPS URL of the V2 app container runtime"
          },
          "runtimeRevision": {
            "type": "string",
            "description": "Last deployed runtime revision id"
          },
          "runtimeStatus": {
            "type": "string",
            "description": "V2 runtime status: PENDING, PROVISIONING, READY, FAILED"
          },
          "runtimeError": {
            "type": "string",
            "description": "Last V2 runtime error message when FAILED"
          },
          "runtimeGeneration": {
            "type": "integer",
            "format": "int64",
            "description": "Monotonic generation for async runtime jobs"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "AppDetailsDTO": {
        "type": "object",
        "description": "Detailed DTO representing an application with all available configuration and visibility metadata for the current company context",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "Short marketplace description shown on app cards and detail pages"
          },
          "image": {
            "type": "string"
          },
          "brandColor": {
            "type": "string",
            "description": "Hex accent color (#RRGGBB) for installed app-bar action buttons and toolbar icons",
            "example": "#E74363"
          },
          "textColor": {
            "type": "string",
            "description": "Hex text color (#RRGGBB) for text on brand-colored marketplace UI elements",
            "example": "#FFFFFF"
          },
          "url": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "description": "Main marketplace category key from GET /api/v2/apps/categories",
            "example": "productivity"
          },
          "subcategories": {
            "type": "array",
            "description": "Selected subcategory keys under the main category",
            "example": [
              "tasks",
              "automation"
            ],
            "items": {
              "type": "string"
            }
          },
          "privacyPolicy": {
            "type": "string"
          },
          "termsAndConditions": {
            "type": "string"
          },
          "processingAgreement": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string"
          },
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "AppExternalOAuthProviderSummaryDTO": {
        "type": "object",
        "description": "Lightweight external OAuth provider summary (no secrets)",
        "properties": {
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "connectionOwner": {
            "type": "string"
          }
        }
      },
      "AppPublishDTO": {
        "type": "object",
        "description": "Publish and review state for a public app in the marketplace",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "publishState": {
            "type": "string",
            "description": "Publish state: DRAFT, SUBMITTED, IN_REVIEW, APPROVED, PUBLISHED, REJECTED, CHANGES_REQUESTED"
          },
          "submittedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp when developer submitted for review"
          },
          "reviewedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp when review was completed"
          },
          "publishedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp when app went live in marketplace"
          },
          "feedback": {
            "type": "string",
            "description": "Feedback shown to developer (e.g. rejection reason)"
          },
          "reviewerNotes": {
            "type": "string",
            "description": "Internal reviewer notes. Only returned for SUPER_ADMIN callers; never exposed to app creators."
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "AppSettingsSection": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "settings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "HasAppDTO": {
        "type": "object",
        "description": "Installation link between a company and an app (per-installation settings and token)",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the installation relationship"
          },
          "token": {
            "type": "string",
            "description": "Installation token"
          },
          "scopes": {
            "type": "array",
            "description": "Scopes granted to this installation",
            "items": {
              "type": "string"
            }
          },
          "settingsValues": {
            "type": "string",
            "description": "Per-installation app setting values (JSON object keyed by setting name)"
          },
          "filters": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Filter"
            },
            "description": "Per-object record filters for this installation (object name → filter)"
          },
          "appBarVisibility": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/AppBarVisibilityEntry"
            },
            "description": "Per-app-bar placement config keyed by app bar UUID"
          },
          "oauthConnected": {
            "type": "boolean",
            "description": "Whether OAuth tokens have been issued for this installation"
          },
          "oauthAccessTokenExpiresAt": {
            "type": "integer",
            "format": "int64",
            "description": "OAuth access token expiry (epoch ms), if connected via OAuth"
          }
        }
      },
      "ShowResponseAppDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "MultiValueMapStringString": {
        "type": "object",
        "additionalProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "properties": {
          "all": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "writeOnly": true
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "OAuthRegistrationRequest": {
        "type": "object",
        "properties": {
          "redirect_uris": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "client_name": {
            "type": "string"
          },
          "token_endpoint_auth_method": {
            "type": "string"
          },
          "application_type": {
            "type": "string"
          }
        }
      },
      "CreateSignedUrlRequest": {
        "type": "object",
        "properties": {
          "ttlSeconds": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "CreateResponseSignedUrlResultDTO": {
        "type": "object",
        "description": "Response for a successful resource creation operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/SignedUrlResultDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "SignedUrlResultDTO": {
        "type": "object",
        "description": "Generated signed URL for a protected webpage",
        "properties": {
          "grantUuid": {
            "type": "string"
          },
          "token": {
            "type": "string"
          },
          "expiresAt": {
            "type": "integer",
            "format": "int64"
          },
          "queryParams": {
            "type": "string"
          }
        }
      },
      "CursorLocation": {
        "type": "object",
        "description": "Cursor location",
        "properties": {
          "x": {
            "type": "number",
            "format": "double"
          },
          "y": {
            "type": "number",
            "format": "double"
          },
          "z": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "UserWithCursorLocationDTO": {
        "type": "object",
        "description": "User with cursor location",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "firstname": {
            "type": "string"
          },
          "lastname": {
            "type": "string"
          },
          "cursorLocation": {
            "$ref": "#/components/schemas/CursorLocation"
          },
          "reference": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          }
        }
      },
      "WebpageEditingStatusDTO": {
        "type": "object",
        "description": "Whether a webpage is currently being edited by another user",
        "properties": {
          "locked": {
            "type": "boolean",
            "description": "True when another user is actively editing this webpage"
          },
          "editor": {
            "$ref": "#/components/schemas/UserWithCursorLocationDTO",
            "description": "The user currently editing, when locked is true"
          },
          "message": {
            "type": "string",
            "description": "Human-readable message for the client UI"
          }
        }
      },
      "SuccessResponseString": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "string",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ShowResponseSignedUrlResultDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/SignedUrlResultDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CmsPagePatch": {
        "type": "object",
        "properties": {
          "op": {
            "type": "string"
          },
          "moduleId": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "field": {
            "type": "string"
          },
          "value": {},
          "fields": {
            "type": "object",
            "additionalProperties": {}
          },
          "module": {
            "$ref": "#/components/schemas/CmsPageModuleInstance"
          },
          "index": {
            "type": "integer",
            "format": "int32"
          },
          "toIndex": {
            "type": "integer",
            "format": "int32"
          },
          "hidden": {
            "type": "boolean"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CmsPageModuleInstance"
            }
          },
          "seo": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "CmsPagePatchRequest": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string"
          },
          "patches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CmsPagePatch"
            }
          },
          "expectedRevision": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "TemplateWebpageDTO": {
        "type": "object",
        "description": "DTO for Template Webpage",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "environment": {
            "type": "string",
            "description": "The environment of the webpage."
          },
          "title": {
            "type": "string",
            "description": "The title of the webpage.",
            "example": "Homepage"
          },
          "excerpt": {
            "type": "string",
            "description": "Short summary or excerpt displayed for the webpage.",
            "example": "This is a summary of the webpage."
          },
          "slug": {
            "type": "string",
            "description": "URL-friendly identifier for the webpage.",
            "example": "homepage"
          },
          "image": {
            "type": "string",
            "description": "URL or identifier of the image associated with the webpage.",
            "example": "https://example.com/image.jpg"
          },
          "customCss": {
            "type": "string",
            "description": "Custom CSS for the webpage."
          },
          "customJsHead": {
            "type": "string",
            "description": "Custom JS for the webpage."
          },
          "customJsBody": {
            "type": "string",
            "description": "Custom JS for the webpage."
          },
          "content": {
            "$ref": "#/components/schemas/PageContentDTO",
            "description": "Content of the webpage"
          },
          "sidebar": {
            "$ref": "#/components/schemas/PreviewDTO",
            "description": "Preview of the sidebar"
          },
          "sidebarRelation": {
            "$ref": "#/components/schemas/RelationDTO",
            "description": "Relation of the sidebar"
          },
          "sidebarObject": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "Object of the sidebar"
          },
          "floatingActionBarModuleUuid": {
            "type": "string",
            "description": "UUID of the CMS module rendered as a floating action bar on this page. Null or empty disables the bar."
          },
          "options": {
            "$ref": "#/components/schemas/WebpageOptionsDTO",
            "description": "Custom options and configurations specific to the webpage."
          },
          "metaData": {
            "type": "object",
            "additionalProperties": {},
            "description": "Map of additional metadata and attributes for the webpage.",
            "example": {
              "author": "John Doe",
              "category": "blog"
            }
          },
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "Represents the associated Caraer object"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "WebpageUnlockRequest": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string"
          }
        }
      },
      "PaginationResponsePreviewDTO": {
        "type": "object",
        "description": "Response object for paginated data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data returned in the current page of the pagination.",
            "items": {
              "$ref": "#/components/schemas/PreviewDTO"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "The total number of items available.",
            "example": 100
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The current page number (starts from 1).",
            "example": 1
          },
          "perPage": {
            "type": "integer",
            "format": "int32",
            "description": "The number of items displayed per page.",
            "example": 10
          },
          "lastPage": {
            "type": "integer",
            "format": "int32",
            "description": "The last page number available for the pagination.",
            "example": 10
          }
        }
      },
      "RecordPaginationRequest": {
        "type": "object",
        "description": "Contains pagination details and optional query parameters such as filter, sort, and show options.",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The page index (one-based) to request.",
            "example": 1
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "The number of records to retrieve per page.",
            "example": 10
          },
          "filter": {
            "type": "object",
            "description": "Filters applied to the query."
          },
          "sort": {
            "type": "array",
            "description": "Sorting options for the query.",
            "items": {
              "type": "object"
            }
          },
          "show": {
            "type": "array",
            "description": "Specifies what data to show in the response.",
            "items": {
              "type": "object"
            }
          },
          "query": {
            "type": "string",
            "description": "A free-text search query applied to the records.",
            "example": "keyword"
          },
          "preview": {
            "type": "string",
            "description": "Preview information for the records, if supported."
          },
          "mainObject": {
            "type": "string",
            "description": "The main object for categorization or context.",
            "example": "user"
          },
          "column": {
            "type": "string",
            "description": "The column to group the records by."
          }
        },
        "example": {
          "page": 1,
          "limit": 10,
          "mainObject": "user",
          "query": "keyword",
          "filter": {
            "groups": []
          },
          "sort": [
            {
              "object": "user",
              "property": "createdAt",
              "direction": "DESC"
            }
          ],
          "show": [
            {
              "object": "user",
              "property": "name"
            }
          ]
        }
      },
      "ShowResponseWebpageMapLocationsDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/WebpageMapLocationsDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "WebpageMapLocationsDTO": {
        "type": "object",
        "description": "Resolved public map markers for a webpage map block",
        "properties": {
          "mapLocations": {
            "type": "array",
            "description": "Concrete markers after applying public filters",
            "items": {
              "$ref": "#/components/schemas/MapLocationDTO"
            }
          }
        }
      },
      "MapMarkerPreviewRequest": {
        "type": "object",
        "properties": {
          "recordUuid": {
            "type": "string"
          },
          "previewUuid": {
            "type": "string"
          },
          "previewName": {
            "type": "string"
          }
        }
      },
      "ShowResponsePreviewDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/PreviewDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CreateOrUpdateEnvironmentRequest": {
        "type": "object",
        "properties": {
          "environment": {
            "type": "string"
          },
          "webpageObjects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaraerObjectDTO"
            }
          }
        }
      },
      "CopyPropertyToEnvironmentsRequest": {
        "type": "object",
        "properties": {
          "objectUuid": {
            "type": "string"
          },
          "propertyUuid": {
            "type": "string",
            "deprecated": true
          },
          "propertyUuids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "environments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "fillCopiedValues": {
            "type": "boolean"
          }
        }
      },
      "RestoreResponse": {
        "type": "object",
        "description": "Represents the response returned when a restore operation is performed successfully.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "description": "The data payload of the response, if any."
          }
        }
      },
      "PaginationRequest": {
        "type": "object",
        "description": "Pagination and filtering options for the request",
        "example": {
          "filters": [
            {
              "key": "name",
              "operator": "contains",
              "value": "example_value"
            },
            {
              "key": "deletedAt",
              "operator": "isnull"
            }
          ],
          "sort": [
            {
              "key": "createdAt",
              "direction": "desc"
            }
          ],
          "show": [
            "id",
            "name",
            "status",
            "dateCreated"
          ],
          "limit": 25,
          "page": 1,
          "query": "searchText"
        },
        "properties": {
          "filters": {
            "type": "array",
            "description": "A list of key-value pairs representing filter criteria for the request. Keys represent fields to filter by, operator can be any of the following: '=', '>', '<', '>=', '<=', (not) 'in', '(not) contains', '(not) startswith', '(not) endswith', '(not) isnull'.",
            "example": [
              {
                "key": "name",
                "operator": "contains",
                "value": "example_value"
              },
              {
                "key": "deletedAt",
                "operator": "isnull"
              }
            ],
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          },
          "sort": {
            "type": "array",
            "description": "A list of key-value pairs representing sorting criteria. Keys represent fields to sort by, and values define the sort direction (e.g., 'asc' or 'desc').",
            "example": [
              {
                "key": "createdAt",
                "direction": "desc"
              }
            ],
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "show": {
            "type": "array",
            "description": "A list of field names specifying which fields to include in the response.",
            "example": [
              "id",
              "name",
              "status",
              "dateCreated"
            ],
            "items": {
              "type": "string"
            }
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "The maximum number of items to retrieve per page.",
            "example": 25
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The page number to retrieve in the paginated response (1-based index).",
            "example": 1
          },
          "query": {
            "type": "string",
            "description": "Optional search query to filter results. This will apply to all properties on the entity.",
            "example": "searchText"
          }
        }
      },
      "EventRsvpRequest": {
        "type": "object",
        "properties": {
          "partstat": {
            "type": "string",
            "description": "Participation status on the attendees edge",
            "enum": [
              "needs_action",
              "accepted",
              "declined",
              "tentative"
            ],
            "example": "accepted"
          },
          "scope": {
            "type": "string",
            "description": "Series scope for recurring events. Defaults to this.",
            "enum": [
              "this",
              "this_and_future",
              "all"
            ],
            "example": "this"
          }
        },
        "required": [
          "partstat"
        ]
      },
      "TrackingSessionUpsertRequest": {
        "type": "object",
        "properties": {
          "visitorId": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          }
        }
      },
      "TrackingEventRequest": {
        "type": "object",
        "properties": {
          "visitorId": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "ts": {
            "type": "integer",
            "format": "int64"
          },
          "pageUrl": {
            "type": "string"
          },
          "pageTitle": {
            "type": "string"
          },
          "webpageUuid": {
            "type": "string"
          },
          "recordUuid": {
            "type": "string"
          },
          "formUuid": {
            "type": "string"
          },
          "formName": {
            "type": "string"
          },
          "utm": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "referrer": {
            "type": "string"
          },
          "scrollPct": {
            "type": "integer",
            "format": "int32"
          },
          "timeOnPage": {
            "type": "integer",
            "format": "int64"
          },
          "activeTime": {
            "type": "integer",
            "format": "int64"
          },
          "ctaId": {
            "type": "string"
          },
          "ctaLabel": {
            "type": "string"
          },
          "stepIndex": {
            "type": "integer",
            "format": "int32"
          },
          "stepTitle": {
            "type": "string"
          },
          "progressPct": {
            "type": "integer",
            "format": "int32"
          },
          "completedFieldsCount": {
            "type": "integer",
            "format": "int32"
          },
          "consentChoice": {
            "type": "string"
          },
          "requestedRoute": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "clientIp": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        }
      },
      "EngagementBatchRequest": {
        "type": "object",
        "properties": {
          "visitorId": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrackingEventRequest"
            }
          }
        }
      },
      "RestoreResponseTeamDTO": {
        "type": "object",
        "description": "Represents the response returned when a restore operation is performed successfully.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/TeamDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "TeamDTO": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "memberCount": {
            "type": "integer",
            "format": "int64"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserRecordResponseDTO"
            }
          },
          "filters": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Filter"
            }
          },
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "UserRecordResponseDTO": {
        "type": "object",
        "description": "Record response for user API endpoints, including linked user data.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether the record is soft-deleted."
          },
          "properties": {
            "type": "array",
            "description": "Record properties for display.",
            "items": {
              "$ref": "#/components/schemas/FilledProperty"
            }
          },
          "objects": {
            "type": "object",
            "additionalProperties": {},
            "description": "Primary and extended object metadata for this record."
          },
          "user": {
            "$ref": "#/components/schemas/PublicUserDTO",
            "description": "The user linked to this record when the user trait is enabled."
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "ExtendRecordRequest": {
        "type": "object",
        "description": "Request to extend a record",
        "properties": {
          "objects": {
            "type": "array",
            "description": "The objects to extend the record into",
            "items": {
              "$ref": "#/components/schemas/CaraerObjectDTO"
            },
            "uniqueItems": true
          }
        }
      },
      "BulkDeleteRecordsRequest": {
        "type": "object",
        "description": "Request to archive, anonymize, or permanently delete multiple records.",
        "properties": {
          "uuids": {
            "type": "array",
            "description": "Record UUIDs to delete.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "type": "string",
            "description": "Deletion mode: 'archive', 'anonymize', or 'delete'.",
            "example": "archive"
          }
        },
        "required": [
          "mode",
          "uuids"
        ]
      },
      "BulkDeleteRecordsData": {
        "type": "object",
        "description": "Payload of a bulk delete records response.",
        "properties": {
          "uuids": {
            "type": "array",
            "description": "UUIDs that were successfully deleted.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BulkDeleteRecordsResponse": {
        "type": "object",
        "description": "Response for a bulk delete records operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "Result message."
          },
          "data": {
            "$ref": "#/components/schemas/BulkDeleteRecordsData",
            "description": "Successfully deleted record UUIDs."
          },
          "errors": {
            "type": "array",
            "description": "Per-record errors when one or more items failed.",
            "items": {
              "$ref": "#/components/schemas/BulkEditRecordErrorItem"
            }
          }
        }
      },
      "SearchRequest": {
        "type": "object",
        "description": "Request DTO for searching records.",
        "example": {
          "query": "keyword",
          "objectUuid": "123e4567-e89b-12d3-a456-426614174000",
          "limit": 10,
          "page": 1
        },
        "properties": {
          "query": {
            "type": "string",
            "description": "The query to search for.",
            "example": "keyword"
          },
          "objectUuid": {
            "type": "string",
            "description": "The UUID of the object to search in.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "The limit of the search.",
            "example": 10
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The page of the search.",
            "example": 1
          },
          "preview": {
            "type": "string",
            "description": "The preview of the search.",
            "example": "summary preview"
          }
        }
      },
      "CrossObjectRecordSearchRequest": {
        "type": "object",
        "description": "Request DTO for searching records across multiple objects.",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free-text search query.",
            "example": "jane@example.com"
          },
          "fromObjectUuid": {
            "type": "string",
            "description": "Event (or source) object UUID used with relationName to resolve target objects."
          },
          "relationName": {
            "type": "string",
            "description": "Relation name whose connected target objects are searched (e.g. attendees)."
          },
          "objectUuids": {
            "type": "array",
            "description": "Object UUIDs to search. Used on their own when relationName is omitted; combined with relationName they narrow the relation's target objects.",
            "items": {
              "type": "string"
            }
          },
          "objectNames": {
            "type": "array",
            "description": "Object internal names to search. Behaves like objectUuids and may be combined with it.",
            "example": [
              "user",
              "contact"
            ],
            "items": {
              "type": "string"
            }
          },
          "preview": {
            "type": "string",
            "description": "Preview template name.",
            "example": "pill"
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "Page number (1-based).",
            "example": 1
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum records returned.",
            "example": 25
          },
          "excludeRecordUuid": {
            "type": "string",
            "description": "Optional record UUID to exclude from results."
          }
        }
      },
      "RelationEdgeRequestDTO": {
        "type": "object",
        "description": "Optional relation edge payload",
        "properties": {
          "edgeProperties": {
            "type": "object",
            "additionalProperties": {},
            "description": "Values for properties declared on the relation schema, stored on the edge itself. A null value clears that key.",
            "example": {
              "partstat": "ACCEPTED"
            }
          },
          "primary": {
            "type": "boolean",
            "description": "When true, marks this relation edge as primary. Overrides the primary query parameter."
          }
        }
      },
      "AdvancedRecordQueryPlan": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "format": "int32"
          },
          "mainObject": {
            "type": "string"
          },
          "mainObjects": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "query": {
            "type": "string"
          },
          "filter": {
            "$ref": "#/components/schemas/Filter"
          },
          "sort": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SortItem"
            },
            "uniqueItems": true
          },
          "show": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShowItem"
            },
            "uniqueItems": true
          },
          "strategy": {
            "type": "string",
            "enum": [
              "AUTO",
              "STRUCTURED",
              "LEXICAL",
              "SEMANTIC",
              "HYBRID",
              "GRAPH"
            ]
          },
          "anchorRecordUuid": {
            "type": "string"
          },
          "criteria": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "graphTraversals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GraphTraversalSpec"
            }
          },
          "scoreWeights": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "includeEvidence": {
            "type": "boolean"
          },
          "maxTraversalDepth": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AdvancedRecordQueryRequest": {
        "type": "object",
        "description": "Advanced record query. Provide either question or plan, not both.",
        "properties": {
          "question": {
            "type": "string",
            "description": "Natural-language question to plan and execute."
          },
          "plan": {
            "$ref": "#/components/schemas/AdvancedRecordQueryPlan",
            "description": "Validated declarative query plan."
          },
          "mainObject": {
            "type": "string",
            "description": "Optional main object hint. Use mainObjects for multi-type queries."
          },
          "mainObjects": {
            "type": "array",
            "description": "Optional object list for multi-type queries (e.g. candidate and vacancy together).",
            "items": {
              "type": "string"
            }
          },
          "strategy": {
            "type": "string",
            "enum": [
              "AUTO",
              "STRUCTURED",
              "LEXICAL",
              "SEMANTIC",
              "HYBRID",
              "GRAPH"
            ]
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "preview": {
            "type": "string"
          },
          "parse": {},
          "archived": {
            "type": "boolean"
          },
          "explain": {
            "type": "boolean",
            "description": "When true, include normalized plan, scores, and evidence."
          },
          "recordReturnFormat": {
            "type": "string"
          }
        }
      },
      "GraphTraversalSpec": {
        "type": "object",
        "properties": {
          "relation": {
            "type": "string"
          },
          "targetObject": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "maxDepth": {
            "type": "integer",
            "format": "int32"
          },
          "includeLifecycle": {
            "type": "boolean"
          },
          "includeActivities": {
            "type": "boolean"
          },
          "perRelationLimit": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AdvancedRecordQueryResponse": {
        "type": "object",
        "description": "Advanced record query response with scores and evidence.",
        "properties": {
          "data": {
            "type": "array",
            "items": {}
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdvancedRecordQueryResultItem"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          },
          "plan": {
            "$ref": "#/components/schemas/AdvancedRecordQueryPlan"
          },
          "confidence": {
            "type": "number",
            "format": "double"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "diagnostics": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "AdvancedRecordQueryResultItem": {
        "type": "object",
        "properties": {
          "record": {},
          "recordUuid": {
            "type": "string"
          },
          "objectName": {
            "type": "string"
          },
          "scores": {
            "$ref": "#/components/schemas/ScoreBreakdown"
          },
          "criteria": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CriterionScore"
            }
          },
          "supportingEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueryEvidence"
            }
          },
          "contradictingEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueryEvidence"
            }
          }
        }
      },
      "CriterionScore": {
        "type": "object",
        "properties": {
          "criterion": {
            "type": "string"
          },
          "score": {
            "type": "number",
            "format": "double"
          },
          "weight": {
            "type": "number",
            "format": "double"
          },
          "rationale": {
            "type": "string"
          },
          "supportingEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueryEvidence"
            }
          },
          "contradictingEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueryEvidence"
            }
          }
        }
      },
      "GraphPathEvidence": {
        "type": "object",
        "properties": {
          "path": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          },
          "summary": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "targetObject": {
            "type": "string"
          },
          "recordUuid": {
            "type": "string"
          }
        }
      },
      "QueryEvidence": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "polarity": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "sourceObject": {
            "type": "string"
          },
          "sourceRecordUuid": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "timestamp": {
            "type": "integer",
            "format": "int64"
          },
          "recencyWeight": {
            "type": "number",
            "format": "double"
          },
          "confidence": {
            "type": "number",
            "format": "double"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {}
          },
          "paths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GraphPathEvidence"
            }
          }
        }
      },
      "ScoreBreakdown": {
        "type": "object",
        "properties": {
          "overall": {
            "type": "number",
            "format": "double"
          },
          "structured": {
            "type": "number",
            "format": "double"
          },
          "lexical": {
            "type": "number",
            "format": "double"
          },
          "semantic": {
            "type": "number",
            "format": "double"
          },
          "graph": {
            "type": "number",
            "format": "double"
          },
          "evidenceAdjustment": {
            "type": "number",
            "format": "double"
          },
          "confidence": {
            "type": "number",
            "format": "double"
          },
          "components": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "CRUD": {
        "type": "object",
        "properties": {
          "sessionType": {
            "type": "string",
            "enum": [
              "MAIN",
              "USER"
            ],
            "writeOnly": true
          },
          "httpSessionId": {
            "type": "string"
          },
          "turnOffMetaRelationships": {
            "type": "boolean",
            "writeOnly": true
          }
        }
      },
      "FlowPaginationRequest": {
        "type": "object",
        "description": "Request DTO for paginated data flow with filters, sorting, displayed items, and related information.",
        "properties": {
          "crud": {
            "$ref": "#/components/schemas/CRUD"
          },
          "showItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShowItem"
            },
            "uniqueItems": true,
            "writeOnly": true
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The page index (one-based) to request.",
            "example": 1
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "The number of records to retrieve per page.",
            "example": 10
          },
          "filter": {
            "$ref": "#/components/schemas/Filter",
            "description": "Filters applied to the query."
          },
          "sort": {
            "type": "array",
            "description": "Sorting options for the query.",
            "items": {
              "$ref": "#/components/schemas/SortItem",
              "description": "Sorting options for the query."
            },
            "uniqueItems": true
          },
          "show": {
            "type": "array",
            "description": "Specifies what data to show in the response.",
            "items": {
              "$ref": "#/components/schemas/ShowItem",
              "description": "Specifies what data to show in the response."
            }
          },
          "query": {
            "type": "string",
            "description": "A free-text search query applied to the records.",
            "example": "keyword"
          },
          "preview": {
            "type": "string",
            "description": "Preview information for the records, if supported.",
            "example": "summary preview"
          },
          "mainObject": {
            "type": "string",
            "description": "The main object for categorization or context.",
            "example": "user"
          },
          "column": {
            "type": "string",
            "description": "Column name for sorting or filtering data",
            "example": "status"
          },
          "property": {
            "type": "string",
            "description": "UUID of the property used in the request",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          }
        }
      },
      "ExistingWidgetSummary": {
        "type": "object",
        "properties": {
          "ymetric": {
            "type": "string"
          },
          "xproperty": {
            "type": "string"
          },
          "yproperty": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "chartType": {
            "type": "string"
          },
          "xProperty": {
            "type": "string"
          },
          "yMetric": {
            "type": "string"
          },
          "yProperty": {
            "type": "string"
          }
        }
      },
      "SuggestAnalyticsWidgetsRequest": {
        "type": "object",
        "properties": {
          "objectName": {
            "type": "string"
          },
          "goal": {
            "type": "string"
          },
          "existingWidgets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExistingWidgetSummary"
            }
          }
        }
      },
      "AggregateRequest": {
        "type": "object",
        "description": "Aggregation request for analytics charts over Neo4j records.",
        "properties": {
          "xaxis": {
            "$ref": "#/components/schemas/AnalyticsAxisConfig"
          },
          "yaxis": {
            "$ref": "#/components/schemas/AnalyticsAxisConfig"
          },
          "id": {
            "type": "string",
            "description": "Optional client widget id, echoed in batch responses."
          },
          "mainObject": {
            "type": "string"
          },
          "filter": {
            "$ref": "#/components/schemas/Filter"
          },
          "query": {
            "type": "string"
          },
          "xAxis": {
            "$ref": "#/components/schemas/AnalyticsAxisConfig"
          },
          "yAxis": {
            "$ref": "#/components/schemas/AnalyticsAxisConfig"
          },
          "series": {
            "$ref": "#/components/schemas/AnalyticsSeriesConfig"
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "Optional top-N series limit. For additive metrics (count, countDistinct, sum), keeps the N series with the highest total Y. Null or <= 0 means no truncation."
          },
          "sort": {
            "type": "string"
          },
          "excludeEmptyValues": {
            "type": "boolean",
            "description": "When true, omit null/blank/(empty) category buckets from the response. Useful for bar and pie charts grouped by optional properties."
          }
        }
      },
      "AggregateBatchRequest": {
        "type": "object",
        "description": "Batch aggregation request for loading a dashboard.",
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AggregateRequest"
            }
          }
        }
      },
      "CreateCompanyRequest": {
        "type": "object",
        "description": "DTO representing a request to create a new company, including the company's name and subdomain.",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the company to be created.",
            "example": "Tech Solutions"
          },
          "subdomain": {
            "type": "string",
            "description": "The desired subdomain for the company. This will be used for company-specific URLs.",
            "example": "tech-solutions"
          },
          "companyName": {
            "type": "string",
            "description": "The company name.",
            "example": "Tech Solutions"
          },
          "copyDatabaseId": {
            "type": "string",
            "description": "The copy database id.",
            "example": "caraer"
          },
          "includeRecords": {
            "type": "boolean",
            "description": "Whether to include records in the company.",
            "example": true
          }
        }
      },
      "SuccessResponseCompanyDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CompanyDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "RestoreResponseCaraerObjectDTO": {
        "type": "object",
        "description": "Represents the response returned when a restore operation is performed successfully.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "RestoreResponseViewDTO": {
        "type": "object",
        "description": "Represents the response returned when a restore operation is performed successfully.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/ViewDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CopyPropertiesToObjectRequest": {
        "type": "object",
        "properties": {
          "propertyUuids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ObjectAccessGrantRequestDTO": {
        "type": "object",
        "description": "Request to grant record-level access on an object to users, teams, and apps.",
        "properties": {
          "users": {
            "$ref": "#/components/schemas/ObjectAccessGrantSectionDTO",
            "description": "User grants"
          },
          "teams": {
            "$ref": "#/components/schemas/ObjectAccessGrantSectionDTO",
            "description": "Team grants"
          },
          "apps": {
            "$ref": "#/components/schemas/ObjectAccessGrantSectionDTO",
            "description": "Installed app grants"
          }
        }
      },
      "ObjectAccessGrantSectionDTO": {
        "type": "object",
        "description": "Access grant selection for one principal type (users, teams, or apps).",
        "properties": {
          "uuids": {
            "type": "array",
            "description": "UUIDs to grant access to",
            "items": {
              "type": "string"
            }
          },
          "globalScopes": {
            "type": "array",
            "description": "Record scopes applied to every selected UUID",
            "items": {
              "type": "string"
            }
          },
          "overrides": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Per-UUID scope overrides merged with globalScopes"
          }
        }
      },
      "SendNotificationRequest": {
        "type": "object",
        "description": "Request body for sending an in-app notification in a company",
        "properties": {
          "targetUserUuid": {
            "type": "string",
            "description": "Optional. Aim this notification at one user in the company. Omit to notify every user who has access to the company."
          },
          "title": {
            "type": "string",
            "description": "Notification title"
          },
          "body": {
            "type": "string",
            "description": "Notification body (supports Markdown for links)"
          },
          "type": {
            "type": "string",
            "description": "Notification type identifier"
          },
          "icon": {
            "type": "string",
            "description": "Optional icon identifier"
          },
          "action": {
            "type": "string",
            "description": "Optional structured action identifier"
          },
          "actionTitle": {
            "type": "string",
            "description": "Optional label for the action button"
          },
          "data": {
            "type": "object",
            "additionalProperties": {},
            "description": "Optional action payload"
          }
        },
        "required": [
          "body",
          "title"
        ]
      },
      "PaginationResponsePropertyOption": {
        "type": "object",
        "description": "Response object for paginated data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data returned in the current page of the pagination.",
            "items": {
              "$ref": "#/components/schemas/PropertyOption"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "The total number of items available.",
            "example": 100
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The current page number (starts from 1).",
            "example": 1
          },
          "perPage": {
            "type": "integer",
            "format": "int32",
            "description": "The number of items displayed per page.",
            "example": 10
          },
          "lastPage": {
            "type": "integer",
            "format": "int32",
            "description": "The last page number available for the pagination.",
            "example": 10
          }
        }
      },
      "PaginationResponsePublicFormDTO": {
        "type": "object",
        "description": "Response object for paginated data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data returned in the current page of the pagination.",
            "items": {
              "$ref": "#/components/schemas/PublicFormDTO"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "The total number of items available.",
            "example": 100
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The current page number (starts from 1).",
            "example": 1
          },
          "perPage": {
            "type": "integer",
            "format": "int32",
            "description": "The number of items displayed per page.",
            "example": 10
          },
          "lastPage": {
            "type": "integer",
            "format": "int32",
            "description": "The last page number available for the pagination.",
            "example": 10
          }
        }
      },
      "PublicFormDTO": {
        "type": "object",
        "description": "Data transfer object representing a form with its associated properties and structure",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The associated Caraer object that this form belongs to"
          },
          "grids": {
            "type": "array",
            "description": "List of form items that make up the form's structure. Each grid represents a section or group of form elements",
            "items": {
              "$ref": "#/components/schemas/FormItemDTO"
            }
          },
          "description": {
            "type": "string",
            "description": "Descriptive text providing additional information about the form"
          },
          "styling": {
            "type": "string",
            "description": "The styling of the form. Can be 'standard', 'underline' or 'plain'"
          },
          "wizard": {
            "type": "boolean",
            "description": "Indicates if the form should be displayed as a step-by-step wizard interface"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata associated with the form"
          },
          "thankYouMessage": {
            "type": "string",
            "description": "Thank you message to be displayed after the form is submitted"
          },
          "redirectUrl": {
            "type": "string",
            "description": "Redirect URL to be displayed after the form is submitted"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "FormWithAiPromptDTO": {
        "type": "object",
        "description": "Data transfer object representing a form with its associated properties and structure",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "object": {
            "$ref": "#/components/schemas/CaraerObjectDTO",
            "description": "The associated Caraer object that this form belongs to"
          },
          "grids": {
            "type": "array",
            "description": "List of form items that make up the form's structure. Each grid represents a section or group of form elements",
            "items": {
              "$ref": "#/components/schemas/FormItemDTO"
            }
          },
          "description": {
            "type": "string",
            "description": "Descriptive text providing additional information about the form"
          },
          "styling": {
            "type": "string",
            "description": "The styling of the form. Can be 'standard', 'underline' or 'plain'"
          },
          "leadscores": {
            "type": "array",
            "description": "List of lead scoring rules associated with this form. Used to evaluate and score form submissions",
            "items": {
              "$ref": "#/components/schemas/Leadscore"
            }
          },
          "relations": {
            "type": "array",
            "description": "List of form relations that define the relationships between this form conversion record and other records in the system",
            "items": {
              "$ref": "#/components/schemas/FormRelationDTO"
            }
          },
          "wizard": {
            "type": "boolean",
            "description": "Indicates if the form should be displayed as a step-by-step wizard interface"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata associated with the form"
          },
          "thankYouMessage": {
            "type": "string",
            "description": "Thank you message to be displayed after the form is submitted"
          },
          "redirectUrl": {
            "type": "string",
            "description": "Redirect URL to be displayed after the form is submitted"
          },
          "aiPrompt": {
            "type": "string",
            "description": "AI prompt to be used for the form"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "SuccessResponseListString": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RestoreResponseSavedFilterDTO": {
        "type": "object",
        "description": "Represents the response returned when a restore operation is performed successfully.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/SavedFilterDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CreateResponseFeedDTO": {
        "type": "object",
        "description": "Response for a successful resource creation operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/FeedDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "SuccessResponseFeedDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/FeedDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "SuccessResponseListMapStringObject": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          }
        }
      },
      "FeedImportRunDTO": {
        "type": "object",
        "properties": {
          "dryRun": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "itemCount": {
            "type": "integer",
            "format": "int32"
          },
          "created": {
            "type": "integer",
            "format": "int32"
          },
          "updated": {
            "type": "integer",
            "format": "int32"
          },
          "failed": {
            "type": "integer",
            "format": "int32"
          },
          "published": {
            "type": "integer",
            "format": "int32"
          },
          "unpublished": {
            "type": "integer",
            "format": "int32"
          },
          "skipped": {
            "type": "integer",
            "format": "int32"
          },
          "sampleIncomplete": {
            "type": "boolean"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          },
          "keys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SuccessResponseFeedImportRunDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/FeedImportRunDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "PaginationResponseFeedDTO": {
        "type": "object",
        "description": "Response object for paginated data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data returned in the current page of the pagination.",
            "items": {
              "$ref": "#/components/schemas/FeedDTO"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "The total number of items available.",
            "example": 100
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The current page number (starts from 1).",
            "example": 1
          },
          "perPage": {
            "type": "integer",
            "format": "int32",
            "description": "The number of items displayed per page.",
            "example": 10
          },
          "lastPage": {
            "type": "integer",
            "format": "int32",
            "description": "The last page number available for the pagination.",
            "example": 10
          }
        }
      },
      "FeedFormatSuggestionRequest": {
        "type": "object",
        "properties": {
          "feed": {
            "$ref": "#/components/schemas/FeedDTO"
          },
          "fieldName": {
            "type": "string"
          },
          "propertyName": {
            "type": "string"
          },
          "objectName": {
            "type": "string"
          }
        }
      },
      "FeedFormatPreviewDTO": {
        "type": "object",
        "properties": {
          "sample": {
            "type": "string"
          },
          "formatPattern": {
            "type": "string"
          },
          "formatReplacement": {
            "type": "string"
          },
          "output": {
            "type": "string"
          },
          "matches": {
            "type": "boolean"
          },
          "storedValuePattern": {
            "type": "string"
          },
          "storedValueHint": {
            "type": "string"
          },
          "formatName": {
            "type": "string"
          }
        }
      },
      "SuccessResponseFeedFormatPreviewDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/FeedFormatPreviewDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "FeedFormatPreviewRequest": {
        "type": "object",
        "properties": {
          "sample": {
            "type": "string"
          },
          "formatPattern": {
            "type": "string"
          },
          "formatReplacement": {
            "type": "string"
          },
          "propertyName": {
            "type": "string"
          },
          "objectName": {
            "type": "string"
          }
        }
      },
      "CreateDeveloperSandboxRequest": {
        "type": "object",
        "description": "Request body for creating a developer sandbox.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Sandbox name.",
            "example": "qa-sandbox"
          },
          "label": {
            "type": "string",
            "description": "Optional human-readable label for the sandbox.",
            "example": "QA Sandbox"
          }
        }
      },
      "CreateDeveloperProjectRequest": {
        "type": "object",
        "description": "Request body for creating (or fetching an existing) developer project for an app.",
        "properties": {
          "appUuid": {
            "type": "string",
            "description": "UUID of the app to link this project to.",
            "example": "app-uuid"
          },
          "name": {
            "type": "string",
            "description": "Project name.",
            "example": "my-app-project"
          },
          "label": {
            "type": "string",
            "description": "Optional human-readable label for the project.",
            "example": "My App Project"
          }
        }
      },
      "CreateProjectBuildRequest": {
        "type": "object",
        "description": "Request body for uploading a developer project build archive.",
        "properties": {
          "archiveBase64": {
            "type": "string",
            "description": "Base64-encoded zip archive containing caraer.project.json and src/app."
          },
          "filename": {
            "type": "string",
            "description": "Original archive filename, for traceability.",
            "example": "upload.zip"
          },
          "target": {
            "type": "string",
            "description": "Deploy target: production or sandbox.",
            "example": "production"
          },
          "version": {
            "type": "string",
            "description": "Semantic version for this build (MAJOR.MINOR.PATCH). Auto-bumped when omitted.",
            "example": "1.2.0"
          },
          "releaseNotes": {
            "type": "string",
            "description": "Release notes for this build."
          }
        }
      },
      "DeployBuildRequest": {
        "type": "object",
        "description": "Request body for deploying a developer project build.",
        "properties": {
          "target": {
            "type": "string",
            "description": "Deploy target: production or sandbox. Defaults to the build's target.",
            "example": "production"
          },
          "prune": {
            "type": "boolean",
            "description": "When true, soft-delete remote functions/webhooks/schedules/inbound routes/OAuth providers that are absent from the build archive. Defaults to false.",
            "example": false
          }
        }
      },
      "ShowResponseCompanyDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CompanyDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CalendarCreateRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "teamUuid": {
            "type": "string"
          },
          "company": {
            "type": "boolean"
          }
        }
      },
      "CalendarRecordDTO": {
        "type": "object",
        "properties": {
          "default": {
            "type": "boolean"
          },
          "uuid": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "colorHex": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "ownerUuid": {
            "type": "string"
          },
          "ownerName": {
            "type": "string"
          },
          "ownedByCurrentUser": {
            "type": "boolean"
          },
          "teamUuid": {
            "type": "string"
          },
          "teamName": {
            "type": "string"
          },
          "companyCalendar": {
            "type": "boolean"
          },
          "companyName": {
            "type": "string"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarTeamMemberDTO"
            }
          }
        }
      },
      "CalendarTeamMemberDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "objectName": {
            "type": "string"
          },
          "hasUserTrait": {
            "type": "boolean"
          }
        }
      },
      "CreateResponseCalendarRecordDTO": {
        "type": "object",
        "description": "Response for a successful resource creation operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CalendarRecordDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CalendarBootstrapDTO": {
        "type": "object",
        "properties": {
          "defaultCalendar": {
            "$ref": "#/components/schemas/CalendarRecordDTO"
          },
          "calendars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarRecordDTO"
            }
          },
          "backfilled": {
            "type": "integer",
            "format": "int32"
          },
          "teamCalendarsCreated": {
            "type": "integer",
            "format": "int32"
          },
          "companyCalendarCreated": {
            "type": "boolean"
          }
        }
      },
      "SuccessResponseCalendarBootstrapDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/CalendarBootstrapDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ResetPasswordRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "token": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "RegisterRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "minLength": 1
          },
          "password": {
            "type": "string",
            "maxLength": 2147483647,
            "minLength": 8
          },
          "firstname": {
            "type": "string",
            "minLength": 1
          },
          "lastname": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "email",
          "firstname",
          "lastname",
          "password"
        ]
      },
      "RefreshTokenRequest": {
        "type": "object",
        "description": "Exchange a refresh token for a new access token",
        "properties": {
          "refreshToken": {
            "type": "string",
            "description": "Refresh token issued by device poll / refresh"
          }
        },
        "required": [
          "refreshToken"
        ]
      },
      "LoginRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "minLength": 1
          },
          "password": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "DevicePollRequest": {
        "type": "object",
        "description": "Poll a device-code login session",
        "properties": {
          "deviceCode": {
            "type": "string",
            "description": "Device code returned by /auth/device/start"
          }
        },
        "required": [
          "deviceCode"
        ]
      },
      "DeviceApproveRequest": {
        "type": "object",
        "description": "Approve a pending device-code login (authenticated browser session)",
        "properties": {
          "userCode": {
            "type": "string",
            "description": "User-facing code shown by the CLI"
          }
        },
        "required": [
          "userCode"
        ]
      },
      "AppRequest": {
        "type": "object",
        "description": "Settings required to uninstall the application",
        "properties": {
          "settings": {
            "type": "array",
            "description": "A map of configuration settings. The keys are strings representing the setting names, and the values represent the setting values, which can be different types.",
            "example": {
              "theme": "dark",
              "notifications": true
            },
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          }
        }
      },
      "LoadAppSettingOptionsRequest": {
        "type": "object",
        "description": "Request to load dynamic options for a SINGLE_SELECT or MULTI_SELECT setting field.",
        "properties": {
          "fieldName": {
            "type": "string",
            "description": "Name of the setting field to load options for."
          },
          "query": {
            "type": "string",
            "description": "Optional search query typed by the installer."
          },
          "settingsSchema": {
            "type": "array",
            "description": "Current draft settings schema with values from the installer UI.",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          },
          "appBarUuid": {
            "type": "string",
            "description": "When loading options for an app bar field, the app bar UUID."
          },
          "recordUuid": {
            "type": "string",
            "description": "Record in context when the options field is on an action dialog."
          },
          "object": {
            "type": "string",
            "description": "Object name in context when the options field is on an action dialog."
          }
        },
        "required": [
          "fieldName",
          "settingsSchema"
        ]
      },
      "MigrateAppToV2Request": {
        "type": "object",
        "description": "Request to migrate an existing V1 app to platform V2 (shared container runtime)",
        "properties": {
          "runtime": {
            "type": "string",
            "description": "Required when functions disagree or none set: nodejs22 or python312",
            "example": "nodejs22"
          }
        }
      },
      "InstallAppRequest": {
        "type": "object",
        "description": "Optional initial configuration settings",
        "properties": {
          "settings": {
            "type": "array",
            "description": "Optional initial configuration settings (key-value via AppSettingFieldSchema name/value).",
            "items": {
              "$ref": "#/components/schemas/AppSettingFieldSchema"
            }
          },
          "scopes": {
            "type": "array",
            "description": "Optional scopes to grant to the app.",
            "items": {
              "type": "string"
            }
          },
          "filters": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Filter"
            },
            "description": "Optional per-object record filters for this installation (object name → filter)."
          },
          "appBarVisibility": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/AppBarVisibilityEntry"
            },
            "description": "Optional per-app-bar placement config keyed by app bar UUID."
          }
        }
      },
      "TestWebhookRequest": {
        "type": "object",
        "description": "Webhook configuration and test parameters",
        "properties": {
          "webhook": {
            "$ref": "#/components/schemas/SubscribeWebhookDTO",
            "description": "Webhook configuration to test (not saved)."
          },
          "recordUuid": {
            "type": "string",
            "description": "UUID of the record to base the event on. Omit to auto-resolve from webhook topic.",
            "example": "record-uuid"
          },
          "eventType": {
            "type": "string",
            "description": "Event type to simulate (created, updated, deleted, etc.).",
            "example": "created"
          },
          "propertyName": {
            "type": "string",
            "description": "Property name when simulating property_changed.",
            "example": "status"
          }
        },
        "required": [
          "webhook"
        ]
      },
      "TestServerlessFunctionRequest": {
        "type": "object",
        "description": "Request body for testing a serverless function with a specific record and event type.",
        "properties": {
          "recordUuid": {
            "type": "string",
            "description": "UUID of the record to base the event on.",
            "example": "record-uuid"
          },
          "eventType": {
            "type": "string",
            "description": "Event type to simulate (created, updated, deleted, etc.).",
            "example": "created"
          },
          "forceProvision": {
            "type": "boolean",
            "description": "If true, forces re-provisioning of the serverless function before invocation.",
            "example": false
          }
        }
      },
      "SamplePayloadRequest": {
        "type": "object",
        "description": "Request body for generating a sample webhook payload from a record and event type.",
        "properties": {
          "recordUuid": {
            "type": "string",
            "description": "UUID of the record to base the sample payload on.",
            "example": "record-uuid"
          },
          "eventType": {
            "type": "string",
            "description": "Event type to simulate (created, updated, deleted, etc.).",
            "example": "created"
          }
        }
      },
      "CreateResponseAppScheduleDTO": {
        "type": "object",
        "description": "Response for a successful resource creation operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppScheduleDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "AppOAuthStartResponseDTO": {
        "type": "object",
        "properties": {
          "authorizeUrl": {
            "type": "string"
          }
        }
      },
      "ShowResponseAppOAuthStartResponseDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppOAuthStartResponseDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CreateResponseAppInboundRouteDTO": {
        "type": "object",
        "description": "Response for a successful resource creation operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppInboundRouteDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "CreateResponseAppExternalOAuthProviderDTO": {
        "type": "object",
        "description": "Response for a successful resource creation operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/AppExternalOAuthProviderDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ReviewRequest": {
        "type": "object",
        "description": "Review request with feedback, reviewer notes, and publish state",
        "properties": {
          "feedback": {
            "type": "string",
            "description": "Feedback shown to the developer.",
            "example": "Please add screenshots to the app details."
          },
          "reviewerNotes": {
            "type": "string",
            "description": "Internal notes for reviewers (not shown to the developer)."
          },
          "publishState": {
            "type": "string",
            "description": "Publish state after review: APPROVED, REJECTED, CHANGES_REQUESTED.",
            "example": "APPROVED"
          }
        }
      },
      "CreatePrivateAppRequest": {
        "type": "object",
        "description": "Private app creation request with label and optional description",
        "properties": {
          "label": {
            "type": "string",
            "description": "The display label for the private app.",
            "example": "My Custom App"
          },
          "description": {
            "type": "string",
            "description": "Optional description text for the app.",
            "example": "A custom app for internal use"
          },
          "authMethod": {
            "type": "string",
            "description": "Authentication method (API_KEY default, OAUTH2 for OAuth 2.0)",
            "enum": [
              "API_KEY",
              "OAUTH2"
            ]
          },
          "oauthRedirectUris": {
            "type": "array",
            "description": "Registered OAuth redirect URIs (required when authMethod is OAUTH2)",
            "items": {
              "type": "string"
            }
          },
          "platformVersion": {
            "type": "integer",
            "format": "int32",
            "description": "Ignored; new private apps are always platform version 2 (async container runtime)."
          },
          "runtime": {
            "type": "string",
            "description": "Serverless runtime for the app: nodejs22 or python312. Defaults to nodejs22."
          }
        },
        "required": [
          "label"
        ]
      },
      "AppBarTriggerRequest": {
        "type": "object",
        "description": "Request body for triggering an action-based app bar",
        "properties": {
          "recordUuid": {
            "type": "string",
            "description": "UUID of the record in context"
          },
          "object": {
            "type": "string",
            "description": "Object name in context"
          },
          "viewId": {
            "type": "string",
            "description": "View ID in context"
          },
          "trait": {
            "type": "string",
            "description": "Trait name in context"
          },
          "viewData": {
            "type": "object",
            "additionalProperties": {},
            "description": "Current view data for rebuilding the active index"
          },
          "settingsValues": {
            "type": "object",
            "additionalProperties": {},
            "description": "Values for settingsSchema fields supplied at trigger time"
          }
        }
      },
      "AppBarIframeSessionRequest": {
        "type": "object",
        "description": "Request body for creating an iframe session token",
        "properties": {
          "object": {
            "type": "string",
            "description": "Object name in context"
          },
          "recordUuid": {
            "type": "string",
            "description": "UUID of the record in context"
          },
          "viewId": {
            "type": "string",
            "description": "View ID in context"
          },
          "trait": {
            "type": "string",
            "description": "Trait name in context"
          },
          "viewData": {
            "type": "object",
            "additionalProperties": {},
            "description": "Current view data for rebuilding the active index"
          }
        }
      },
      "AppBarIframeSessionValidateRequest": {
        "type": "object",
        "description": "Request body for validating an iframe session token",
        "properties": {
          "token": {
            "type": "string",
            "description": "Opaque iframe session token from the iframe URL"
          }
        }
      },
      "PaginationResponseWebpageAccessGrantDTO": {
        "type": "object",
        "description": "Response object for paginated data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data returned in the current page of the pagination.",
            "items": {
              "$ref": "#/components/schemas/WebpageAccessGrantDTO"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "The total number of items available.",
            "example": 100
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The current page number (starts from 1).",
            "example": 1
          },
          "perPage": {
            "type": "integer",
            "format": "int32",
            "description": "The number of items displayed per page.",
            "example": 10
          },
          "lastPage": {
            "type": "integer",
            "format": "int32",
            "description": "The last page number available for the pagination.",
            "example": 10
          }
        }
      },
      "WebpageAccessGrantDTO": {
        "type": "object",
        "description": "Signed URL access grant for a protected webpage",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "recordUuid": {
            "type": "string"
          },
          "expiresAt": {
            "type": "integer",
            "format": "int64"
          },
          "revokedAt": {
            "type": "integer",
            "format": "int64"
          },
          "active": {
            "type": "boolean"
          },
          "tokenHash": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "ShowResponseListMapStringObject": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          }
        }
      },
      "CmsPublicMenuDTO": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebMenuItem"
            }
          }
        }
      },
      "ShowResponseListCmsPublicMenuDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/CmsPublicMenuDTO"
            }
          }
        }
      },
      "ShowResponseListWebpageAccessGrantDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/WebpageAccessGrantDTO"
            }
          }
        }
      },
      "ShowResponseWebpageProtectionInfoDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/WebpageProtectionInfoDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "WebpageProtectionInfoDTO": {
        "type": "object",
        "description": "Public protection metadata for a webpage (no content)",
        "properties": {
          "protectionRequired": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "uuid": {
            "type": "string"
          }
        }
      },
      "SimplePublicCompanyDTO": {
        "type": "object",
        "description": "Data Transfer Object representing a public-facing view of a company",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier of the company"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp of the last update (in milliseconds since epoch)"
          },
          "website": {
            "type": "string",
            "description": "The website URL of the company"
          },
          "cookiePolicy": {
            "type": "string",
            "description": "Cookie policy URL of the company"
          },
          "favicon": {
            "type": "string",
            "description": "Path to the company's favicon"
          },
          "privacyPolicy": {
            "type": "string",
            "description": "Privacy policy URL of the company"
          },
          "accentColor": {
            "type": "string",
            "description": "The accent color used by the company"
          },
          "twitterUrl": {
            "type": "string",
            "description": "Twitter URL of the company's social media page"
          },
          "primaryColor": {
            "type": "string",
            "description": "The company's primary color used in branding"
          },
          "termsAndConditions": {
            "type": "string",
            "description": "Terms and conditions URL of the company"
          },
          "facebookUrl": {
            "type": "string",
            "description": "URL to the company's Facebook page"
          },
          "youtubeUrl": {
            "type": "string",
            "description": "URL to the company's YouTube page"
          },
          "companyColor": {
            "type": "string",
            "description": "Company's branding color"
          },
          "name": {
            "type": "string",
            "description": "Name of the company"
          },
          "logo": {
            "type": "string",
            "description": "Path to the company's logo image"
          },
          "instagramUrl": {
            "type": "string",
            "description": "URL to the company's Instagram page"
          },
          "fontColor": {
            "type": "string",
            "description": "Font color used in company's branding"
          },
          "secondaryColor": {
            "type": "string",
            "description": "Secondary color used in company's branding"
          },
          "rightNavBarButtonEnabled": {
            "type": "boolean",
            "description": "Boolean flag indicating if the right navigation bar button is enabled"
          },
          "rightNavBarButtonTitle": {
            "type": "string",
            "description": "Title of the right navigation bar button"
          },
          "rightNavBarButtonLink": {
            "type": "string",
            "description": "Link for the right navigation bar button"
          },
          "cssScript": {
            "type": "string",
            "description": "CSS scripts added by the company"
          },
          "jsHeadScript": {
            "type": "string",
            "description": "JavaScript code injected into the head tag of the HTML page"
          },
          "jsBodyScript": {
            "type": "string",
            "description": "JavaScript code injected into the body tag of the HTML page"
          },
          "customDomain": {
            "type": "string",
            "description": "Custom domain name used by the company"
          }
        }
      },
      "PaginationResponseCompanyDTO": {
        "type": "object",
        "description": "Response object for paginated data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data returned in the current page of the pagination.",
            "items": {
              "$ref": "#/components/schemas/CompanyDTO"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "The total number of items available.",
            "example": 100
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The current page number (starts from 1).",
            "example": 1
          },
          "perPage": {
            "type": "integer",
            "format": "int32",
            "description": "The number of items displayed per page.",
            "example": 10
          },
          "lastPage": {
            "type": "integer",
            "format": "int32",
            "description": "The last page number available for the pagination.",
            "example": 10
          }
        }
      },
      "PaginationResponseMapStringObject": {
        "type": "object",
        "description": "Response object for paginated data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data returned in the current page of the pagination.",
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "The total number of items available.",
            "example": 100
          },
          "page": {
            "type": "integer",
            "format": "int32",
            "description": "The current page number (starts from 1).",
            "example": 1
          },
          "perPage": {
            "type": "integer",
            "format": "int32",
            "description": "The number of items displayed per page.",
            "example": 10
          },
          "lastPage": {
            "type": "integer",
            "format": "int32",
            "description": "The last page number available for the pagination.",
            "example": 10
          }
        }
      },
      "AccessGrantTargetDTO": {
        "type": "object",
        "description": "A user, team, or app that can receive record access on an object.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "UUID of the principal"
          },
          "label": {
            "type": "string",
            "description": "Primary display label"
          },
          "subtitle": {
            "type": "string",
            "description": "Secondary line (e.g. email)"
          }
        }
      },
      "ObjectAccessGrantCandidatesDTO": {
        "type": "object",
        "description": "Users, teams, and installed apps available for object access grants.",
        "properties": {
          "users": {
            "type": "array",
            "description": "Company users with HAS_ACCESS_TO",
            "items": {
              "$ref": "#/components/schemas/AccessGrantTargetDTO"
            }
          },
          "teams": {
            "type": "array",
            "description": "Teams in the tenant",
            "items": {
              "$ref": "#/components/schemas/AccessGrantTargetDTO"
            }
          },
          "apps": {
            "type": "array",
            "description": "Apps installed for the current company",
            "items": {
              "$ref": "#/components/schemas/AccessGrantTargetDTO"
            }
          }
        }
      },
      "ShowResponseObjectAccessGrantCandidatesDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/ObjectAccessGrantCandidatesDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "Item": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "actionTitle": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "additionalProperties": {}
          },
          "sender": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "targetUserUuid": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "readAt": {
            "type": "string"
          },
          "sourceAppUuid": {
            "type": "string"
          },
          "appLogo": {
            "type": "string"
          }
        }
      },
      "NotificationInboxDTO": {
        "type": "object",
        "properties": {
          "notifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Item"
            }
          },
          "unreadCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ShowResponseNotificationInboxDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/NotificationInboxDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "ShowResponseMapStringString": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The data payload of the response, if any."
          }
        }
      },
      "SseEmitter": {
        "type": "object",
        "properties": {
          "timeout": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "FileListItemDTO": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "lastModified": {
            "type": "integer",
            "format": "int64"
          },
          "contentType": {
            "type": "string"
          }
        }
      },
      "SuccessResponseListFileListItemDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/FileListItemDTO"
            }
          }
        }
      },
      "ShowResponseFeedDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/FeedDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "DeveloperSandboxDTO": {
        "type": "object",
        "description": "Developer sandbox: a Neo4j DB clone of the owning company. Activate via X-Caraer-Sandbox-Uuid; company identity stays the owner.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "ownerCompanyUuid": {
            "type": "string",
            "description": "UUID of the owning company — send this as X-Caraer-Company-Uuid"
          },
          "databaseId": {
            "type": "string",
            "description": "Neo4j database id of the sandbox clone"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "SuccessResponseListDeveloperSandboxDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/DeveloperSandboxDTO"
            }
          }
        }
      },
      "ProjectDeployDTO": {
        "type": "object",
        "description": "Data transfer object for a developer project deploy.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "projectUuid": {
            "type": "string",
            "description": "UUID of the owning developer project"
          },
          "buildUuid": {
            "type": "string",
            "description": "UUID of the build that was deployed"
          },
          "version": {
            "type": "string",
            "description": "Semantic version of the deployed build",
            "example": "1.2.3"
          },
          "status": {
            "type": "string",
            "description": "PENDING, SUCCEEDED, FAILED, or PARTIAL"
          },
          "target": {
            "type": "string",
            "description": "production or sandbox"
          },
          "resultsJson": {
            "type": "string",
            "description": "Per-component reconciliation results (app, functions, webhooks), serialized as JSON"
          },
          "activatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp (ms) when this deploy was activated"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "SuccessResponseListProjectDeployDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/ProjectDeployDTO"
            }
          }
        }
      },
      "ProjectBuildDTO": {
        "type": "object",
        "description": "Data transfer object for a developer project build artifact.",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique identifier for the entity",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "minLength": 1
          },
          "label": {
            "type": "string",
            "description": "Display label for the entity, can be different from name"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who created the entity"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was last updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who last updated the entity"
          },
          "deletedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp when the entity was deleted (null if not deleted)"
          },
          "deletedBy": {
            "$ref": "#/components/schemas/Record",
            "description": "Identifier of the user who deleted the entity"
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "description": "Index number for ordering entities"
          },
          "projectUuid": {
            "type": "string",
            "description": "UUID of the owning developer project"
          },
          "status": {
            "type": "string",
            "description": "PENDING, READY, or FAILED"
          },
          "target": {
            "type": "string",
            "description": "production or sandbox"
          },
          "artifactGcsPath": {
            "type": "string",
            "description": "GCS object path of the uploaded build archive"
          },
          "manifestJson": {
            "type": "string",
            "description": "Parsed build manifest (functions, webhooks, app fields), serialized as JSON"
          },
          "errorMessage": {
            "type": "string",
            "description": "Error message if the build failed"
          },
          "version": {
            "type": "string",
            "description": "Semantic version for this build",
            "example": "1.2.3"
          },
          "releaseNotes": {
            "type": "string",
            "description": "Release notes for this build"
          }
        },
        "required": [
          "name",
          "uuid"
        ]
      },
      "SuccessResponseListProjectBuildDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/ProjectBuildDTO"
            }
          }
        }
      },
      "ShowResponseListCmsEnvironmentDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/CmsEnvironmentDTO"
            }
          }
        }
      },
      "SuccessResponseListCalendarRecordDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/CalendarRecordDTO"
            }
          }
        }
      },
      "CalendarTeamOptionDTO": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarTeamMemberDTO"
            }
          }
        }
      },
      "SuccessResponseListCalendarTeamOptionDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/CalendarTeamOptionDTO"
            }
          }
        }
      },
      "SuccessResponseListAppScheduleDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/AppScheduleDTO"
            }
          }
        }
      },
      "ShowResponseListString": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AppConnectionStatusDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "preset": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "connected": {
            "type": "boolean"
          },
          "ownerType": {
            "type": "string"
          },
          "ownerUserUuid": {
            "type": "string"
          },
          "accountLabel": {
            "type": "string"
          },
          "connectedAt": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ShowResponseListAppConnectionStatusDTO": {
        "type": "object",
        "description": "Represents the response for viewing or showing a specific resource.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/AppConnectionStatusDTO"
            }
          }
        }
      },
      "SuccessResponseListAppInboundRouteDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/AppInboundRouteDTO"
            }
          }
        }
      },
      "SuccessResponseListAppExternalOAuthProviderDTO": {
        "type": "object",
        "description": "Represents a standard successful response with a message and optional data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "description": "The data payload of the response, if any.",
            "items": {
              "$ref": "#/components/schemas/AppExternalOAuthProviderDTO"
            }
          }
        }
      },
      "DeleteResponse": {
        "type": "object",
        "description": "Response class representing the result of a delete operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "description": "The data payload of the response, if any."
          }
        }
      },
      "DeleteResponseString": {
        "type": "object",
        "description": "Response class representing the result of a delete operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "type": "string",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "DeleteResponseFeedDTO": {
        "type": "object",
        "description": "Response class representing the result of a delete operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/FeedDTO",
            "description": "The data payload of the response, if any."
          }
        }
      },
      "DeleteResponseVoid": {
        "type": "object",
        "description": "Response class representing the result of a delete operation.",
        "properties": {
          "message": {
            "type": "string",
            "description": "A message detailing the result of the operation.",
            "example": "Success"
          },
          "data": {
            "description": "The data payload of the response, if any."
          }
        }
      },
      "AppCategoryDTO": {
        "type": "object",
        "description": "Schema omitted by SpringDoc (AppCategoryDTO).",
        "additionalProperties": true
      },
      "CreateResponseMapStringString": {
        "type": "object",
        "description": "Success response (CreateResponseMapStringString).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PaginationResponseAppDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseAppDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseCaraerObjectDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseCaraerObjectDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseFormDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseFormDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseObject": {
        "type": "object",
        "description": "Paginated response (PaginationResponseObject).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponsePageContentDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponsePageContentDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponsePropertyCalculationTypeDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponsePropertyCalculationTypeDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponsePropertyDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponsePropertyDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponsePropertyFormat": {
        "type": "object",
        "description": "Paginated response (PaginationResponsePropertyFormat).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponsePublicEnvironmentDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponsePublicEnvironmentDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseRelationDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseRelationDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseSavedFilterDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseSavedFilterDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseServerlessFunctionDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseServerlessFunctionDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseSubscribeWebhookDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseSubscribeWebhookDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseSyncDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseSyncDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseTraitDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseTraitDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseViewDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseViewDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationResponseWebMenuDTO": {
        "type": "object",
        "description": "Paginated response (PaginationResponseWebMenuDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "perPage": {
            "type": "integer",
            "format": "int32"
          },
          "lastPage": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ShowResponse": {
        "type": "object",
        "description": "Success response (ShowResponse).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseAnalyticsDashboardConfig": {
        "type": "object",
        "description": "Success response (ShowResponseAnalyticsDashboardConfig).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseAppBarIframeSessionContextDTO": {
        "type": "object",
        "description": "Success response (ShowResponseAppBarIframeSessionContextDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseAppBarIframeSessionTokenDTO": {
        "type": "object",
        "description": "Success response (ShowResponseAppBarIframeSessionTokenDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseBillingStatusDTO": {
        "type": "object",
        "description": "Success response (ShowResponseBillingStatusDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseCaraerObjectDTO": {
        "type": "object",
        "description": "Success response (ShowResponseCaraerObjectDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseDeveloperProjectDTO": {
        "type": "object",
        "description": "Success response (ShowResponseDeveloperProjectDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseDigitalIdentityDTO": {
        "type": "object",
        "description": "Success response (ShowResponseDigitalIdentityDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseFormDTO": {
        "type": "object",
        "description": "Success response (ShowResponseFormDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseListEntry": {
        "type": "object",
        "description": "Success response (ShowResponseListEntry).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "ShowResponseListEnvironmentDTO": {
        "type": "object",
        "description": "Success response (ShowResponseListEnvironmentDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "ShowResponseListFormObjectSummaryDTO": {
        "type": "object",
        "description": "Success response (ShowResponseListFormObjectSummaryDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "ShowResponseListInstalledAppBarDTO": {
        "type": "object",
        "description": "Success response (ShowResponseListInstalledAppBarDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "ShowResponseListPropertyDTO": {
        "type": "object",
        "description": "Success response (ShowResponseListPropertyDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "ShowResponseListWebpagePickerItemDTO": {
        "type": "object",
        "description": "Success response (ShowResponseListWebpagePickerItemDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "ShowResponseLoadAppSettingOptionsResponse": {
        "type": "object",
        "description": "Success response (ShowResponseLoadAppSettingOptionsResponse).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseMapStringAnalyticsDashboardConfig": {
        "type": "object",
        "description": "Success response (ShowResponseMapStringAnalyticsDashboardConfig).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseMapStringBoolean": {
        "type": "object",
        "description": "Success response (ShowResponseMapStringBoolean).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponsePageContentDTO": {
        "type": "object",
        "description": "Success response (ShowResponsePageContentDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponsePropertyDTO": {
        "type": "object",
        "description": "Success response (ShowResponsePropertyDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponsePublicFormDTO": {
        "type": "object",
        "description": "Success response (ShowResponsePublicFormDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseRelationDTO": {
        "type": "object",
        "description": "Success response (ShowResponseRelationDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseSavedFilterDTO": {
        "type": "object",
        "description": "Success response (ShowResponseSavedFilterDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseServerlessFunctionDTO": {
        "type": "object",
        "description": "Success response (ShowResponseServerlessFunctionDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseString": {
        "type": "object",
        "description": "Success response (ShowResponseString).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "string"
          }
        }
      },
      "ShowResponseSubscribeWebhookDTO": {
        "type": "object",
        "description": "Success response (ShowResponseSubscribeWebhookDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseTemplateWebpageDTO": {
        "type": "object",
        "description": "Success response (ShowResponseTemplateWebpageDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseTraitDTO": {
        "type": "object",
        "description": "Success response (ShowResponseTraitDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseWebMenuDTO": {
        "type": "object",
        "description": "Success response (ShowResponseWebMenuDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "ShowResponseWebsiteSettingsDTO": {
        "type": "object",
        "description": "Success response (ShowResponseWebsiteSettingsDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "SuccessResponseAggregateResponse": {
        "type": "object",
        "description": "Success response (SuccessResponseAggregateResponse).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "SuccessResponseCollectionRelation": {
        "type": "object",
        "description": "Success response (SuccessResponseCollectionRelation).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "SuccessResponseFlow": {
        "type": "object",
        "description": "Success response (SuccessResponseFlow).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "SuccessResponseListAggregateResponse": {
        "type": "object",
        "description": "Success response (SuccessResponseListAggregateResponse).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "SuccessResponseListCaraerObjectDTO": {
        "type": "object",
        "description": "Success response (SuccessResponseListCaraerObjectDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "SuccessResponseListPropertyDTO": {
        "type": "object",
        "description": "Success response (SuccessResponseListPropertyDTO).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "SuccessResponseMapStringInteger": {
        "type": "object",
        "description": "Success response (SuccessResponseMapStringInteger).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "SuccessResponseMapStringObject": {
        "type": "object",
        "description": "Success response (SuccessResponseMapStringObject).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "SuccessResponseObject": {
        "type": "object",
        "description": "Success response (SuccessResponseObject).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "SuccessResponseSuggestAnalyticsWidgetsResponse": {
        "type": "object",
        "description": "Success response (SuccessResponseSuggestAnalyticsWidgetsResponse).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "SuccessResponseTable": {
        "type": "object",
        "description": "Success response (SuccessResponseTable).",
        "properties": {
          "message": {
            "type": "string",
            "example": "Success"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "responses": {
      "Unauthorized": {
        "description": "Authentication is required or the token is invalid.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "Forbidden": {
        "description": "The caller is missing a required role or scope.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "NotFound": {
        "description": "The requested resource was not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "InternalError": {
        "description": "An internal server error occurred.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Opaque"
      }
    }
  }
}