{
  "components": {
    "schemas": {
      "ADRCardLink": {
        "properties": {
          "card_id": {
            "title": "Card Id",
            "type": "string"
          }
        },
        "required": [
          "card_id"
        ],
        "title": "ADRCardLink",
        "type": "object"
      },
      "ADRCreate": {
        "properties": {
          "alternatives_considered": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alternatives Considered"
          },
          "consequences": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consequences"
          },
          "context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          },
          "decision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision"
          },
          "related_decisions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Related Decisions",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "title": "ADRCreate",
        "type": "object"
      },
      "ADRRejectRequest": {
        "properties": {
          "comment": {
            "title": "Comment",
            "type": "string"
          }
        },
        "required": [
          "comment"
        ],
        "title": "ADRRejectRequest",
        "type": "object"
      },
      "ADRSignatureRequest": {
        "properties": {
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "user_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "User Ids",
            "type": "array"
          }
        },
        "required": [
          "user_ids"
        ],
        "title": "ADRSignatureRequest",
        "type": "object"
      },
      "ADRUpdate": {
        "properties": {
          "alternatives_considered": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alternatives Considered"
          },
          "consequences": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consequences"
          },
          "context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          },
          "decision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision"
          },
          "related_decisions": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Related Decisions"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "ADRUpdate",
        "type": "object"
      },
      "AiFieldSuggestion": {
        "properties": {
          "confidence": {
            "default": 0.0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "title": "AiFieldSuggestion",
        "type": "object"
      },
      "AiSettingsPayload": {
        "properties": {
          "api_key": {
            "default": "",
            "title": "Api Key",
            "type": "string"
          },
          "enabled": {
            "default": false,
            "title": "Enabled",
            "type": "boolean"
          },
          "enabled_types": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Enabled Types",
            "type": "array"
          },
          "model": {
            "default": "",
            "title": "Model",
            "type": "string"
          },
          "portfolio_insights_enabled": {
            "default": false,
            "title": "Portfolio Insights Enabled",
            "type": "boolean"
          },
          "provider_type": {
            "default": "ollama",
            "title": "Provider Type",
            "type": "string"
          },
          "provider_url": {
            "default": "",
            "title": "Provider Url",
            "type": "string"
          },
          "search_provider": {
            "default": "duckduckgo",
            "title": "Search Provider",
            "type": "string"
          },
          "search_url": {
            "default": "",
            "title": "Search Url",
            "type": "string"
          }
        },
        "title": "AiSettingsPayload",
        "type": "object"
      },
      "AiSourceRef": {
        "properties": {
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "title": "AiSourceRef",
        "type": "object"
      },
      "AiSuggestRequest": {
        "properties": {
          "context": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          },
          "name": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "subtype": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "type_key": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Type Key",
            "type": "string"
          }
        },
        "required": [
          "type_key",
          "name"
        ],
        "title": "AiSuggestRequest",
        "type": "object"
      },
      "AiSuggestResponse": {
        "properties": {
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "search_provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Search Provider"
          },
          "sources": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AiSourceRef"
            },
            "title": "Sources",
            "type": "array"
          },
          "suggestions": {
            "additionalProperties": {
              "$ref": "#/components/schemas/AiFieldSuggestion"
            },
            "default": {},
            "title": "Suggestions",
            "type": "object"
          }
        },
        "title": "AiSuggestResponse",
        "type": "object"
      },
      "AppTitlePayload": {
        "properties": {
          "app_title": {
            "default": "",
            "maxLength": 64,
            "title": "App Title",
            "type": "string"
          }
        },
        "title": "AppTitlePayload",
        "type": "object"
      },
      "ApplyBody": {
        "properties": {
          "response_ids": {
            "items": {
              "type": "string"
            },
            "title": "Response Ids",
            "type": "array"
          }
        },
        "required": [
          "response_ids"
        ],
        "title": "ApplyBody",
        "type": "object"
      },
      "ArchiveImpactCardRef": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "title": "ArchiveImpactCardRef",
        "type": "object"
      },
      "ArchiveImpactChild": {
        "properties": {
          "approval_status": {
            "default": "DRAFT",
            "title": "Approval Status",
            "type": "string"
          },
          "descendants_count": {
            "default": 0,
            "title": "Descendants Count",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "title": "ArchiveImpactChild",
        "type": "object"
      },
      "ArchiveImpactRelatedCard": {
        "properties": {
          "direction": {
            "enum": [
              "outgoing",
              "incoming"
            ],
            "title": "Direction",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "relation_id": {
            "title": "Relation Id",
            "type": "string"
          },
          "relation_label": {
            "title": "Relation Label",
            "type": "string"
          },
          "relation_type_key": {
            "title": "Relation Type Key",
            "type": "string"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "relation_id",
          "relation_type_key",
          "relation_label",
          "direction"
        ],
        "title": "ArchiveImpactRelatedCard",
        "type": "object"
      },
      "ArchiveImpactResponse": {
        "properties": {
          "approved_descendant_count": {
            "title": "Approved Descendant Count",
            "type": "integer"
          },
          "child_count": {
            "title": "Child Count",
            "type": "integer"
          },
          "children": {
            "items": {
              "$ref": "#/components/schemas/ArchiveImpactChild"
            },
            "title": "Children",
            "type": "array"
          },
          "descendant_count": {
            "title": "Descendant Count",
            "type": "integer"
          },
          "grandparent": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ArchiveImpactCardRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "related_cards": {
            "items": {
              "$ref": "#/components/schemas/ArchiveImpactRelatedCard"
            },
            "title": "Related Cards",
            "type": "array"
          }
        },
        "required": [
          "child_count",
          "descendant_count",
          "approved_descendant_count",
          "children",
          "related_cards"
        ],
        "title": "ArchiveImpactResponse",
        "type": "object"
      },
      "AutoMappedColumn": {
        "description": "One source-platform column that the parser auto-routes to a TEA slot.\n\nSourced from the adapter's ``auto_mapped_columns`` table. Surfaced\nverbatim in the admin's \"Map imported fields\" tab so the admin can\nsee at a glance which native columns are already handled and don't\nneed an entry in the per-field list.",
        "properties": {
          "source_column": {
            "title": "Source Column",
            "type": "string"
          },
          "tea_target": {
            "title": "Tea Target",
            "type": "string"
          }
        },
        "required": [
          "source_column",
          "tea_target"
        ],
        "title": "AutoMappedColumn",
        "type": "object"
      },
      "Body_import_bpmn_api_v1_bpm_processes__process_id__diagram_import_post": {
        "properties": {
          "file": {
            "contentMediaType": "application/octet-stream",
            "title": "File",
            "type": "string"
          }
        },
        "required": [
          "file"
        ],
        "title": "Body_import_bpmn_api_v1_bpm_processes__process_id__diagram_import_post",
        "type": "object"
      },
      "Body_import_documents_api_v1_documents_import_post": {
        "properties": {
          "file": {
            "contentMediaType": "application/octet-stream",
            "title": "File",
            "type": "string"
          }
        },
        "required": [
          "file"
        ],
        "title": "Body_import_documents_api_v1_documents_import_post",
        "type": "object"
      },
      "Body_upload_favicon_api_v1_settings_favicon_post": {
        "properties": {
          "file": {
            "contentMediaType": "application/octet-stream",
            "title": "File",
            "type": "string"
          }
        },
        "required": [
          "file"
        ],
        "title": "Body_upload_favicon_api_v1_settings_favicon_post",
        "type": "object"
      },
      "Body_upload_file_attachment_api_v1_cards__card_id__file_attachments_post": {
        "properties": {
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "file": {
            "contentMediaType": "application/octet-stream",
            "title": "File",
            "type": "string"
          }
        },
        "required": [
          "file"
        ],
        "title": "Body_upload_file_attachment_api_v1_cards__card_id__file_attachments_post",
        "type": "object"
      },
      "Body_upload_logo_api_v1_settings_logo_post": {
        "properties": {
          "file": {
            "contentMediaType": "application/octet-stream",
            "title": "File",
            "type": "string"
          }
        },
        "required": [
          "file"
        ],
        "title": "Body_upload_logo_api_v1_settings_logo_post",
        "type": "object"
      },
      "Body_upload_snapshot_api_v1_migration_upload_post": {
        "properties": {
          "file": {
            "contentMediaType": "application/octet-stream",
            "title": "File",
            "type": "string"
          },
          "include_archived": {
            "default": false,
            "title": "Include Archived",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "source_key": {
            "description": "Registered source adapter key (e.g. 'leanix')",
            "title": "Source Key",
            "type": "string"
          }
        },
        "required": [
          "source_key",
          "name",
          "file"
        ],
        "title": "Body_upload_snapshot_api_v1_migration_upload_post",
        "type": "object"
      },
      "BookmarkCreate": {
        "properties": {
          "card_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Type"
          },
          "columns": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Columns"
          },
          "filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filters"
          },
          "is_default": {
            "default": false,
            "title": "Is Default",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "odata_enabled": {
            "default": false,
            "title": "Odata Enabled",
            "type": "boolean"
          },
          "shared_with": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BookmarkShareEntry"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shared With"
          },
          "sort": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort"
          },
          "visibility": {
            "default": "private",
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "BookmarkCreate",
        "type": "object"
      },
      "BookmarkShareEntry": {
        "properties": {
          "can_edit": {
            "default": false,
            "title": "Can Edit",
            "type": "boolean"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "user_id"
        ],
        "title": "BookmarkShareEntry",
        "type": "object"
      },
      "BookmarkUpdate": {
        "properties": {
          "card_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Type"
          },
          "columns": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Columns"
          },
          "filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filters"
          },
          "is_default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Default"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "odata_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Odata Enabled"
          },
          "shared_with": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BookmarkShareEntry"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shared With"
          },
          "sort": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort"
          },
          "visibility": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visibility"
          }
        },
        "title": "BookmarkUpdate",
        "type": "object"
      },
      "BpmEnabledPayload": {
        "properties": {
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "BpmEnabledPayload",
        "type": "object"
      },
      "BpmRowOrderPayload": {
        "properties": {
          "row_order": {
            "items": {
              "type": "string"
            },
            "title": "Row Order",
            "type": "array"
          }
        },
        "required": [
          "row_order"
        ],
        "title": "BpmRowOrderPayload",
        "type": "object"
      },
      "CalculationCreate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "execution_order": {
            "default": 0,
            "title": "Execution Order",
            "type": "integer"
          },
          "formula": {
            "maxLength": 5000,
            "title": "Formula",
            "type": "string"
          },
          "name": {
            "maxLength": 300,
            "title": "Name",
            "type": "string"
          },
          "target_field_key": {
            "maxLength": 200,
            "title": "Target Field Key",
            "type": "string"
          },
          "target_type_key": {
            "maxLength": 100,
            "title": "Target Type Key",
            "type": "string"
          }
        },
        "required": [
          "name",
          "target_type_key",
          "target_field_key",
          "formula"
        ],
        "title": "CalculationCreate",
        "type": "object"
      },
      "CalculationResponse": {
        "properties": {
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "execution_order": {
            "title": "Execution Order",
            "type": "integer"
          },
          "formula": {
            "title": "Formula",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "last_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Error"
          },
          "last_run_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Run At"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "target_field_key": {
            "title": "Target Field Key",
            "type": "string"
          },
          "target_type_key": {
            "title": "Target Type Key",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "name",
          "target_type_key",
          "target_field_key",
          "formula",
          "is_active",
          "execution_order"
        ],
        "title": "CalculationResponse",
        "type": "object"
      },
      "CalculationUpdate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "execution_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Execution Order"
          },
          "formula": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Formula"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "target_field_key": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Field Key"
          },
          "target_type_key": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Type Key"
          }
        },
        "title": "CalculationUpdate",
        "type": "object"
      },
      "CardArchiveRequest": {
        "properties": {
          "cascade_all_related": {
            "default": false,
            "title": "Cascade All Related",
            "type": "boolean"
          },
          "child_strategy": {
            "anyOf": [
              {
                "enum": [
                  "cascade",
                  "disconnect",
                  "reparent"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Child Strategy"
          },
          "related_card_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Related Card Ids",
            "type": "array"
          }
        },
        "title": "CardArchiveRequest",
        "type": "object"
      },
      "CardArchiveResponse": {
        "properties": {
          "affected_children_ids": {
            "items": {
              "type": "string"
            },
            "title": "Affected Children Ids",
            "type": "array"
          },
          "affected_related_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Affected Related Card Ids",
            "type": "array"
          },
          "primary": {
            "$ref": "#/components/schemas/CardResponse"
          }
        },
        "required": [
          "primary",
          "affected_children_ids",
          "affected_related_card_ids"
        ],
        "title": "CardArchiveResponse",
        "type": "object"
      },
      "CardBulkArchiveRequest": {
        "properties": {
          "card_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Card Ids",
            "type": "array"
          },
          "cascade_all_related": {
            "default": false,
            "title": "Cascade All Related",
            "type": "boolean"
          },
          "child_strategy": {
            "anyOf": [
              {
                "enum": [
                  "cascade",
                  "disconnect",
                  "reparent"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Child Strategy"
          }
        },
        "required": [
          "card_ids"
        ],
        "title": "CardBulkArchiveRequest",
        "type": "object"
      },
      "CardBulkArchiveResponse": {
        "properties": {
          "archived_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Archived Card Ids",
            "type": "array"
          },
          "cascaded_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Cascaded Card Ids",
            "type": "array"
          },
          "requested": {
            "title": "Requested",
            "type": "integer"
          },
          "skipped": {
            "items": {
              "$ref": "#/components/schemas/CardBulkSkippedEntry"
            },
            "title": "Skipped",
            "type": "array"
          }
        },
        "required": [
          "requested",
          "archived_card_ids",
          "cascaded_card_ids",
          "skipped"
        ],
        "title": "CardBulkArchiveResponse",
        "type": "object"
      },
      "CardBulkCreateItem": {
        "description": "One row of a bulk-create request. Mirrors `CardCreate` plus an\noptional parent reference + a stable `row_index` so the caller can\npair the response back to its spreadsheet row.\n\nEither `parent_id` (UUID) or `parent_ref` may be supplied \u2014 never both.\nServer-side topological sort handles parents that are themselves rows\nin the same request (referenced by `parent_ref` and the row's own\n`(parent_path, name)` identity).",
        "properties": {
          "alias": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alias"
          },
          "approval_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approval Status"
          },
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "lifecycle": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "parent_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Name"
          },
          "parent_path": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Path"
          },
          "row_index": {
            "title": "Row Index",
            "type": "integer"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "row_index",
          "type",
          "name"
        ],
        "title": "CardBulkCreateItem",
        "type": "object"
      },
      "CardBulkCreateRequest": {
        "properties": {
          "cards": {
            "items": {
              "$ref": "#/components/schemas/CardBulkCreateItem"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Cards",
            "type": "array"
          },
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          }
        },
        "required": [
          "cards"
        ],
        "title": "CardBulkCreateRequest",
        "type": "object"
      },
      "CardBulkCreateResponse": {
        "properties": {
          "created": {
            "title": "Created",
            "type": "integer"
          },
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          },
          "failed": {
            "title": "Failed",
            "type": "integer"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/CardBulkCreateResult"
            },
            "title": "Results",
            "type": "array"
          }
        },
        "required": [
          "results",
          "created",
          "failed"
        ],
        "title": "CardBulkCreateResponse",
        "type": "object"
      },
      "CardBulkCreateResult": {
        "description": "Per-row outcome. `id` is set on success, `error` on failure.",
        "properties": {
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "row_index": {
            "title": "Row Index",
            "type": "integer"
          },
          "status": {
            "enum": [
              "created",
              "failed"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "row_index",
          "status"
        ],
        "title": "CardBulkCreateResult",
        "type": "object"
      },
      "CardBulkDeleteRequest": {
        "properties": {
          "card_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Card Ids",
            "type": "array"
          },
          "cascade_all_related": {
            "default": false,
            "title": "Cascade All Related",
            "type": "boolean"
          },
          "child_strategy": {
            "anyOf": [
              {
                "enum": [
                  "cascade",
                  "disconnect",
                  "reparent"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Child Strategy"
          }
        },
        "required": [
          "card_ids"
        ],
        "title": "CardBulkDeleteRequest",
        "type": "object"
      },
      "CardBulkDeleteResponse": {
        "properties": {
          "cascaded_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Cascaded Card Ids",
            "type": "array"
          },
          "deleted_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Deleted Card Ids",
            "type": "array"
          },
          "requested": {
            "title": "Requested",
            "type": "integer"
          },
          "skipped": {
            "items": {
              "$ref": "#/components/schemas/CardBulkDeleteSkippedEntry"
            },
            "title": "Skipped",
            "type": "array"
          }
        },
        "required": [
          "requested",
          "deleted_card_ids",
          "cascaded_card_ids",
          "skipped"
        ],
        "title": "CardBulkDeleteResponse",
        "type": "object"
      },
      "CardBulkDeleteSkippedEntry": {
        "properties": {
          "card_id": {
            "title": "Card Id",
            "type": "string"
          },
          "reason": {
            "const": "not_found",
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "card_id",
          "reason"
        ],
        "title": "CardBulkDeleteSkippedEntry",
        "type": "object"
      },
      "CardBulkRestoreRequest": {
        "properties": {
          "card_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Card Ids",
            "type": "array"
          }
        },
        "required": [
          "card_ids"
        ],
        "title": "CardBulkRestoreRequest",
        "type": "object"
      },
      "CardBulkRestoreResponse": {
        "properties": {
          "requested": {
            "title": "Requested",
            "type": "integer"
          },
          "restored_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Restored Card Ids",
            "type": "array"
          },
          "skipped": {
            "items": {
              "$ref": "#/components/schemas/CardBulkRestoreSkippedEntry"
            },
            "title": "Skipped",
            "type": "array"
          }
        },
        "required": [
          "requested",
          "restored_card_ids",
          "skipped"
        ],
        "title": "CardBulkRestoreResponse",
        "type": "object"
      },
      "CardBulkRestoreSkippedEntry": {
        "properties": {
          "card_id": {
            "title": "Card Id",
            "type": "string"
          },
          "reason": {
            "enum": [
              "already_active",
              "not_found"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "card_id",
          "reason"
        ],
        "title": "CardBulkRestoreSkippedEntry",
        "type": "object"
      },
      "CardBulkSkippedEntry": {
        "properties": {
          "card_id": {
            "title": "Card Id",
            "type": "string"
          },
          "reason": {
            "enum": [
              "already_archived",
              "not_found"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "card_id",
          "reason"
        ],
        "title": "CardBulkSkippedEntry",
        "type": "object"
      },
      "CardBulkUpdate": {
        "properties": {
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          },
          "ids": {
            "items": {
              "type": "string"
            },
            "title": "Ids",
            "type": "array"
          },
          "updates": {
            "$ref": "#/components/schemas/CardUpdate"
          }
        },
        "required": [
          "ids",
          "updates"
        ],
        "title": "CardBulkUpdate",
        "type": "object"
      },
      "CardCountsResponse": {
        "properties": {
          "by_type": {
            "items": {
              "$ref": "#/components/schemas/CardTypeCount"
            },
            "title": "By Type",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "by_type",
          "total"
        ],
        "title": "CardCountsResponse",
        "type": "object"
      },
      "CardCreate": {
        "properties": {
          "alias": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alias"
          },
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "lifecycle": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "strict_attributes": {
            "default": false,
            "title": "Strict Attributes",
            "type": "boolean"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "name"
        ],
        "title": "CardCreate",
        "type": "object"
      },
      "CardDeleteRequest": {
        "properties": {
          "cascade_all_related": {
            "default": false,
            "title": "Cascade All Related",
            "type": "boolean"
          },
          "child_strategy": {
            "anyOf": [
              {
                "enum": [
                  "cascade",
                  "disconnect",
                  "reparent"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Child Strategy"
          },
          "related_card_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Related Card Ids",
            "type": "array"
          }
        },
        "title": "CardDeleteRequest",
        "type": "object"
      },
      "CardDeleteResponse": {
        "properties": {
          "affected_children_ids": {
            "items": {
              "type": "string"
            },
            "title": "Affected Children Ids",
            "type": "array"
          },
          "affected_related_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Affected Related Card Ids",
            "type": "array"
          },
          "deleted_card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Deleted Card Ids",
            "type": "array"
          }
        },
        "required": [
          "deleted_card_ids",
          "affected_children_ids",
          "affected_related_card_ids"
        ],
        "title": "CardDeleteResponse",
        "type": "object"
      },
      "CardListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CardResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "CardListResponse",
        "type": "object"
      },
      "CardRef": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "name"
        ],
        "title": "CardRef",
        "type": "object"
      },
      "CardRefCandidate": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "path": {
            "title": "Path",
            "type": "string"
          }
        },
        "required": [
          "id",
          "path"
        ],
        "title": "CardRefCandidate",
        "type": "object"
      },
      "CardRefInput": {
        "description": "One ref to resolve, with `row` / `column` echoed back so the caller\ncan pin the result to the originating spreadsheet cell.\n\n`ref` is the user-typed string (`\"NexaCore ERP\"` or\n`\"Sales / Customer Mgmt / CRM\"`, using the same escape rules as\n`parent_path`). `type` is the expected card type for the lookup \u2014\ninferred by the importer from the relation type's `target_type_key`\n(for relation cells) or from the row's own `type` column (for parent\nrefs).",
        "properties": {
          "column": {
            "title": "Column",
            "type": "string"
          },
          "ref": {
            "title": "Ref",
            "type": "string"
          },
          "row": {
            "title": "Row",
            "type": "integer"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "row",
          "column",
          "type",
          "ref"
        ],
        "title": "CardRefInput",
        "type": "object"
      },
      "CardRefResolveRequest": {
        "properties": {
          "refs": {
            "items": {
              "$ref": "#/components/schemas/CardRefInput"
            },
            "maxItems": 5000,
            "title": "Refs",
            "type": "array"
          }
        },
        "required": [
          "refs"
        ],
        "title": "CardRefResolveRequest",
        "type": "object"
      },
      "CardRefResolveResponse": {
        "properties": {
          "results": {
            "items": {
              "$ref": "#/components/schemas/CardRefResolveResult"
            },
            "title": "Results",
            "type": "array"
          }
        },
        "required": [
          "results"
        ],
        "title": "CardRefResolveResponse",
        "type": "object"
      },
      "CardRefResolveResult": {
        "properties": {
          "candidates": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/CardRefCandidate"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidates"
          },
          "column": {
            "title": "Column",
            "type": "string"
          },
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "row": {
            "title": "Row",
            "type": "integer"
          },
          "status": {
            "enum": [
              "resolved",
              "ambiguous",
              "missing"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "row",
          "column",
          "status"
        ],
        "title": "CardRefResolveResult",
        "type": "object"
      },
      "CardRelationSummaryEntry": {
        "description": "One row of the relation-summary endpoint \u2014 counts neighbours per\nrelation-type / direction so the diagram editor can render LeanIX-style\nShow Dependency / Drill-Down / Roll-Up submenus with live counts.",
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "direction": {
            "title": "Direction",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "peer_type_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Peer Type Key"
          },
          "relation_type_key": {
            "title": "Relation Type Key",
            "type": "string"
          }
        },
        "required": [
          "relation_type_key",
          "label",
          "direction",
          "count"
        ],
        "title": "CardRelationSummaryEntry",
        "type": "object"
      },
      "CardRelationSummaryHierarchy": {
        "description": "Hierarchy snapshot returned alongside relation counts so the diagram\neditor can enable/disable the Drill-Down + Roll-Up menu sections without\na second fetch.",
        "properties": {
          "children_count": {
            "title": "Children Count",
            "type": "integer"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "parent_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Name"
          },
          "parent_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Type"
          }
        },
        "required": [
          "children_count"
        ],
        "title": "CardRelationSummaryHierarchy",
        "type": "object"
      },
      "CardRelationSummaryResponse": {
        "properties": {
          "by_type": {
            "items": {
              "$ref": "#/components/schemas/CardRelationSummaryEntry"
            },
            "title": "By Type",
            "type": "array"
          },
          "hierarchy": {
            "$ref": "#/components/schemas/CardRelationSummaryHierarchy"
          }
        },
        "required": [
          "by_type",
          "hierarchy"
        ],
        "title": "CardRelationSummaryResponse",
        "type": "object"
      },
      "CardResponse": {
        "properties": {
          "alias": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alias"
          },
          "approval_status": {
            "title": "Approval Status",
            "type": "string"
          },
          "archived_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Archived At"
          },
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "data_quality": {
            "title": "Data Quality",
            "type": "number"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lifecycle": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "stakeholders": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/StakeholderRef"
            },
            "title": "Stakeholders",
            "type": "array"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "tags": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TagRef"
            },
            "title": "Tags",
            "type": "array"
          },
          "type": {
            "title": "Type",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "updated_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated By"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "status",
          "approval_status",
          "data_quality"
        ],
        "title": "CardResponse",
        "type": "object"
      },
      "CardRestoreRequest": {
        "properties": {
          "also_restore_card_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Also Restore Card Ids",
            "type": "array"
          }
        },
        "title": "CardRestoreRequest",
        "type": "object"
      },
      "CardRestoreResponse": {
        "properties": {
          "primary": {
            "$ref": "#/components/schemas/CardResponse"
          },
          "restored_passenger_ids": {
            "items": {
              "type": "string"
            },
            "title": "Restored Passenger Ids",
            "type": "array"
          }
        },
        "required": [
          "primary",
          "restored_passenger_ids"
        ],
        "title": "CardRestoreResponse",
        "type": "object"
      },
      "CardTypeCount": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "count"
        ],
        "title": "CardTypeCount",
        "type": "object"
      },
      "CardUpdate": {
        "properties": {
          "alias": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alias"
          },
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "external_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "lifecycle": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "strict_attributes": {
            "default": false,
            "title": "Strict Attributes",
            "type": "boolean"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          }
        },
        "title": "CardUpdate",
        "type": "object"
      },
      "CommentCreate": {
        "properties": {
          "content": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          }
        },
        "required": [
          "content"
        ],
        "title": "CommentCreate",
        "type": "object"
      },
      "CommentUpdate": {
        "properties": {
          "content": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "title": "CommentUpdate",
        "type": "object"
      },
      "ComplianceBundleOut": {
        "properties": {
          "findings": {
            "items": {
              "$ref": "#/components/schemas/ComplianceFindingOut"
            },
            "title": "Findings",
            "type": "array"
          },
          "is_enabled": {
            "default": true,
            "title": "Is Enabled",
            "type": "boolean"
          },
          "is_known": {
            "default": true,
            "title": "Is Known",
            "type": "boolean"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "regulation": {
            "title": "Regulation",
            "type": "string"
          },
          "score": {
            "default": 0,
            "title": "Score",
            "type": "integer"
          }
        },
        "required": [
          "regulation"
        ],
        "title": "ComplianceBundleOut",
        "type": "object"
      },
      "ComplianceFindingAiVerdict": {
        "description": "Body for ``POST /security/compliance-findings/{id}/ai-verdict``.\n\nCaptures the user's verdict on the scanner's AI-detection claim and\npersists it on the impacted card's ``hasAiFeatures`` attribute.",
        "properties": {
          "verdict": {
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": [
          "verdict"
        ],
        "title": "ComplianceFindingAiVerdict",
        "type": "object"
      },
      "ComplianceFindingBulkDecisionUpdate": {
        "description": "Body for ``PATCH /security/compliance-findings/bulk``.\n\nBulk transition of multiple findings to a single new ``decision``.\nPer-row lifecycle validation still runs; rows where the transition\nisn't allowed (or that are tracked by an active Risk) are reported\nin the response's ``skipped`` list with a reason \u2014 the rest succeed.",
        "properties": {
          "decision": {
            "title": "Decision",
            "type": "string"
          },
          "ids": {
            "items": {
              "type": "string"
            },
            "title": "Ids",
            "type": "array"
          },
          "review_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Note"
          }
        },
        "required": [
          "ids",
          "decision"
        ],
        "title": "ComplianceFindingBulkDecisionUpdate",
        "type": "object"
      },
      "ComplianceFindingBulkDelete": {
        "description": "Body for ``DELETE /security/compliance-findings/bulk``.\n\nAccepts a list of finding ids; rows the caller can't see (or that\ndon't exist) are reported in the response's ``skipped`` list.",
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "title": "Ids",
            "type": "array"
          }
        },
        "required": [
          "ids"
        ],
        "title": "ComplianceFindingBulkDelete",
        "type": "object"
      },
      "ComplianceFindingBulkResult": {
        "description": "Outcome of a bulk delete or bulk decision update.\n\n``updated`` is the count of rows the call actually changed.\n``skipped`` lists rows that were left untouched, each with a\n``reason`` (\"not_found\", \"illegal_transition\", \"risk_tracked\", \u2026).",
        "properties": {
          "skipped": {
            "default": [],
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "title": "Skipped",
            "type": "array"
          },
          "updated": {
            "title": "Updated",
            "type": "integer"
          }
        },
        "required": [
          "updated"
        ],
        "title": "ComplianceFindingBulkResult",
        "type": "object"
      },
      "ComplianceFindingCreate": {
        "description": "Body for ``POST /security/compliance-findings`` \u2014 manual finding entry.\n\nUsed by auditors / GRC analysts who want to record a finding the\nscanner didn't pick up. The endpoint creates a synthetic \"manual\"\n:class:`TurboLensAnalysisRun` to satisfy the FK and persists a row\nwith ``decision='new'`` so the lifecycle starts at the same place\nas scanner-emitted findings.",
        "properties": {
          "card_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Id"
          },
          "category": {
            "default": "",
            "title": "Category",
            "type": "string"
          },
          "evidence": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence"
          },
          "gap_description": {
            "default": "",
            "title": "Gap Description",
            "type": "string"
          },
          "regulation": {
            "title": "Regulation",
            "type": "string"
          },
          "regulation_article": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Regulation Article"
          },
          "remediation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          },
          "requirement": {
            "title": "Requirement",
            "type": "string"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "regulation",
          "requirement",
          "status",
          "severity"
        ],
        "title": "ComplianceFindingCreate",
        "type": "object"
      },
      "ComplianceFindingDecisionUpdate": {
        "description": "Body for ``PATCH /security/compliance-findings/{id}``.\n\nUsers transition the decision through the compliance lifecycle\nstates ``new``, ``in_review``, ``mitigated``, ``verified``,\n``accepted`` and ``not_applicable``. Allowed transitions are\nenforced server-side by ``compliance_lifecycle_allowed``.\n``risk_tracked`` is set automatically when a finding is promoted to\na Risk (``POST /risks/promote/compliance/{id}``); ``auto_resolved``\nis set by the scanner when a re-scan no longer reports the finding.\nNeither is user-settable.",
        "properties": {
          "decision": {
            "title": "Decision",
            "type": "string"
          },
          "review_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Note"
          }
        },
        "required": [
          "decision"
        ],
        "title": "ComplianceFindingDecisionUpdate",
        "type": "object"
      },
      "ComplianceFindingOut": {
        "properties": {
          "ai_detected": {
            "default": false,
            "title": "Ai Detected",
            "type": "boolean"
          },
          "auto_resolved": {
            "default": false,
            "title": "Auto Resolved",
            "type": "boolean"
          },
          "card_has_ai_features": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Has Ai Features"
          },
          "card_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Id"
          },
          "card_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Name"
          },
          "card_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Type"
          },
          "category": {
            "default": "",
            "title": "Category",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "decision": {
            "default": "new",
            "title": "Decision",
            "type": "string"
          },
          "evidence": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence"
          },
          "gap_description": {
            "default": "",
            "title": "Gap Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_seen_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Seen Run Id"
          },
          "regulation": {
            "title": "Regulation",
            "type": "string"
          },
          "regulation_article": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Regulation Article"
          },
          "remediation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          },
          "requirement": {
            "default": "",
            "title": "Requirement",
            "type": "string"
          },
          "review_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Note"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "reviewed_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed By"
          },
          "reviewer_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Name"
          },
          "risk_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Risk Id"
          },
          "risk_reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Risk Reference"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "scope_type": {
            "default": "landscape",
            "title": "Scope Type",
            "type": "string"
          },
          "severity": {
            "default": "info",
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "default": "review_needed",
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "run_id",
          "regulation"
        ],
        "title": "ComplianceFindingOut",
        "type": "object"
      },
      "ComplianceRegulationCreate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "is_enabled": {
            "default": true,
            "title": "Is Enabled",
            "type": "boolean"
          },
          "key": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "label": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "sort_order": {
            "default": 0,
            "title": "Sort Order",
            "type": "integer"
          },
          "translations": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Translations"
          }
        },
        "required": [
          "key",
          "label"
        ],
        "title": "ComplianceRegulationCreate",
        "type": "object"
      },
      "ComplianceRegulationUpdate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "is_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Enabled"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 300,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order"
          },
          "translations": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Translations"
          }
        },
        "title": "ComplianceRegulationUpdate",
        "type": "object"
      },
      "ConnectionCreate": {
        "properties": {
          "auth_type": {
            "default": "basic",
            "pattern": "^(basic|oauth2)$",
            "title": "Auth Type",
            "type": "string"
          },
          "client_id": {
            "default": "",
            "title": "Client Id",
            "type": "string"
          },
          "client_secret": {
            "default": "",
            "title": "Client Secret",
            "type": "string"
          },
          "instance_url": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Instance Url",
            "type": "string"
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "password": {
            "default": "",
            "title": "Password",
            "type": "string"
          },
          "username": {
            "default": "",
            "title": "Username",
            "type": "string"
          }
        },
        "required": [
          "name",
          "instance_url"
        ],
        "title": "ConnectionCreate",
        "type": "object"
      },
      "ConnectionOut": {
        "properties": {
          "auth_type": {
            "title": "Auth Type",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "instance_url": {
            "title": "Instance Url",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "last_tested_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Tested At"
          },
          "mapping_count": {
            "default": 0,
            "title": "Mapping Count",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "test_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Test Status"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "name",
          "instance_url",
          "auth_type",
          "is_active"
        ],
        "title": "ConnectionOut",
        "type": "object"
      },
      "ConnectionUpdate": {
        "properties": {
          "auth_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auth Type"
          },
          "client_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Client Id"
          },
          "client_secret": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Client Secret"
          },
          "instance_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instance Url"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          },
          "username": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Username"
          }
        },
        "title": "ConnectionUpdate",
        "type": "object"
      },
      "CurrencyPayload": {
        "properties": {
          "currency": {
            "default": "USD",
            "title": "Currency",
            "type": "string"
          }
        },
        "title": "CurrencyPayload",
        "type": "object"
      },
      "DateFormatPayload": {
        "properties": {
          "date_format": {
            "default": "DD MMM YYYY",
            "title": "Date Format",
            "type": "string"
          }
        },
        "title": "DateFormatPayload",
        "type": "object"
      },
      "DiagramCreate": {
        "properties": {
          "card_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Ids"
          },
          "data": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "type": {
            "default": "free_draw",
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "DiagramCreate",
        "type": "object"
      },
      "DiagramSave": {
        "properties": {
          "bpmn_xml": {
            "title": "Bpmn Xml",
            "type": "string"
          },
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          },
          "svg_thumbnail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Svg Thumbnail"
          }
        },
        "required": [
          "bpmn_xml"
        ],
        "title": "DiagramSave",
        "type": "object"
      },
      "DiagramUpdate": {
        "properties": {
          "card_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Ids"
          },
          "data": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "title": "DiagramUpdate",
        "type": "object"
      },
      "DocumentCreate": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "type": {
            "default": "link",
            "title": "Type",
            "type": "string"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "required": [
          "name"
        ],
        "title": "DocumentCreate",
        "type": "object"
      },
      "DuplicateClusterOut": {
        "properties": {
          "analysed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Analysed At"
          },
          "card_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Ids"
          },
          "card_names": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Names"
          },
          "card_type": {
            "title": "Card Type",
            "type": "string"
          },
          "cluster_name": {
            "title": "Cluster Name",
            "type": "string"
          },
          "evidence": {
            "default": "",
            "title": "Evidence",
            "type": "string"
          },
          "functional_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Functional Domain"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "recommendation": {
            "default": "",
            "title": "Recommendation",
            "type": "string"
          },
          "status": {
            "default": "pending",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "cluster_name",
          "card_type"
        ],
        "title": "DuplicateClusterOut",
        "type": "object"
      },
      "ElementUpdate": {
        "description": "Update EA cross-references on an extracted BPMN element.",
        "properties": {
          "application_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Application Id"
          },
          "custom_fields": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Custom Fields"
          },
          "data_object_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data Object Id"
          },
          "it_component_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "It Component Id"
          }
        },
        "title": "ElementUpdate",
        "type": "object"
      },
      "EmailSettingsPayload": {
        "properties": {
          "app_base_url": {
            "default": "",
            "title": "App Base Url",
            "type": "string"
          },
          "smtp_from": {
            "default": "noreply@turboea.local",
            "title": "Smtp From",
            "type": "string"
          },
          "smtp_host": {
            "default": "",
            "title": "Smtp Host",
            "type": "string"
          },
          "smtp_password": {
            "default": "",
            "title": "Smtp Password",
            "type": "string"
          },
          "smtp_port": {
            "default": 587,
            "title": "Smtp Port",
            "type": "integer"
          },
          "smtp_tls": {
            "default": true,
            "title": "Smtp Tls",
            "type": "boolean"
          },
          "smtp_user": {
            "default": "",
            "title": "Smtp User",
            "type": "string"
          }
        },
        "title": "EmailSettingsPayload",
        "type": "object"
      },
      "EnabledLocalesPayload": {
        "properties": {
          "locales": {
            "items": {
              "type": "string"
            },
            "title": "Locales",
            "type": "array"
          }
        },
        "required": [
          "locales"
        ],
        "title": "EnabledLocalesPayload",
        "type": "object"
      },
      "EolCycle": {
        "description": "A single release cycle for a product.",
        "properties": {
          "codename": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Codename"
          },
          "cycle": {
            "title": "Cycle",
            "type": "string"
          },
          "discontinued": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discontinued"
          },
          "eol": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eol"
          },
          "latest": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest"
          },
          "latestReleaseDate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latestreleasedate"
          },
          "link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Link"
          },
          "lts": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lts"
          },
          "releaseDate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Releasedate"
          },
          "support": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Support"
          }
        },
        "required": [
          "cycle"
        ],
        "title": "EolCycle",
        "type": "object"
      },
      "EolProduct": {
        "description": "A product identifier returned from the product list.",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "EolProduct",
        "type": "object"
      },
      "EolProductMatch": {
        "description": "A product with a fuzzy match score.",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "score": {
            "title": "Score",
            "type": "number"
          }
        },
        "required": [
          "name",
          "score"
        ],
        "title": "EolProductMatch",
        "type": "object"
      },
      "FieldMappingIn": {
        "properties": {
          "direction": {
            "default": "snow_leads",
            "pattern": "^(snow_leads|turbo_leads)$",
            "title": "Direction",
            "type": "string"
          },
          "is_identity": {
            "default": false,
            "title": "Is Identity",
            "type": "boolean"
          },
          "snow_field": {
            "title": "Snow Field",
            "type": "string"
          },
          "transform_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transform Config"
          },
          "transform_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transform Type"
          },
          "turbo_field": {
            "title": "Turbo Field",
            "type": "string"
          }
        },
        "required": [
          "turbo_field",
          "snow_field"
        ],
        "title": "FieldMappingIn",
        "type": "object"
      },
      "FieldMappingOptions": {
        "description": "Payload for the field-mapping admin UI.\n\nOne block per ``(native_type, target_tea_type)`` pair surfacing the\nsource fields the parser discovered alongside the list of TEA\ntarget fields the admin can map them onto.",
        "properties": {
          "auto_mapped_columns": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AutoMappedColumn"
            },
            "title": "Auto Mapped Columns",
            "type": "array"
          },
          "blocks": {
            "items": {
              "$ref": "#/components/schemas/FieldMappingTypeBlock"
            },
            "title": "Blocks",
            "type": "array"
          }
        },
        "required": [
          "blocks"
        ],
        "title": "FieldMappingOptions",
        "type": "object"
      },
      "FieldMappingOut": {
        "properties": {
          "direction": {
            "title": "Direction",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "is_identity": {
            "title": "Is Identity",
            "type": "boolean"
          },
          "snow_field": {
            "title": "Snow Field",
            "type": "string"
          },
          "transform_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transform Config"
          },
          "transform_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transform Type"
          },
          "turbo_field": {
            "title": "Turbo Field",
            "type": "string"
          }
        },
        "required": [
          "id",
          "turbo_field",
          "snow_field",
          "direction",
          "is_identity"
        ],
        "title": "FieldMappingOut",
        "type": "object"
      },
      "FieldMappingTypeBlock": {
        "properties": {
          "available_targets": {
            "items": {
              "$ref": "#/components/schemas/TargetFieldOption"
            },
            "title": "Available Targets",
            "type": "array"
          },
          "native_type": {
            "title": "Native Type",
            "type": "string"
          },
          "source_fields": {
            "items": {
              "$ref": "#/components/schemas/SourceFieldRow"
            },
            "title": "Source Fields",
            "type": "array"
          },
          "target_tea_type": {
            "title": "Target Tea Type",
            "type": "string"
          },
          "target_type_label": {
            "title": "Target Type Label",
            "type": "string"
          }
        },
        "required": [
          "native_type",
          "target_tea_type",
          "target_type_label",
          "source_fields",
          "available_targets"
        ],
        "title": "FieldMappingTypeBlock",
        "type": "object"
      },
      "FieldMappingUpdate": {
        "properties": {
          "field_mappings": {
            "additionalProperties": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "title": "Field Mappings",
            "type": "object"
          }
        },
        "required": [
          "field_mappings"
        ],
        "title": "FieldMappingUpdate",
        "type": "object"
      },
      "FiscalYearStartPayload": {
        "properties": {
          "month": {
            "title": "Month",
            "type": "integer"
          }
        },
        "required": [
          "month"
        ],
        "title": "FiscalYearStartPayload",
        "type": "object"
      },
      "ForgotPasswordRequest": {
        "properties": {
          "email": {
            "title": "Email",
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "title": "ForgotPasswordRequest",
        "type": "object"
      },
      "GrcEnabledPayload": {
        "properties": {
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "GrcEnabledPayload",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "ImportPrinciplesRequest": {
        "properties": {
          "catalogue_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Catalogue Ids",
            "type": "array"
          }
        },
        "required": [
          "catalogue_ids"
        ],
        "title": "ImportPrinciplesRequest",
        "type": "object"
      },
      "ImportRequest": {
        "properties": {
          "catalogue_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Catalogue Ids",
            "type": "array"
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale"
          }
        },
        "required": [
          "catalogue_ids"
        ],
        "title": "ImportRequest",
        "type": "object"
      },
      "LoginBrandingPayload": {
        "properties": {
          "login_help_link": {
            "default": "",
            "maxLength": 300,
            "title": "Login Help Link",
            "type": "string"
          },
          "login_help_text": {
            "default": "",
            "maxLength": 500,
            "title": "Login Help Text",
            "type": "string"
          },
          "login_tagline": {
            "default": "",
            "maxLength": 200,
            "title": "Login Tagline",
            "type": "string"
          },
          "login_tagline_hidden": {
            "default": false,
            "title": "Login Tagline Hidden",
            "type": "boolean"
          }
        },
        "title": "LoginBrandingPayload",
        "type": "object"
      },
      "LoginRequest": {
        "properties": {
          "email": {
            "format": "email",
            "title": "Email",
            "type": "string"
          },
          "password": {
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "email",
          "password"
        ],
        "title": "LoginRequest",
        "type": "object"
      },
      "MappingCreate": {
        "properties": {
          "card_type_key": {
            "title": "Card Type Key",
            "type": "string"
          },
          "connection_id": {
            "title": "Connection Id",
            "type": "string"
          },
          "field_mappings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FieldMappingIn"
            },
            "title": "Field Mappings",
            "type": "array"
          },
          "filter_query": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter Query"
          },
          "max_deletion_ratio": {
            "default": 0.5,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Max Deletion Ratio",
            "type": "number"
          },
          "skip_staging": {
            "default": false,
            "title": "Skip Staging",
            "type": "boolean"
          },
          "snow_table": {
            "title": "Snow Table",
            "type": "string"
          },
          "sync_direction": {
            "default": "snow_to_turbo",
            "pattern": "^(snow_to_turbo|turbo_to_snow|bidirectional)$",
            "title": "Sync Direction",
            "type": "string"
          },
          "sync_mode": {
            "default": "conservative",
            "pattern": "^(additive|conservative|strict)$",
            "title": "Sync Mode",
            "type": "string"
          }
        },
        "required": [
          "connection_id",
          "card_type_key",
          "snow_table"
        ],
        "title": "MappingCreate",
        "type": "object"
      },
      "MappingOut": {
        "properties": {
          "card_type_key": {
            "title": "Card Type Key",
            "type": "string"
          },
          "connection_id": {
            "title": "Connection Id",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "field_mappings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FieldMappingOut"
            },
            "title": "Field Mappings",
            "type": "array"
          },
          "filter_query": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter Query"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "max_deletion_ratio": {
            "title": "Max Deletion Ratio",
            "type": "number"
          },
          "skip_staging": {
            "default": false,
            "title": "Skip Staging",
            "type": "boolean"
          },
          "snow_table": {
            "title": "Snow Table",
            "type": "string"
          },
          "sync_direction": {
            "title": "Sync Direction",
            "type": "string"
          },
          "sync_mode": {
            "title": "Sync Mode",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "connection_id",
          "card_type_key",
          "snow_table",
          "sync_direction",
          "sync_mode",
          "max_deletion_ratio",
          "is_active"
        ],
        "title": "MappingOut",
        "type": "object"
      },
      "MappingUpdate": {
        "properties": {
          "card_type_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Type Key"
          },
          "field_mappings": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FieldMappingIn"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Field Mappings"
          },
          "filter_query": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter Query"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "max_deletion_ratio": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Deletion Ratio"
          },
          "skip_staging": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Skip Staging"
          },
          "snow_table": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snow Table"
          },
          "sync_direction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sync Direction"
          },
          "sync_mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sync Mode"
          }
        },
        "title": "MappingUpdate",
        "type": "object"
      },
      "MassEolCandidate": {
        "description": "A candidate EOL match for a card.",
        "properties": {
          "card_id": {
            "title": "Card Id",
            "type": "string"
          },
          "card_name": {
            "title": "Card Name",
            "type": "string"
          },
          "card_type": {
            "title": "Card Type",
            "type": "string"
          },
          "eol_product": {
            "title": "Eol Product",
            "type": "string"
          },
          "score": {
            "title": "Score",
            "type": "number"
          }
        },
        "required": [
          "card_id",
          "card_name",
          "card_type",
          "eol_product",
          "score"
        ],
        "title": "MassEolCandidate",
        "type": "object"
      },
      "MassEolResult": {
        "description": "Result of mass EOL search for a single card.",
        "properties": {
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/MassEolCandidate"
            },
            "title": "Candidates",
            "type": "array"
          },
          "card_id": {
            "title": "Card Id",
            "type": "string"
          },
          "card_name": {
            "title": "Card Name",
            "type": "string"
          },
          "card_type": {
            "title": "Card Type",
            "type": "string"
          },
          "current_eol_cycle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Eol Cycle"
          },
          "current_eol_product": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Eol Product"
          }
        },
        "required": [
          "card_id",
          "card_name",
          "card_type",
          "candidates"
        ],
        "title": "MassEolResult",
        "type": "object"
      },
      "McpSettingsPayload": {
        "properties": {
          "enabled": {
            "default": false,
            "title": "Enabled",
            "type": "boolean"
          }
        },
        "title": "McpSettingsPayload",
        "type": "object"
      },
      "MigrationOut": {
        "properties": {
          "applied_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Applied At"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "field_mappings": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Field Mappings"
          },
          "file_hash": {
            "title": "File Hash",
            "type": "string"
          },
          "file_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Size"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "metamodel_diff": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metamodel Diff"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "parsed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parsed At"
          },
          "snapshot_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snapshot Version"
          },
          "source_type": {
            "title": "Source Type",
            "type": "string"
          },
          "stats": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stats"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "name",
          "source_type",
          "status",
          "file_hash",
          "file_size",
          "snapshot_version",
          "stats",
          "metamodel_diff",
          "field_mappings",
          "error_message",
          "parsed_at",
          "applied_at",
          "created_at",
          "updated_at"
        ],
        "title": "MigrationOut",
        "type": "object"
      },
      "MitigationTaskCreate": {
        "description": "Payload for ``POST /risks/{risk_id}/mitigation-tasks``.\n\n``lead_time_days`` is optional on create \u2014 when omitted the service\nlayer picks a smart default per ``recurrence_unit`` (1 / 2 / 7 / 14\nfor daily / weekly / monthly / yearly, capped at half the cycle so\nthe lead window never overlaps the previous occurrence). One-shot\ntasks default to 0 because there is no roll-forward to gate.",
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "due_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          },
          "lead_time_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lead Time Days"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "recurrence_interval": {
            "default": 1,
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Recurrence Interval",
            "type": "integer"
          },
          "recurrence_unit": {
            "default": "none",
            "enum": [
              "none",
              "days",
              "weeks",
              "months",
              "years"
            ],
            "title": "Recurrence Unit",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "title": "MitigationTaskCreate",
        "type": "object"
      },
      "MitigationTaskOccurrenceOut": {
        "properties": {
          "activated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activated At"
          },
          "assigned_owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assigned Owner Id"
          },
          "assigned_owner_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assigned Owner Name"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "completed_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed By"
          },
          "completed_by_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed By Name"
          },
          "completion_notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion Notes"
          },
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "due_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "owner_at_completion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner At Completion"
          },
          "owner_at_completion_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner At Completion Name"
          },
          "sequence": {
            "title": "Sequence",
            "type": "integer"
          },
          "status": {
            "enum": [
              "scheduled",
              "open",
              "done",
              "skipped"
            ],
            "title": "Status",
            "type": "string"
          },
          "task_id": {
            "title": "Task Id",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "task_id",
          "sequence",
          "status"
        ],
        "title": "MitigationTaskOccurrenceOut",
        "type": "object"
      },
      "MitigationTaskOut": {
        "properties": {
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "lead_time_days": {
            "title": "Lead Time Days",
            "type": "integer"
          },
          "occurrences": {
            "items": {
              "$ref": "#/components/schemas/MitigationTaskOccurrenceOut"
            },
            "title": "Occurrences",
            "type": "array"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "owner_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Name"
          },
          "recurrence_interval": {
            "title": "Recurrence Interval",
            "type": "integer"
          },
          "recurrence_unit": {
            "enum": [
              "none",
              "days",
              "weeks",
              "months",
              "years"
            ],
            "title": "Recurrence Unit",
            "type": "string"
          },
          "reference": {
            "title": "Reference",
            "type": "string"
          },
          "risk_id": {
            "title": "Risk Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "reference",
          "risk_id",
          "title",
          "recurrence_unit",
          "recurrence_interval",
          "lead_time_days",
          "is_active"
        ],
        "title": "MitigationTaskOut",
        "type": "object"
      },
      "MitigationTaskUpdate": {
        "description": "Partial update for ``PATCH /mitigation-tasks/{task_id}``.\n\n``owner_id`` changes propagate to the **current open occurrence** (its\n``assigned_owner_id``) so the Todo + notification flow reflects the\nnew assignee immediately. Past completed occurrences keep their\nhistorical owner snapshots and are not modified.\n\nRecurrence changes apply to **future** occurrences only \u2014 the current\nopen occurrence keeps its scheduled ``due_date``. Lead-time changes\ntake effect on future cycles too, but the API re-evaluates any\ncurrently-scheduled cycle against the new window so shortening the\nlead time can promote a cycle immediately instead of waiting for the\nnext daily promotion run.",
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "due_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "lead_time_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lead Time Days"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "recurrence_interval": {
            "anyOf": [
              {
                "maximum": 365.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recurrence Interval"
          },
          "recurrence_unit": {
            "anyOf": [
              {
                "enum": [
                  "none",
                  "days",
                  "weeks",
                  "months",
                  "years"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recurrence Unit"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "MitigationTaskUpdate",
        "type": "object"
      },
      "ModernizationOut": {
        "properties": {
          "analysed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Analysed At"
          },
          "card_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Id"
          },
          "card_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Name"
          },
          "cluster_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cluster Id"
          },
          "current_tech": {
            "default": "",
            "title": "Current Tech",
            "type": "string"
          },
          "effort": {
            "default": "medium",
            "title": "Effort",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "modernization_type": {
            "default": "",
            "title": "Modernization Type",
            "type": "string"
          },
          "priority": {
            "default": "medium",
            "title": "Priority",
            "type": "string"
          },
          "recommendation": {
            "default": "",
            "title": "Recommendation",
            "type": "string"
          },
          "status": {
            "default": "pending",
            "title": "Status",
            "type": "string"
          },
          "target_type": {
            "title": "Target Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "target_type"
        ],
        "title": "ModernizationOut",
        "type": "object"
      },
      "MutationBatchCommit": {
        "description": "Close a batch after the wrapper's underlying writes complete.",
        "properties": {
          "confirm_token": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirm Token"
          },
          "summary": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "title": "MutationBatchCommit",
        "type": "object"
      },
      "MutationBatchEvent": {
        "properties": {
          "card_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Id"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "data": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data"
          },
          "event_type": {
            "title": "Event Type",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "user_display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Display Name"
          },
          "user_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          }
        },
        "required": [
          "id",
          "event_type",
          "data",
          "card_id",
          "user_id",
          "created_at"
        ],
        "title": "MutationBatchEvent",
        "type": "object"
      },
      "MutationBatchHistory": {
        "description": "Response for ``GET /mutation-batches/{id}/events`` \u2014 the batch\nmetadata plus every event emitted under it, in chronological order.",
        "properties": {
          "batch": {
            "$ref": "#/components/schemas/MutationBatchOut"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/MutationBatchEvent"
            },
            "title": "Events",
            "type": "array"
          }
        },
        "required": [
          "batch",
          "events"
        ],
        "title": "MutationBatchHistory",
        "type": "object"
      },
      "MutationBatchListPage": {
        "description": "Paginated response for ``GET /mutation-batches``. Mirrors the\n``{items, total, page, page_size}`` envelope used by ``GET /cards``\nand the rest of the paginated read endpoints.",
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/MutationBatchOut"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "MutationBatchListPage",
        "type": "object"
      },
      "MutationBatchOpen": {
        "description": "Open a batch before a mutating tool wrapper performs writes.",
        "properties": {
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          },
          "tool_name": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Tool Name",
            "type": "string"
          }
        },
        "required": [
          "tool_name"
        ],
        "title": "MutationBatchOpen",
        "type": "object"
      },
      "MutationBatchOut": {
        "properties": {
          "actor_display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor Display Name"
          },
          "actor_user_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor User Id"
          },
          "committed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Committed At"
          },
          "confirm_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirm Token"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "dry_run": {
            "title": "Dry Run",
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "origin": {
            "title": "Origin",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "tool_name": {
            "title": "Tool Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "tool_name",
          "actor_user_id",
          "origin",
          "dry_run",
          "created_at",
          "committed_at"
        ],
        "title": "MutationBatchOut",
        "type": "object"
      },
      "NotificationPreferencesUpdate": {
        "properties": {
          "email": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "boolean"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "in_app": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "boolean"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "In App"
          }
        },
        "title": "NotificationPreferencesUpdate",
        "type": "object"
      },
      "OccurrenceCompleteRequest": {
        "description": "Optional notes when marking an occurrence done or skipped.",
        "properties": {
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          }
        },
        "title": "OccurrenceCompleteRequest",
        "type": "object"
      },
      "PortfolioInsightsRequest": {
        "description": "Summary data for AI portfolio analysis.",
        "properties": {
          "active_filters": {
            "description": "Human-readable descriptions of active filters",
            "items": {
              "type": "string"
            },
            "title": "Active Filters",
            "type": "array"
          },
          "attribute_summary": {
            "additionalProperties": true,
            "description": "Aggregated attribute distributions (e.g. hostingType counts)",
            "title": "Attribute Summary",
            "type": "object"
          },
          "color_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color By"
          },
          "group_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Group By"
          },
          "groups": {
            "description": "List of {name, count, breakdown} dicts summarising each group",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Groups",
            "type": "array"
          },
          "lifecycle_summary": {
            "additionalProperties": true,
            "description": "Counts by lifecycle phase",
            "title": "Lifecycle Summary",
            "type": "object"
          },
          "total_apps": {
            "default": 0,
            "minimum": 0.0,
            "title": "Total Apps",
            "type": "integer"
          }
        },
        "title": "PortfolioInsightsRequest",
        "type": "object"
      },
      "PortfolioInsightsResponse": {
        "properties": {
          "insights": {
            "description": "List of structured insight objects or plain strings",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/StructuredInsight"
                },
                {
                  "type": "string"
                },
                {}
              ]
            },
            "title": "Insights",
            "type": "array"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          }
        },
        "title": "PortfolioInsightsResponse",
        "type": "object"
      },
      "PpmBudgetLineCreate": {
        "properties": {
          "amount": {
            "default": 0,
            "title": "Amount",
            "type": "number"
          },
          "category": {
            "enum": [
              "capex",
              "opex"
            ],
            "title": "Category",
            "type": "string"
          },
          "fiscal_year": {
            "title": "Fiscal Year",
            "type": "integer"
          }
        },
        "required": [
          "fiscal_year",
          "category"
        ],
        "title": "PpmBudgetLineCreate",
        "type": "object"
      },
      "PpmBudgetLineOut": {
        "properties": {
          "amount": {
            "title": "Amount",
            "type": "number"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "fiscal_year": {
            "title": "Fiscal Year",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "initiative_id": {
            "title": "Initiative Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "initiative_id",
          "fiscal_year",
          "category",
          "amount",
          "created_at",
          "updated_at"
        ],
        "title": "PpmBudgetLineOut",
        "type": "object"
      },
      "PpmBudgetLineUpdate": {
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "category": {
            "anyOf": [
              {
                "enum": [
                  "capex",
                  "opex"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "fiscal_year": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fiscal Year"
          }
        },
        "title": "PpmBudgetLineUpdate",
        "type": "object"
      },
      "PpmCostLineCreate": {
        "properties": {
          "actual": {
            "default": 0,
            "title": "Actual",
            "type": "number"
          },
          "category": {
            "enum": [
              "capex",
              "opex"
            ],
            "title": "Category",
            "type": "string"
          },
          "date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "planned": {
            "default": 0,
            "title": "Planned",
            "type": "number"
          }
        },
        "required": [
          "description",
          "category"
        ],
        "title": "PpmCostLineCreate",
        "type": "object"
      },
      "PpmCostLineOut": {
        "properties": {
          "actual": {
            "title": "Actual",
            "type": "number"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "initiative_id": {
            "title": "Initiative Id",
            "type": "string"
          },
          "planned": {
            "title": "Planned",
            "type": "number"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "initiative_id",
          "description",
          "category",
          "planned",
          "actual",
          "created_at",
          "updated_at"
        ],
        "title": "PpmCostLineOut",
        "type": "object"
      },
      "PpmCostLineUpdate": {
        "properties": {
          "actual": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actual"
          },
          "category": {
            "anyOf": [
              {
                "enum": [
                  "capex",
                  "opex"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "planned": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Planned"
          }
        },
        "title": "PpmCostLineUpdate",
        "type": "object"
      },
      "PpmDependencyCreate": {
        "properties": {
          "kind": {
            "const": "FS",
            "default": "FS",
            "title": "Kind",
            "type": "string"
          },
          "pred_id": {
            "title": "Pred Id",
            "type": "string"
          },
          "pred_kind": {
            "enum": [
              "task",
              "wbs"
            ],
            "title": "Pred Kind",
            "type": "string"
          },
          "succ_id": {
            "title": "Succ Id",
            "type": "string"
          },
          "succ_kind": {
            "enum": [
              "task",
              "wbs"
            ],
            "title": "Succ Kind",
            "type": "string"
          }
        },
        "required": [
          "pred_kind",
          "pred_id",
          "succ_kind",
          "succ_id"
        ],
        "title": "PpmDependencyCreate",
        "type": "object"
      },
      "PpmDependencyOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "initiative_id": {
            "title": "Initiative Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "pred_id": {
            "title": "Pred Id",
            "type": "string"
          },
          "pred_kind": {
            "enum": [
              "task",
              "wbs"
            ],
            "title": "Pred Kind",
            "type": "string"
          },
          "succ_id": {
            "title": "Succ Id",
            "type": "string"
          },
          "succ_kind": {
            "enum": [
              "task",
              "wbs"
            ],
            "title": "Succ Kind",
            "type": "string"
          }
        },
        "required": [
          "id",
          "initiative_id",
          "pred_kind",
          "pred_id",
          "succ_kind",
          "succ_id",
          "kind",
          "created_at"
        ],
        "title": "PpmDependencyOut",
        "type": "object"
      },
      "PpmEnabledPayload": {
        "properties": {
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "PpmEnabledPayload",
        "type": "object"
      },
      "PpmGanttItem": {
        "properties": {
          "capex_actual": {
            "default": 0,
            "title": "Capex Actual",
            "type": "number"
          },
          "capex_planned": {
            "default": 0,
            "title": "Capex Planned",
            "type": "number"
          },
          "cost_actual": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost Actual"
          },
          "cost_budget": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost Budget"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "group_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Group Id"
          },
          "group_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Group Name"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "latest_report": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PpmStatusReportOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "latest_report_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Report Id"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "opex_actual": {
            "default": 0,
            "title": "Opex Actual",
            "type": "number"
          },
          "opex_planned": {
            "default": 0,
            "title": "Opex Planned",
            "type": "number"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "stakeholders": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PpmGanttStakeholder"
            },
            "title": "Stakeholders",
            "type": "array"
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          }
        },
        "required": [
          "id",
          "name",
          "subtype",
          "status",
          "parent_id",
          "start_date",
          "end_date",
          "cost_budget",
          "cost_actual"
        ],
        "title": "PpmGanttItem",
        "type": "object"
      },
      "PpmGanttStakeholder": {
        "properties": {
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "role_key": {
            "title": "Role Key",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "user_id",
          "display_name",
          "role_key"
        ],
        "title": "PpmGanttStakeholder",
        "type": "object"
      },
      "PpmGroupOption": {
        "properties": {
          "type_key": {
            "title": "Type Key",
            "type": "string"
          },
          "type_label": {
            "title": "Type Label",
            "type": "string"
          }
        },
        "required": [
          "type_key",
          "type_label"
        ],
        "title": "PpmGroupOption",
        "type": "object"
      },
      "PpmRiskCreate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "impact": {
            "default": 3,
            "maximum": 5.0,
            "minimum": 1.0,
            "title": "Impact",
            "type": "integer"
          },
          "mitigation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mitigation"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "probability": {
            "default": 3,
            "maximum": 5.0,
            "minimum": 1.0,
            "title": "Probability",
            "type": "integer"
          },
          "status": {
            "default": "open",
            "enum": [
              "open",
              "mitigating",
              "mitigated",
              "closed",
              "accepted"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "title": "PpmRiskCreate",
        "type": "object"
      },
      "PpmRiskOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "impact": {
            "title": "Impact",
            "type": "integer"
          },
          "initiative_id": {
            "title": "Initiative Id",
            "type": "string"
          },
          "mitigation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mitigation"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "owner_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Name"
          },
          "probability": {
            "title": "Probability",
            "type": "integer"
          },
          "risk_score": {
            "title": "Risk Score",
            "type": "integer"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "initiative_id",
          "title",
          "description",
          "probability",
          "impact",
          "risk_score",
          "mitigation",
          "owner_id",
          "status",
          "created_at",
          "updated_at"
        ],
        "title": "PpmRiskOut",
        "type": "object"
      },
      "PpmRiskUpdate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "impact": {
            "anyOf": [
              {
                "maximum": 5.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Impact"
          },
          "mitigation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mitigation"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "probability": {
            "anyOf": [
              {
                "maximum": 5.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Probability"
          },
          "status": {
            "anyOf": [
              {
                "enum": [
                  "open",
                  "mitigating",
                  "mitigated",
                  "closed",
                  "accepted"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "PpmRiskUpdate",
        "type": "object"
      },
      "PpmStatusReportCreate": {
        "properties": {
          "accomplishments": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accomplishments"
          },
          "cost_health": {
            "default": "onTrack",
            "enum": [
              "onTrack",
              "atRisk",
              "offTrack"
            ],
            "title": "Cost Health",
            "type": "string"
          },
          "next_steps": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Steps"
          },
          "report_date": {
            "format": "date",
            "title": "Report Date",
            "type": "string"
          },
          "schedule_health": {
            "default": "onTrack",
            "enum": [
              "onTrack",
              "atRisk",
              "offTrack"
            ],
            "title": "Schedule Health",
            "type": "string"
          },
          "scope_health": {
            "default": "onTrack",
            "enum": [
              "onTrack",
              "atRisk",
              "offTrack"
            ],
            "title": "Scope Health",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "required": [
          "report_date"
        ],
        "title": "PpmStatusReportCreate",
        "type": "object"
      },
      "PpmStatusReportOut": {
        "properties": {
          "accomplishments": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accomplishments"
          },
          "cost_health": {
            "title": "Cost Health",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "initiative_id": {
            "title": "Initiative Id",
            "type": "string"
          },
          "next_steps": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Steps"
          },
          "report_date": {
            "format": "date",
            "title": "Report Date",
            "type": "string"
          },
          "reporter": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReporterOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "reporter_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reporter Id"
          },
          "schedule_health": {
            "title": "Schedule Health",
            "type": "string"
          },
          "scope_health": {
            "title": "Scope Health",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "initiative_id",
          "report_date",
          "schedule_health",
          "cost_health",
          "scope_health",
          "summary",
          "accomplishments",
          "next_steps",
          "created_at",
          "updated_at"
        ],
        "title": "PpmStatusReportOut",
        "type": "object"
      },
      "PpmStatusReportUpdate": {
        "properties": {
          "accomplishments": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accomplishments"
          },
          "cost_health": {
            "anyOf": [
              {
                "enum": [
                  "onTrack",
                  "atRisk",
                  "offTrack"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost Health"
          },
          "next_steps": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Steps"
          },
          "report_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Report Date"
          },
          "schedule_health": {
            "anyOf": [
              {
                "enum": [
                  "onTrack",
                  "atRisk",
                  "offTrack"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schedule Health"
          },
          "scope_health": {
            "anyOf": [
              {
                "enum": [
                  "onTrack",
                  "atRisk",
                  "offTrack"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scope Health"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "title": "PpmStatusReportUpdate",
        "type": "object"
      },
      "PpmTaskCommentCreate": {
        "properties": {
          "content": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "title": "PpmTaskCommentCreate",
        "type": "object"
      },
      "PpmTaskCommentOut": {
        "properties": {
          "content": {
            "title": "Content",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "task_id": {
            "title": "Task Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "user_display_name": {
            "title": "User Display Name",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "task_id",
          "user_id",
          "user_display_name",
          "content",
          "created_at",
          "updated_at"
        ],
        "title": "PpmTaskCommentOut",
        "type": "object"
      },
      "PpmTaskCommentUpdate": {
        "properties": {
          "content": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "title": "PpmTaskCommentUpdate",
        "type": "object"
      },
      "PpmTaskCreate": {
        "properties": {
          "assignee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Id"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "due_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          },
          "priority": {
            "default": "medium",
            "enum": [
              "critical",
              "high",
              "medium",
              "low"
            ],
            "title": "Priority",
            "type": "string"
          },
          "sort_order": {
            "default": 0,
            "title": "Sort Order",
            "type": "integer"
          },
          "start_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "status": {
            "default": "todo",
            "enum": [
              "todo",
              "in_progress",
              "done",
              "blocked"
            ],
            "title": "Status",
            "type": "string"
          },
          "tags": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "wbs_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wbs Id"
          }
        },
        "required": [
          "title"
        ],
        "title": "PpmTaskCreate",
        "type": "object"
      },
      "PpmTaskOut": {
        "properties": {
          "assignee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Id"
          },
          "assignee_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Name"
          },
          "comment_count": {
            "default": 0,
            "title": "Comment Count",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "due_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "initiative_id": {
            "title": "Initiative Id",
            "type": "string"
          },
          "priority": {
            "title": "Priority",
            "type": "string"
          },
          "sort_order": {
            "title": "Sort Order",
            "type": "integer"
          },
          "start_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "wbs_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wbs Id"
          }
        },
        "required": [
          "id",
          "initiative_id",
          "title",
          "description",
          "status",
          "priority",
          "assignee_id",
          "due_date",
          "sort_order",
          "tags",
          "created_at",
          "updated_at"
        ],
        "title": "PpmTaskOut",
        "type": "object"
      },
      "PpmTaskUpdate": {
        "properties": {
          "assignee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Id"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "due_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          },
          "priority": {
            "anyOf": [
              {
                "enum": [
                  "critical",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Priority"
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order"
          },
          "start_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "status": {
            "anyOf": [
              {
                "enum": [
                  "todo",
                  "in_progress",
                  "done",
                  "blocked"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "tags": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          },
          "wbs_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wbs Id"
          }
        },
        "title": "PpmTaskUpdate",
        "type": "object"
      },
      "PpmWbsCreate": {
        "properties": {
          "assignee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Id"
          },
          "completion": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Completion",
            "type": "number"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "end_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "is_milestone": {
            "default": false,
            "title": "Is Milestone",
            "type": "boolean"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "sort_order": {
            "default": 0,
            "title": "Sort Order",
            "type": "integer"
          },
          "start_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "title": "PpmWbsCreate",
        "type": "object"
      },
      "PpmWbsOut": {
        "properties": {
          "assignee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Id"
          },
          "assignee_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Name"
          },
          "completion": {
            "default": 0,
            "title": "Completion",
            "type": "number"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "end_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "initiative_id": {
            "title": "Initiative Id",
            "type": "string"
          },
          "is_milestone": {
            "default": false,
            "title": "Is Milestone",
            "type": "boolean"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "progress": {
            "default": 0,
            "title": "Progress",
            "type": "number"
          },
          "sort_order": {
            "title": "Sort Order",
            "type": "integer"
          },
          "start_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "task_count": {
            "default": 0,
            "title": "Task Count",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "initiative_id",
          "parent_id",
          "title",
          "description",
          "start_date",
          "end_date",
          "sort_order",
          "created_at",
          "updated_at"
        ],
        "title": "PpmWbsOut",
        "type": "object"
      },
      "PpmWbsUpdate": {
        "properties": {
          "assignee_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Id"
          },
          "completion": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "end_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "is_milestone": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Milestone"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order"
          },
          "start_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Date"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "PpmWbsUpdate",
        "type": "object"
      },
      "PreviewPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/app__api__v1__migration__StagedRecordOut"
            },
            "title": "Items",
            "type": "array"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "offset",
          "limit"
        ],
        "title": "PreviewPage",
        "type": "object"
      },
      "PrincipleCreate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "implications": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Implications"
          },
          "is_active": {
            "default": true,
            "title": "Is Active",
            "type": "boolean"
          },
          "rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "sort_order": {
            "default": 0,
            "title": "Sort Order",
            "type": "integer"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "title": "PrincipleCreate",
        "type": "object"
      },
      "PrincipleUpdate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "implications": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Implications"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "PrincipleUpdate",
        "type": "object"
      },
      "ProcessAssessmentCreate": {
        "properties": {
          "action_items": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Items"
          },
          "assessment_date": {
            "format": "date",
            "title": "Assessment Date",
            "type": "string"
          },
          "automation": {
            "title": "Automation",
            "type": "integer"
          },
          "compliance": {
            "title": "Compliance",
            "type": "integer"
          },
          "effectiveness": {
            "title": "Effectiveness",
            "type": "integer"
          },
          "efficiency": {
            "title": "Efficiency",
            "type": "integer"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "overall_score": {
            "title": "Overall Score",
            "type": "integer"
          }
        },
        "required": [
          "assessment_date",
          "overall_score",
          "efficiency",
          "effectiveness",
          "compliance",
          "automation"
        ],
        "title": "ProcessAssessmentCreate",
        "type": "object"
      },
      "ProcessAssessmentUpdate": {
        "properties": {
          "action_items": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Items"
          },
          "automation": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Automation"
          },
          "compliance": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Compliance"
          },
          "effectiveness": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effectiveness"
          },
          "efficiency": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Efficiency"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "overall_score": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overall Score"
          }
        },
        "title": "ProcessAssessmentUpdate",
        "type": "object"
      },
      "ProcessFlowVersionCreate": {
        "description": "Create a new draft process flow.",
        "properties": {
          "based_on_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Based On Id"
          },
          "bpmn_xml": {
            "title": "Bpmn Xml",
            "type": "string"
          },
          "svg_thumbnail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Svg Thumbnail"
          }
        },
        "required": [
          "bpmn_xml"
        ],
        "title": "ProcessFlowVersionCreate",
        "type": "object"
      },
      "ProcessFlowVersionUpdate": {
        "description": "Update an existing draft process flow.",
        "properties": {
          "bpmn_xml": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bpmn Xml"
          },
          "svg_thumbnail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Svg Thumbnail"
          }
        },
        "title": "ProcessFlowVersionUpdate",
        "type": "object"
      },
      "RegisterRequest": {
        "properties": {
          "display_name": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "format": "email",
            "title": "Email",
            "type": "string"
          },
          "password": {
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "email",
          "display_name",
          "password"
        ],
        "title": "RegisterRequest",
        "type": "object"
      },
      "RegistrationPayload": {
        "properties": {
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "RegistrationPayload",
        "type": "object"
      },
      "RejectRequest": {
        "properties": {
          "comment": {
            "title": "Comment",
            "type": "string"
          }
        },
        "required": [
          "comment"
        ],
        "title": "RejectRequest",
        "type": "object"
      },
      "RelationBulkOperation": {
        "description": "One row of a bulk-relation request.",
        "properties": {
          "action": {
            "default": "upsert",
            "enum": [
              "upsert",
              "delete"
            ],
            "title": "Action",
            "type": "string"
          },
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "row_index": {
            "title": "Row Index",
            "type": "integer"
          },
          "source": {
            "$ref": "#/components/schemas/RelationRefInput"
          },
          "target": {
            "$ref": "#/components/schemas/RelationRefInput"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "row_index",
          "type",
          "source",
          "target"
        ],
        "title": "RelationBulkOperation",
        "type": "object"
      },
      "RelationBulkRequest": {
        "properties": {
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          },
          "operations": {
            "items": {
              "$ref": "#/components/schemas/RelationBulkOperation"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Operations",
            "type": "array"
          }
        },
        "required": [
          "operations"
        ],
        "title": "RelationBulkRequest",
        "type": "object"
      },
      "RelationBulkResponse": {
        "properties": {
          "deleted": {
            "title": "Deleted",
            "type": "integer"
          },
          "dry_run": {
            "default": false,
            "title": "Dry Run",
            "type": "boolean"
          },
          "failed": {
            "title": "Failed",
            "type": "integer"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/RelationBulkResult"
            },
            "title": "Results",
            "type": "array"
          },
          "upserted": {
            "title": "Upserted",
            "type": "integer"
          }
        },
        "required": [
          "results",
          "upserted",
          "deleted",
          "failed"
        ],
        "title": "RelationBulkResponse",
        "type": "object"
      },
      "RelationBulkResult": {
        "properties": {
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "relation_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relation Id"
          },
          "row_index": {
            "title": "Row Index",
            "type": "integer"
          },
          "status": {
            "enum": [
              "upserted",
              "deleted",
              "noop",
              "failed"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "row_index",
          "status"
        ],
        "title": "RelationBulkResult",
        "type": "object"
      },
      "RelationCreate": {
        "properties": {
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "source_id",
          "target_id"
        ],
        "title": "RelationCreate",
        "type": "object"
      },
      "RelationRefInput": {
        "description": "Either a resolved UUID or a name+path tuple. Exactly one of `id` or\n(`type` + `name`) must be supplied.",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "parent_path": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Path"
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Type"
          }
        },
        "title": "RelationRefInput",
        "type": "object"
      },
      "RelationResponse": {
        "properties": {
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CardRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "target": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CardRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "source_id",
          "target_id"
        ],
        "title": "RelationResponse",
        "type": "object"
      },
      "RelationUpdate": {
        "properties": {
          "attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "title": "RelationUpdate",
        "type": "object"
      },
      "ReporterOut": {
        "properties": {
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "display_name"
        ],
        "title": "ReporterOut",
        "type": "object"
      },
      "ResetPasswordRequest": {
        "properties": {
          "password": {
            "title": "Password",
            "type": "string"
          },
          "token": {
            "title": "Token",
            "type": "string"
          }
        },
        "required": [
          "token",
          "password"
        ],
        "title": "ResetPasswordRequest",
        "type": "object"
      },
      "RestoreImpactPassenger": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "role": {
            "enum": [
              "child",
              "related"
            ],
            "title": "Role",
            "type": "string"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtype"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "role"
        ],
        "title": "RestoreImpactPassenger",
        "type": "object"
      },
      "RestoreImpactResponse": {
        "properties": {
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/RestoreImpactPassenger"
            },
            "title": "Passengers",
            "type": "array"
          }
        },
        "required": [
          "passengers"
        ],
        "title": "RestoreImpactResponse",
        "type": "object"
      },
      "RiskCardLinkOut": {
        "properties": {
          "card_id": {
            "title": "Card Id",
            "type": "string"
          },
          "card_name": {
            "title": "Card Name",
            "type": "string"
          },
          "card_type": {
            "title": "Card Type",
            "type": "string"
          },
          "role": {
            "enum": [
              "affected",
              "contributing",
              "owner_of_control"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "card_id",
          "card_name",
          "card_type",
          "role"
        ],
        "title": "RiskCardLinkOut",
        "type": "object"
      },
      "RiskCardLinkRequest": {
        "properties": {
          "card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Card Ids",
            "type": "array"
          },
          "role": {
            "default": "affected",
            "enum": [
              "affected",
              "contributing",
              "owner_of_control"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "card_ids"
        ],
        "title": "RiskCardLinkRequest",
        "type": "object"
      },
      "RiskCreate": {
        "description": "Manual risk creation payload.",
        "properties": {
          "card_ids": {
            "items": {
              "type": "string"
            },
            "title": "Card Ids",
            "type": "array"
          },
          "category": {
            "default": "operational",
            "enum": [
              "security",
              "compliance",
              "operational",
              "technology",
              "financial",
              "reputational",
              "strategic"
            ],
            "title": "Category",
            "type": "string"
          },
          "description": {
            "default": "",
            "title": "Description",
            "type": "string"
          },
          "initial_impact": {
            "default": "medium",
            "enum": [
              "critical",
              "high",
              "medium",
              "low"
            ],
            "title": "Initial Impact",
            "type": "string"
          },
          "initial_probability": {
            "default": "medium",
            "enum": [
              "very_high",
              "high",
              "medium",
              "low"
            ],
            "title": "Initial Probability",
            "type": "string"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "target_resolution_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Resolution Date"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "title": "RiskCreate",
        "type": "object"
      },
      "RiskListPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/RiskOut"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "page",
          "page_size"
        ],
        "title": "RiskListPage",
        "type": "object"
      },
      "RiskMetricsOut": {
        "properties": {
          "by_category": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Category",
            "type": "object"
          },
          "by_level": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Level",
            "type": "object"
          },
          "by_status": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Status",
            "type": "object"
          },
          "created_this_month": {
            "default": 0,
            "title": "Created This Month",
            "type": "integer"
          },
          "initial_matrix": {
            "items": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            "title": "Initial Matrix",
            "type": "array"
          },
          "overdue": {
            "default": 0,
            "title": "Overdue",
            "type": "integer"
          },
          "residual_matrix": {
            "items": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            "title": "Residual Matrix",
            "type": "array"
          },
          "total": {
            "default": 0,
            "title": "Total",
            "type": "integer"
          }
        },
        "title": "RiskMetricsOut",
        "type": "object"
      },
      "RiskOut": {
        "properties": {
          "acceptance_rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acceptance Rationale"
          },
          "accepted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted At"
          },
          "accepted_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted By"
          },
          "cards": {
            "items": {
              "$ref": "#/components/schemas/RiskCardLinkOut"
            },
            "title": "Cards",
            "type": "array"
          },
          "category": {
            "enum": [
              "security",
              "compliance",
              "operational",
              "technology",
              "financial",
              "reputational",
              "strategic"
            ],
            "title": "Category",
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "initial_impact": {
            "enum": [
              "critical",
              "high",
              "medium",
              "low"
            ],
            "title": "Initial Impact",
            "type": "string"
          },
          "initial_level": {
            "enum": [
              "critical",
              "high",
              "medium",
              "low"
            ],
            "title": "Initial Level",
            "type": "string"
          },
          "initial_probability": {
            "enum": [
              "very_high",
              "high",
              "medium",
              "low"
            ],
            "title": "Initial Probability",
            "type": "string"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "owner_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Name"
          },
          "reference": {
            "title": "Reference",
            "type": "string"
          },
          "residual_impact": {
            "anyOf": [
              {
                "enum": [
                  "critical",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Residual Impact"
          },
          "residual_level": {
            "anyOf": [
              {
                "enum": [
                  "critical",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Residual Level"
          },
          "residual_probability": {
            "anyOf": [
              {
                "enum": [
                  "very_high",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Residual Probability"
          },
          "source_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ref"
          },
          "source_type": {
            "enum": [
              "manual",
              "compliance"
            ],
            "title": "Source Type",
            "type": "string"
          },
          "status": {
            "enum": [
              "identified",
              "analysed",
              "mitigation_planned",
              "in_progress",
              "mitigated",
              "monitoring",
              "accepted",
              "closed"
            ],
            "title": "Status",
            "type": "string"
          },
          "target_resolution_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Resolution Date"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "reference",
          "title",
          "description",
          "category",
          "source_type",
          "source_ref",
          "initial_probability",
          "initial_impact",
          "initial_level",
          "status"
        ],
        "title": "RiskOut",
        "type": "object"
      },
      "RiskPromoteRequest": {
        "description": "Overrides for the promote-from-finding endpoints. All optional.",
        "properties": {
          "category": {
            "anyOf": [
              {
                "enum": [
                  "security",
                  "compliance",
                  "operational",
                  "technology",
                  "financial",
                  "reputational",
                  "strategic"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "initial_impact": {
            "anyOf": [
              {
                "enum": [
                  "critical",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initial Impact"
          },
          "initial_probability": {
            "anyOf": [
              {
                "enum": [
                  "very_high",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initial Probability"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "target_resolution_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Resolution Date"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "RiskPromoteRequest",
        "type": "object"
      },
      "RiskUpdate": {
        "description": "Partial risk update. Derived ``initial_level`` / ``residual_level``\nare re-computed server-side and ignored here.",
        "properties": {
          "acceptance_rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acceptance Rationale"
          },
          "category": {
            "anyOf": [
              {
                "enum": [
                  "security",
                  "compliance",
                  "operational",
                  "technology",
                  "financial",
                  "reputational",
                  "strategic"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "initial_impact": {
            "anyOf": [
              {
                "enum": [
                  "critical",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initial Impact"
          },
          "initial_probability": {
            "anyOf": [
              {
                "enum": [
                  "very_high",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initial Probability"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "residual_impact": {
            "anyOf": [
              {
                "enum": [
                  "critical",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Residual Impact"
          },
          "residual_probability": {
            "anyOf": [
              {
                "enum": [
                  "very_high",
                  "high",
                  "medium",
                  "low"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Residual Probability"
          },
          "status": {
            "anyOf": [
              {
                "enum": [
                  "identified",
                  "analysed",
                  "mitigation_planned",
                  "in_progress",
                  "mitigated",
                  "monitoring",
                  "accepted",
                  "closed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "target_resolution_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Resolution Date"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "RiskUpdate",
        "type": "object"
      },
      "RoleCreate": {
        "properties": {
          "color": {
            "default": "#757575",
            "title": "Color",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "is_default": {
            "default": false,
            "title": "Is Default",
            "type": "boolean"
          },
          "key": {
            "maxLength": 50,
            "minLength": 3,
            "title": "Key",
            "type": "string"
          },
          "label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "permissions": {
            "additionalProperties": {
              "type": "boolean"
            },
            "default": {},
            "title": "Permissions",
            "type": "object"
          }
        },
        "required": [
          "key",
          "label"
        ],
        "title": "RoleCreate",
        "type": "object"
      },
      "RoleUpdate": {
        "properties": {
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "is_default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Default"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "permissions": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "boolean"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Permissions"
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order"
          }
        },
        "title": "RoleUpdate",
        "type": "object"
      },
      "RollbackBody": {
        "properties": {
          "dry_run": {
            "default": true,
            "title": "Dry Run",
            "type": "boolean"
          },
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          }
        },
        "title": "RollbackBody",
        "type": "object"
      },
      "SavedReportCreate": {
        "properties": {
          "config": {
            "additionalProperties": true,
            "title": "Config",
            "type": "object"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "report_type": {
            "title": "Report Type",
            "type": "string"
          },
          "shared_with": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shared With"
          },
          "thumbnail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thumbnail"
          },
          "visibility": {
            "default": "private",
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "name",
          "report_type",
          "config"
        ],
        "title": "SavedReportCreate",
        "type": "object"
      },
      "SavedReportUpdate": {
        "properties": {
          "config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "shared_with": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shared With"
          },
          "thumbnail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thumbnail"
          },
          "visibility": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visibility"
          }
        },
        "title": "SavedReportUpdate",
        "type": "object"
      },
      "SecurityOverviewOut": {
        "properties": {
          "compliance_by_status": {
            "additionalProperties": {
              "additionalProperties": {
                "type": "integer"
              },
              "type": "object"
            },
            "title": "Compliance By Status",
            "type": "object"
          },
          "compliance_run": {
            "$ref": "#/components/schemas/SecurityScanRunOut"
          },
          "compliance_scores": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Compliance Scores",
            "type": "object"
          }
        },
        "title": "SecurityOverviewOut",
        "type": "object"
      },
      "SecurityScanRequest": {
        "description": "Options for an on-demand compliance scan.",
        "properties": {
          "regulations": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Regulations"
          }
        },
        "title": "SecurityScanRequest",
        "type": "object"
      },
      "SecurityScanRunOut": {
        "description": "Summary of the latest compliance scan run.",
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "progress": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Progress"
          },
          "run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run Id"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "summary": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "title": "SecurityScanRunOut",
        "type": "object"
      },
      "SetPasswordRequest": {
        "properties": {
          "password": {
            "title": "Password",
            "type": "string"
          },
          "token": {
            "title": "Token",
            "type": "string"
          }
        },
        "required": [
          "token",
          "password"
        ],
        "title": "SetPasswordRequest",
        "type": "object"
      },
      "SignatureRequest": {
        "properties": {
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "user_ids": {
            "items": {
              "type": "string"
            },
            "title": "User Ids",
            "type": "array"
          }
        },
        "required": [
          "user_ids"
        ],
        "title": "SignatureRequest",
        "type": "object"
      },
      "SoAWCreate": {
        "properties": {
          "document_info": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Info"
          },
          "initiative_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initiative Id"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "sections": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sections"
          },
          "status": {
            "default": "draft",
            "title": "Status",
            "type": "string"
          },
          "version_history": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version History"
          }
        },
        "required": [
          "name"
        ],
        "title": "SoAWCreate",
        "type": "object"
      },
      "SoAWUpdate": {
        "properties": {
          "document_info": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Info"
          },
          "initiative_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initiative Id"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "sections": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sections"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "version_history": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version History"
          }
        },
        "title": "SoAWUpdate",
        "type": "object"
      },
      "SourceFieldRow": {
        "description": "One source-platform custom field discovered in the snapshot.",
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "mapped_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mapped To"
          },
          "native_data_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Native Data Type"
          },
          "source_field_key": {
            "title": "Source Field Key",
            "type": "string"
          },
          "target_tea_type": {
            "title": "Target Tea Type",
            "type": "string"
          },
          "tea_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tea Type"
          }
        },
        "required": [
          "source_field_key",
          "label",
          "native_data_type",
          "tea_type",
          "target_tea_type",
          "mapped_to"
        ],
        "title": "SourceFieldRow",
        "type": "object"
      },
      "SourceOut": {
        "properties": {
          "accepted_extensions": {
            "items": {
              "type": "string"
            },
            "title": "Accepted Extensions",
            "type": "array"
          },
          "key": {
            "title": "Key",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          }
        },
        "required": [
          "key",
          "label",
          "accepted_extensions"
        ],
        "title": "SourceOut",
        "type": "object"
      },
      "SsoCallbackRequest": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "redirect_uri": {
            "title": "Redirect Uri",
            "type": "string"
          }
        },
        "required": [
          "code",
          "redirect_uri"
        ],
        "title": "SsoCallbackRequest",
        "type": "object"
      },
      "SsoSettingsPayload": {
        "properties": {
          "authorization_endpoint": {
            "default": "",
            "title": "Authorization Endpoint",
            "type": "string"
          },
          "client_id": {
            "default": "",
            "title": "Client Id",
            "type": "string"
          },
          "client_secret": {
            "default": "",
            "title": "Client Secret",
            "type": "string"
          },
          "domain": {
            "default": "",
            "title": "Domain",
            "type": "string"
          },
          "enabled": {
            "default": false,
            "title": "Enabled",
            "type": "boolean"
          },
          "issuer_url": {
            "default": "",
            "title": "Issuer Url",
            "type": "string"
          },
          "jwks_uri": {
            "default": "",
            "title": "Jwks Uri",
            "type": "string"
          },
          "provider": {
            "default": "microsoft",
            "title": "Provider",
            "type": "string"
          },
          "tenant_id": {
            "default": "organizations",
            "title": "Tenant Id",
            "type": "string"
          },
          "token_endpoint": {
            "default": "",
            "title": "Token Endpoint",
            "type": "string"
          }
        },
        "title": "SsoSettingsPayload",
        "type": "object"
      },
      "StakeholderCreate": {
        "properties": {
          "role": {
            "title": "Role",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "user_id",
          "role"
        ],
        "title": "StakeholderCreate",
        "type": "object"
      },
      "StakeholderRef": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "role": {
            "title": "Role",
            "type": "string"
          },
          "user_display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Display Name"
          },
          "user_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Email"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "user_id",
          "role"
        ],
        "title": "StakeholderRef",
        "type": "object"
      },
      "StakeholderRoleCreate": {
        "properties": {
          "color": {
            "default": "#757575",
            "title": "Color",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "key": {
            "maxLength": 50,
            "minLength": 3,
            "title": "Key",
            "type": "string"
          },
          "label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "permissions": {
            "additionalProperties": {
              "type": "boolean"
            },
            "default": {},
            "title": "Permissions",
            "type": "object"
          },
          "translations": {
            "additionalProperties": true,
            "default": {},
            "title": "Translations",
            "type": "object"
          }
        },
        "required": [
          "key",
          "label"
        ],
        "title": "StakeholderRoleCreate",
        "type": "object"
      },
      "StakeholderRoleUpdate": {
        "properties": {
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "permissions": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "boolean"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Permissions"
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order"
          },
          "translations": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Translations"
          }
        },
        "title": "StakeholderRoleUpdate",
        "type": "object"
      },
      "StructuredInsight": {
        "properties": {
          "observation": {
            "default": "",
            "title": "Observation",
            "type": "string"
          },
          "recommendation": {
            "default": "",
            "title": "Recommendation",
            "type": "string"
          },
          "title": {
            "default": "",
            "title": "Title",
            "type": "string"
          }
        },
        "title": "StructuredInsight",
        "type": "object"
      },
      "SubmitResponse": {
        "properties": {
          "responses": {
            "additionalProperties": true,
            "title": "Responses",
            "type": "object"
          }
        },
        "required": [
          "responses"
        ],
        "title": "SubmitResponse",
        "type": "object"
      },
      "SurveyCreate": {
        "properties": {
          "description": {
            "default": "",
            "title": "Description",
            "type": "string"
          },
          "fields": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "message": {
            "default": "",
            "title": "Message",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "target_filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Filters"
          },
          "target_roles": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Roles"
          },
          "target_type_key": {
            "title": "Target Type Key",
            "type": "string"
          }
        },
        "required": [
          "name",
          "target_type_key"
        ],
        "title": "SurveyCreate",
        "type": "object"
      },
      "SurveyUpdate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "fields": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "target_filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Filters"
          },
          "target_roles": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Roles"
          },
          "target_type_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Type Key"
          }
        },
        "title": "SurveyUpdate",
        "type": "object"
      },
      "SyncRunOut": {
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "connection_id": {
            "title": "Connection Id",
            "type": "string"
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created By"
          },
          "direction": {
            "title": "Direction",
            "type": "string"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "mapping_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mapping Id"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "stats": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stats"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "connection_id",
          "status",
          "direction"
        ],
        "title": "SyncRunOut",
        "type": "object"
      },
      "TagCreate": {
        "properties": {
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "TagCreate",
        "type": "object"
      },
      "TagGroupCreate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "mandatory": {
            "default": false,
            "title": "Mandatory",
            "type": "boolean"
          },
          "mode": {
            "default": "multi",
            "title": "Mode",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "restrict_to_types": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Restrict To Types"
          }
        },
        "required": [
          "name"
        ],
        "title": "TagGroupCreate",
        "type": "object"
      },
      "TagGroupUpdate": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "mandatory": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mandatory"
          },
          "mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "restrict_to_types": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Restrict To Types"
          }
        },
        "title": "TagGroupUpdate",
        "type": "object"
      },
      "TagRef": {
        "properties": {
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "group_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Group Name"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "TagRef",
        "type": "object"
      },
      "TagUpdate": {
        "properties": {
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "title": "TagUpdate",
        "type": "object"
      },
      "TargetFieldOption": {
        "description": "One Turbo EA field that an admin can map a source field onto.",
        "properties": {
          "key": {
            "title": "Key",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "section": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Section"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "key",
          "label",
          "type"
        ],
        "title": "TargetFieldOption",
        "type": "object"
      },
      "TestRequest": {
        "properties": {
          "card_id": {
            "title": "Card Id",
            "type": "string"
          }
        },
        "required": [
          "card_id"
        ],
        "title": "TestRequest",
        "type": "object"
      },
      "TodoCreate": {
        "properties": {
          "assigned_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assigned To"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "due_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          }
        },
        "required": [
          "description"
        ],
        "title": "TodoCreate",
        "type": "object"
      },
      "TodoUpdate": {
        "properties": {
          "assigned_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assigned To"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "due_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due Date"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          }
        },
        "title": "TodoUpdate",
        "type": "object"
      },
      "TokenResponse": {
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "token_type": {
            "default": "bearer",
            "title": "Token Type",
            "type": "string"
          }
        },
        "required": [
          "access_token"
        ],
        "title": "TokenResponse",
        "type": "object"
      },
      "TurboLensAnalysisRunOut": {
        "properties": {
          "analysis_type": {
            "title": "Analysis Type",
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "results": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Results"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "analysis_type",
          "status"
        ],
        "title": "TurboLensAnalysisRunOut",
        "type": "object"
      },
      "TurboLensArchitectRequest": {
        "properties": {
          "allQA": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Allqa"
          },
          "objectiveIds": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Objectiveids"
          },
          "phase": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phase"
          },
          "phase1QA": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phase1Qa"
          },
          "requirement": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requirement"
          },
          "selectedCapabilities": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selectedcapabilities"
          },
          "selectedOption": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selectedoption"
          },
          "selectedProducts": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selectedproducts"
          },
          "selectedRecommendations": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selectedrecommendations"
          }
        },
        "title": "TurboLensArchitectRequest",
        "type": "object"
      },
      "TurboLensAssessmentCreate": {
        "description": "Save an architecture assessment session.",
        "properties": {
          "requirement": {
            "title": "Requirement",
            "type": "string"
          },
          "sessionData": {
            "additionalProperties": true,
            "title": "Sessiondata",
            "type": "object"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title",
          "requirement",
          "sessionData"
        ],
        "title": "TurboLensAssessmentCreate",
        "type": "object"
      },
      "TurboLensAssessmentUpdate": {
        "description": "Update an existing architecture assessment session.",
        "properties": {
          "requirement": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requirement"
          },
          "sessionData": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sessiondata"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "TurboLensAssessmentUpdate",
        "type": "object"
      },
      "TurboLensCommitRequest": {
        "description": "Commit an assessment: create initiative, cards, relations, ADR.",
        "properties": {
          "assessmentId": {
            "title": "Assessmentid",
            "type": "string"
          },
          "endDate": {
            "title": "Enddate",
            "type": "string"
          },
          "initiativeName": {
            "title": "Initiativename",
            "type": "string"
          },
          "objectiveIds": {
            "items": {
              "type": "string"
            },
            "title": "Objectiveids",
            "type": "array"
          },
          "renamedCards": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of card ID \u2192 new name for cards renamed by the user",
            "title": "Renamedcards",
            "type": "object"
          },
          "selectedCardIds": {
            "items": {
              "type": "string"
            },
            "title": "Selectedcardids",
            "type": "array"
          },
          "selectedRelationIndices": {
            "items": {
              "type": "integer"
            },
            "title": "Selectedrelationindices",
            "type": "array"
          },
          "startDate": {
            "title": "Startdate",
            "type": "string"
          }
        },
        "required": [
          "assessmentId",
          "initiativeName",
          "startDate",
          "endDate",
          "selectedCardIds",
          "selectedRelationIndices"
        ],
        "title": "TurboLensCommitRequest",
        "type": "object"
      },
      "TurboLensDuplicateStatusUpdate": {
        "properties": {
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "TurboLensDuplicateStatusUpdate",
        "type": "object"
      },
      "TurboLensEnabledPayload": {
        "properties": {
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "TurboLensEnabledPayload",
        "type": "object"
      },
      "TurboLensModernizeRequest": {
        "properties": {
          "modernization_type": {
            "default": "general",
            "title": "Modernization Type",
            "type": "string"
          },
          "target_type": {
            "default": "Application",
            "title": "Target Type",
            "type": "string"
          }
        },
        "title": "TurboLensModernizeRequest",
        "type": "object"
      },
      "TurboLensOverviewOut": {
        "properties": {
          "cards_by_type": {
            "additionalProperties": {
              "type": "integer"
            },
            "default": {},
            "title": "Cards By Type",
            "type": "object"
          },
          "duplicate_clusters": {
            "default": 0,
            "title": "Duplicate Clusters",
            "type": "integer"
          },
          "modernization_count": {
            "default": 0,
            "title": "Modernization Count",
            "type": "integer"
          },
          "quality_avg": {
            "default": 0,
            "title": "Quality Avg",
            "type": "number"
          },
          "quality_bronze": {
            "default": 0,
            "title": "Quality Bronze",
            "type": "integer"
          },
          "quality_gold": {
            "default": 0,
            "title": "Quality Gold",
            "type": "integer"
          },
          "quality_silver": {
            "default": 0,
            "title": "Quality Silver",
            "type": "integer"
          },
          "top_issues": {
            "default": [],
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Top Issues",
            "type": "array"
          },
          "total_cards": {
            "default": 0,
            "title": "Total Cards",
            "type": "integer"
          },
          "total_cost": {
            "default": 0,
            "title": "Total Cost",
            "type": "number"
          },
          "vendor_count": {
            "default": 0,
            "title": "Vendor Count",
            "type": "integer"
          }
        },
        "title": "TurboLensOverviewOut",
        "type": "object"
      },
      "TurboLensStatusOut": {
        "properties": {
          "ai_configured": {
            "title": "Ai Configured",
            "type": "boolean"
          },
          "enabled": {
            "default": true,
            "title": "Enabled",
            "type": "boolean"
          },
          "ready": {
            "title": "Ready",
            "type": "boolean"
          }
        },
        "required": [
          "ai_configured",
          "ready"
        ],
        "title": "TurboLensStatusOut",
        "type": "object"
      },
      "UiPreferencesUpdate": {
        "properties": {
          "dashboard_default_tab": {
            "anyOf": [
              {
                "enum": [
                  "overview",
                  "workspace",
                  "admin"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dashboard Default Tab"
          }
        },
        "title": "UiPreferencesUpdate",
        "type": "object"
      },
      "UserBulkDelete": {
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "title": "Ids",
            "type": "array"
          }
        },
        "required": [
          "ids"
        ],
        "title": "UserBulkDelete",
        "type": "object"
      },
      "UserBulkUpdate": {
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "title": "Ids",
            "type": "array"
          },
          "updates": {
            "$ref": "#/components/schemas/UserBulkUpdateFields"
          }
        },
        "required": [
          "ids",
          "updates"
        ],
        "title": "UserBulkUpdate",
        "type": "object"
      },
      "UserBulkUpdateFields": {
        "properties": {
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          }
        },
        "title": "UserBulkUpdateFields",
        "type": "object"
      },
      "UserCreate": {
        "properties": {
          "auth_provider": {
            "anyOf": [
              {
                "enum": [
                  "local",
                  "sso"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auth Provider"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "format": "email",
            "title": "Email",
            "type": "string"
          },
          "password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          },
          "role": {
            "default": "member",
            "title": "Role",
            "type": "string"
          },
          "send_email": {
            "default": false,
            "title": "Send Email",
            "type": "boolean"
          }
        },
        "required": [
          "email",
          "display_name"
        ],
        "title": "UserCreate",
        "type": "object"
      },
      "UserResponse": {
        "properties": {
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "locale": {
            "default": "en",
            "title": "Locale",
            "type": "string"
          },
          "permissions": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "boolean"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Permissions"
          },
          "role": {
            "title": "Role",
            "type": "string"
          },
          "role_color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role Color"
          },
          "role_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role Label"
          },
          "ui_preferences": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ui Preferences"
          }
        },
        "required": [
          "id",
          "email",
          "display_name",
          "role",
          "is_active"
        ],
        "title": "UserResponse",
        "type": "object"
      },
      "UserUpdate": {
        "properties": {
          "auth_provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auth Provider"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          },
          "email": {
            "anyOf": [
              {
                "format": "email",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "is_active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Active"
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale"
          },
          "password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          },
          "role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          }
        },
        "title": "UserUpdate",
        "type": "object"
      },
      "ValidateRequest": {
        "properties": {
          "formula": {
            "maxLength": 5000,
            "title": "Formula",
            "type": "string"
          },
          "target_type_key": {
            "title": "Target Type Key",
            "type": "string"
          }
        },
        "required": [
          "formula",
          "target_type_key"
        ],
        "title": "ValidateRequest",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "VendorAnalysisOut": {
        "properties": {
          "analysed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Analysed At"
          },
          "app_count": {
            "default": 0,
            "title": "App Count",
            "type": "integer"
          },
          "app_list": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "App List"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "reasoning": {
            "default": "",
            "title": "Reasoning",
            "type": "string"
          },
          "sub_category": {
            "default": "",
            "title": "Sub Category",
            "type": "string"
          },
          "total_cost": {
            "default": 0,
            "title": "Total Cost",
            "type": "number"
          },
          "vendor_name": {
            "title": "Vendor Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "vendor_name",
          "category"
        ],
        "title": "VendorAnalysisOut",
        "type": "object"
      },
      "VendorHierarchyOut": {
        "properties": {
          "aliases": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aliases"
          },
          "analysed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Analysed At"
          },
          "app_count": {
            "default": 0,
            "title": "App Count",
            "type": "integer"
          },
          "canonical_name": {
            "title": "Canonical Name",
            "type": "string"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "itc_count": {
            "default": 0,
            "title": "Itc Count",
            "type": "integer"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "sub_category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sub Category"
          },
          "total_cost": {
            "default": 0,
            "title": "Total Cost",
            "type": "number"
          },
          "vendor_type": {
            "default": "vendor",
            "title": "Vendor Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "canonical_name"
        ],
        "title": "VendorHierarchyOut",
        "type": "object"
      },
      "WebPortalCreate": {
        "properties": {
          "card_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Config"
          },
          "card_type": {
            "title": "Card Type",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "display_fields": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Fields"
          },
          "filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filters"
          },
          "is_published": {
            "default": false,
            "title": "Is Published",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "slug": {
            "title": "Slug",
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug",
          "card_type"
        ],
        "title": "WebPortalCreate",
        "type": "object"
      },
      "WebPortalUpdate": {
        "properties": {
          "card_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Config"
          },
          "card_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Type"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "display_fields": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Fields"
          },
          "filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filters"
          },
          "is_published": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Published"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "slug": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slug"
          }
        },
        "title": "WebPortalUpdate",
        "type": "object"
      },
      "app__api__v1__migration__StagedRecordOut": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "card_type_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Type Key"
          },
          "diff": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diff"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          },
          "entity_kind": {
            "title": "Entity Kind",
            "type": "string"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "source_type": {
            "title": "Source Type",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "target_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Id"
          }
        },
        "required": [
          "id",
          "entity_kind",
          "source_id",
          "source_type",
          "card_type_key",
          "action",
          "status",
          "diff",
          "error_message",
          "target_id"
        ],
        "title": "StagedRecordOut",
        "type": "object"
      },
      "app__api__v1__servicenow__StagedRecordOut": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "card_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card Id"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "diff": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diff"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "snow_data": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snow Data"
          },
          "snow_sys_id": {
            "title": "Snow Sys Id",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "snow_sys_id",
          "action",
          "status"
        ],
        "title": "StagedRecordOut",
        "type": "object"
      }
    }
  },
  "info": {
    "title": "Turbo EA",
    "version": "latest"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/health": {
      "get": {
        "operationId": "health_api_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Health"
      }
    },
    "/api/v1/adr": {
      "get": {
        "operationId": "list_adrs_api_v1_adr_get",
        "parameters": [
          {
            "in": "query",
            "name": "initiative_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Initiative Id"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Id"
            }
          },
          {
            "in": "query",
            "name": "card_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Type"
            }
          },
          {
            "in": "query",
            "name": "date_from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date From"
            }
          },
          {
            "in": "query",
            "name": "date_to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date To"
            }
          },
          {
            "in": "query",
            "name": "modified_from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Modified From"
            }
          },
          {
            "in": "query",
            "name": "modified_to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Modified To"
            }
          },
          {
            "in": "query",
            "name": "signed_from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signed From"
            }
          },
          {
            "in": "query",
            "name": "signed_to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Signed To"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Adrs",
        "tags": [
          "adr"
        ]
      },
      "post": {
        "operationId": "create_adr_api_v1_adr_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ADRCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Adr",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/by-card/{card_id}": {
      "get": {
        "description": "Get all ADRs linked to a specific card.",
        "operationId": "list_adrs_for_card_api_v1_adr_by_card__card_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Adrs For Card",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}": {
      "delete": {
        "operationId": "delete_adr_api_v1_adr__adr_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Adr",
        "tags": [
          "adr"
        ]
      },
      "get": {
        "operationId": "get_adr_api_v1_adr__adr_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Adr",
        "tags": [
          "adr"
        ]
      },
      "patch": {
        "operationId": "update_adr_api_v1_adr__adr_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ADRUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Adr",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/cards": {
      "post": {
        "description": "Link an ADR to a card.",
        "operationId": "link_card_api_v1_adr__adr_id__cards_post",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ADRCardLink"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Link Card",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/cards/{card_id}": {
      "delete": {
        "description": "Unlink an ADR from a card.",
        "operationId": "unlink_card_api_v1_adr__adr_id__cards__card_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Unlink Card",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/duplicate": {
      "post": {
        "description": "Duplicate an ADR as a new draft with a new reference number.",
        "operationId": "duplicate_adr_api_v1_adr__adr_id__duplicate_post",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Duplicate Adr",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/recall-signatures": {
      "post": {
        "description": "Recall all pending signature requests. Resets status to draft and\nclears signatories.",
        "operationId": "recall_adr_signatures_api_v1_adr__adr_id__recall_signatures_post",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Recall Adr Signatures",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/reject": {
      "post": {
        "description": "Reject the ADR as a signatory. Resets to draft, increments revision\nnumber, clears all signatories, and notifies the creator.",
        "operationId": "reject_adr_api_v1_adr__adr_id__reject_post",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ADRRejectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reject Adr",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/request-signatures": {
      "post": {
        "description": "Request signatures from specified users.",
        "operationId": "request_signatures_api_v1_adr__adr_id__request_signatures_post",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ADRSignatureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Request Signatures",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/revise": {
      "post": {
        "description": "Create a new revision of a signed ADR.",
        "operationId": "revise_adr_api_v1_adr__adr_id__revise_post",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revise Adr",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/revisions": {
      "get": {
        "description": "List all revisions in the chain for this ADR.",
        "operationId": "list_revisions_api_v1_adr__adr_id__revisions_get",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Revisions",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/adr/{adr_id}/sign": {
      "post": {
        "description": "Sign the ADR as the current user.",
        "operationId": "sign_adr_api_v1_adr__adr_id__sign_post",
        "parameters": [
          {
            "in": "path",
            "name": "adr_id",
            "required": true,
            "schema": {
              "title": "Adr Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sign Adr",
        "tags": [
          "adr"
        ]
      }
    },
    "/api/v1/ai/portfolio-insights": {
      "post": {
        "description": "Generate AI-driven insights for the application portfolio report.",
        "operationId": "portfolio_insights_api_v1_ai_portfolio_insights_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PortfolioInsightsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PortfolioInsightsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Portfolio Insights",
        "tags": [
          "AI Suggestions"
        ]
      }
    },
    "/api/v1/ai/status": {
      "get": {
        "description": "Check whether AI suggestions are enabled and configured.\n\nReturns the status without exposing secrets.",
        "operationId": "ai_status_api_v1_ai_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Ai Status",
        "tags": [
          "AI Suggestions"
        ]
      }
    },
    "/api/v1/ai/suggest": {
      "post": {
        "description": "Generate AI-powered metadata suggestions for a card.\n\nUses a two-step pipeline: web search \u2192 local LLM extraction.",
        "operationId": "suggest_api_v1_ai_suggest_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AiSuggestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AiSuggestResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Suggest",
        "tags": [
          "AI Suggestions"
        ]
      }
    },
    "/api/v1/auth/forgot-password": {
      "post": {
        "description": "Initiate a password reset for a local account.\n\nAnti-enumeration: always returns `{\"ok\": True}` regardless of whether the\nemail matches a user. An email is only sent when ALL of the following hold:\n\n- A user exists with the given email.\n- The user has a local password (not SSO-only).\n- The user is active.\n- SMTP is configured.\n\nTokens live for one hour and are stored on the user row directly.",
        "operationId": "forgot_password_api_v1_auth_forgot_password_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Forgot Password",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "operationId": "login_api_v1_auth_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Login",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/logout": {
      "post": {
        "description": "Clear the auth cookie.",
        "operationId": "logout_api_v1_auth_logout_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Logout",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/me": {
      "get": {
        "operationId": "me_api_v1_auth_me_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Me",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "description": "Issue a new short-lived access token. Re-reads role and active status from DB.",
        "operationId": "refresh_token_api_v1_auth_refresh_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Refresh Token",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/register": {
      "post": {
        "operationId": "register_api_v1_auth_register_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Register",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/reset-password": {
      "post": {
        "description": "Consume a reset token and set a new password. Does NOT auto-log-in.",
        "operationId": "reset_password_api_v1_auth_reset_password_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reset Password",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/set-password": {
      "post": {
        "description": "Set a password for an invited user using a one-time setup token.",
        "operationId": "set_password_api_v1_auth_set_password_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Password",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/sso/callback": {
      "post": {
        "description": "Exchange an authorization code from an SSO provider for a Turbo EA JWT.",
        "operationId": "sso_callback_api_v1_auth_sso_callback_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SsoCallbackRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sso Callback",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/sso/config": {
      "get": {
        "description": "Public endpoint \u2014 returns SSO configuration needed by the frontend to\nbuild the authorization URL. No secrets are exposed.\nAlso includes registration_enabled so the login page knows whether to\nshow the Register tab.",
        "operationId": "sso_config_endpoint_api_v1_auth_sso_config_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Sso Config Endpoint",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/validate-reset-token": {
      "get": {
        "description": "Check whether a password-reset token is valid and unexpired.",
        "operationId": "validate_reset_token_api_v1_auth_validate_reset_token_get",
        "parameters": [
          {
            "in": "query",
            "name": "token",
            "required": true,
            "schema": {
              "title": "Token",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Validate Reset Token",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/auth/validate-setup-token": {
      "get": {
        "description": "Check if a password-setup token is valid. Returns the user's email.",
        "operationId": "validate_setup_token_api_v1_auth_validate_setup_token_get",
        "parameters": [
          {
            "in": "query",
            "name": "token",
            "required": true,
            "schema": {
              "title": "Token",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Validate Setup Token",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/bookmarks": {
      "get": {
        "operationId": "list_bookmarks_api_v1_bookmarks_get",
        "parameters": [
          {
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "default": "all",
              "pattern": "^(all|my|shared|public)$",
              "title": "Filter",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Bookmarks",
        "tags": [
          "bookmarks"
        ]
      },
      "post": {
        "operationId": "create_bookmark_api_v1_bookmarks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookmarkCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Bookmark",
        "tags": [
          "bookmarks"
        ]
      }
    },
    "/api/v1/bookmarks/{bm_id}": {
      "delete": {
        "operationId": "delete_bookmark_api_v1_bookmarks__bm_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "bm_id",
            "required": true,
            "schema": {
              "title": "Bm Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Bookmark",
        "tags": [
          "bookmarks"
        ]
      },
      "patch": {
        "operationId": "update_bookmark_api_v1_bookmarks__bm_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "bm_id",
            "required": true,
            "schema": {
              "title": "Bm Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookmarkUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Bookmark",
        "tags": [
          "bookmarks"
        ]
      }
    },
    "/api/v1/bookmarks/{bm_id}/odata": {
      "get": {
        "description": "OData-style JSON feed for a bookmark's filtered cards.\nRequires authentication. Returns data matching the bookmark's saved filters.",
        "operationId": "bookmark_odata_feed_api_v1_bookmarks__bm_id__odata_get",
        "parameters": [
          {
            "in": "path",
            "name": "bm_id",
            "required": true,
            "schema": {
              "title": "Bm Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 1000,
              "maximum": 10000,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bookmark Odata Feed",
        "tags": [
          "bookmarks"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/assessments": {
      "get": {
        "operationId": "list_assessments_api_v1_bpm_processes__process_id__assessments_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Assessments",
        "tags": [
          "bpm"
        ]
      },
      "post": {
        "operationId": "create_assessment_api_v1_bpm_processes__process_id__assessments_post",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessAssessmentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Assessment",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/assessments/{assessment_id}": {
      "delete": {
        "operationId": "delete_assessment_api_v1_bpm_processes__process_id__assessments__assessment_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Assessment",
        "tags": [
          "bpm"
        ]
      },
      "put": {
        "operationId": "update_assessment_api_v1_bpm_processes__process_id__assessments__assessment_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessAssessmentUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Assessment",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/diagram": {
      "delete": {
        "description": "Delete all diagram versions and extracted elements for a process.",
        "operationId": "delete_diagram_api_v1_bpm_processes__process_id__diagram_delete",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Diagram",
        "tags": [
          "bpm"
        ]
      },
      "get": {
        "operationId": "get_diagram_api_v1_bpm_processes__process_id__diagram_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Diagram",
        "tags": [
          "bpm"
        ]
      },
      "put": {
        "operationId": "save_diagram_api_v1_bpm_processes__process_id__diagram_put",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DiagramSave"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Save Diagram",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/diagram/export/bpmn": {
      "get": {
        "operationId": "export_bpmn_api_v1_bpm_processes__process_id__diagram_export_bpmn_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export Bpmn",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/diagram/export/svg": {
      "get": {
        "operationId": "export_svg_api_v1_bpm_processes__process_id__diagram_export_svg_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export Svg",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/diagram/import": {
      "post": {
        "operationId": "import_bpmn_api_v1_bpm_processes__process_id__diagram_import_post",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_import_bpmn_api_v1_bpm_processes__process_id__diagram_import_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Import Bpmn",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/diagram/versions": {
      "get": {
        "operationId": "list_diagram_versions_api_v1_bpm_processes__process_id__diagram_versions_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Diagram Versions",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/elements": {
      "get": {
        "operationId": "list_elements_api_v1_bpm_processes__process_id__elements_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Elements",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/elements/{element_id}": {
      "put": {
        "operationId": "update_element_api_v1_bpm_processes__process_id__elements__element_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "element_id",
            "required": true,
            "schema": {
              "title": "Element Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ElementUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Element",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/archived": {
      "get": {
        "description": "List archived process flow versions (most recent first).",
        "operationId": "list_archived_api_v1_bpm_processes__process_id__flow_archived_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Archived",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/drafts": {
      "get": {
        "description": "List draft (and pending) flow versions for a process.",
        "operationId": "list_drafts_api_v1_bpm_processes__process_id__flow_drafts_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Drafts",
        "tags": [
          "bpm-workflow"
        ]
      },
      "post": {
        "description": "Create a new draft process flow, optionally cloned from an existing version.",
        "operationId": "create_draft_api_v1_bpm_processes__process_id__flow_drafts_post",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFlowVersionCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Draft",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/permissions": {
      "get": {
        "description": "Return the current user's permissions on the process flow.",
        "operationId": "get_flow_permissions_api_v1_bpm_processes__process_id__flow_permissions_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Flow Permissions",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/published": {
      "get": {
        "description": "Get the currently published process flow (visible to all authenticated users).",
        "operationId": "get_published_flow_api_v1_bpm_processes__process_id__flow_published_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Published Flow",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/versions/{version_id}": {
      "delete": {
        "description": "Delete a draft process flow. Only drafts can be deleted.",
        "operationId": "delete_draft_api_v1_bpm_processes__process_id__flow_versions__version_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Draft",
        "tags": [
          "bpm-workflow"
        ]
      },
      "get": {
        "description": "Get a specific process flow version by ID.",
        "operationId": "get_version_api_v1_bpm_processes__process_id__flow_versions__version_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Version",
        "tags": [
          "bpm-workflow"
        ]
      },
      "patch": {
        "description": "Update a draft process flow. Only drafts can be edited.",
        "operationId": "update_draft_api_v1_bpm_processes__process_id__flow_versions__version_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessFlowVersionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Draft",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/versions/{version_id}/approve": {
      "post": {
        "description": "Approve a pending process flow. The approved version becomes published;\nthe previous published version becomes archived.",
        "operationId": "approve_version_api_v1_bpm_processes__process_id__flow_versions__version_id__approve_post",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Approve Version",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/versions/{version_id}/draft-elements": {
      "get": {
        "description": "Parse BPMN XML from a draft/pending version and return extracted elements\nmerged with any saved draft_element_links (pre-linked EA references).",
        "operationId": "get_draft_elements_api_v1_bpm_processes__process_id__flow_versions__version_id__draft_elements_get",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Draft Elements",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/versions/{version_id}/draft-elements/{bpmn_element_id}": {
      "put": {
        "description": "Update a single draft element link (pre-link EA references before publishing).",
        "operationId": "update_draft_element_link_api_v1_bpm_processes__process_id__flow_versions__version_id__draft_elements__bpmn_element_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "bpmn_element_id",
            "required": true,
            "schema": {
              "title": "Bpmn Element Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "title": "Body",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Draft Element Link",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/versions/{version_id}/reject": {
      "post": {
        "description": "Reject a pending process flow, returning it to draft status.",
        "operationId": "reject_version_api_v1_bpm_processes__process_id__flow_versions__version_id__reject_post",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reject Version",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/processes/{process_id}/flow/versions/{version_id}/submit": {
      "post": {
        "description": "Submit a draft for approval by the business process owner.",
        "operationId": "submit_for_approval_api_v1_bpm_processes__process_id__flow_versions__version_id__submit_post",
        "parameters": [
          {
            "in": "path",
            "name": "process_id",
            "required": true,
            "schema": {
              "title": "Process Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version_id",
            "required": true,
            "schema": {
              "title": "Version Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Submit For Approval",
        "tags": [
          "bpm-workflow"
        ]
      }
    },
    "/api/v1/bpm/templates": {
      "get": {
        "operationId": "list_templates_api_v1_bpm_templates_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Templates",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/bpm/templates/{template_key}": {
      "get": {
        "operationId": "get_template_api_v1_bpm_templates__template_key__get",
        "parameters": [
          {
            "in": "path",
            "name": "template_key",
            "required": true,
            "schema": {
              "title": "Template Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Template",
        "tags": [
          "bpm"
        ]
      }
    },
    "/api/v1/calculations": {
      "get": {
        "operationId": "list_calculations_api_v1_calculations_get",
        "parameters": [
          {
            "in": "query",
            "name": "type_key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CalculationResponse"
                  },
                  "title": "Response List Calculations Api V1 Calculations Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Calculations",
        "tags": [
          "calculations"
        ]
      },
      "post": {
        "operationId": "create_calculation_api_v1_calculations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Calculation",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/calculations/calculated-fields": {
      "get": {
        "description": "Return a map of type_key -> list of field keys that are targeted by active calculations.",
        "operationId": "get_calculated_fields_api_v1_calculations_calculated_fields_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Calculated Fields",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/calculations/recalculate/{type_key}": {
      "post": {
        "description": "Bulk recalculate all cards of a type.",
        "operationId": "recalculate_type_api_v1_calculations_recalculate__type_key__post",
        "parameters": [
          {
            "in": "path",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Recalculate Type",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/calculations/validate": {
      "post": {
        "operationId": "validate_formula_endpoint_api_v1_calculations_validate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Validate Formula Endpoint",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/calculations/{calc_id}": {
      "delete": {
        "operationId": "delete_calculation_api_v1_calculations__calc_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "calc_id",
            "required": true,
            "schema": {
              "title": "Calc Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Calculation",
        "tags": [
          "calculations"
        ]
      },
      "get": {
        "operationId": "get_calculation_api_v1_calculations__calc_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "calc_id",
            "required": true,
            "schema": {
              "title": "Calc Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Calculation",
        "tags": [
          "calculations"
        ]
      },
      "patch": {
        "operationId": "update_calculation_api_v1_calculations__calc_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "calc_id",
            "required": true,
            "schema": {
              "title": "Calc Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculationUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Calculation",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/calculations/{calc_id}/activate": {
      "post": {
        "operationId": "activate_calculation_api_v1_calculations__calc_id__activate_post",
        "parameters": [
          {
            "in": "path",
            "name": "calc_id",
            "required": true,
            "schema": {
              "title": "Calc Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Activate Calculation",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/calculations/{calc_id}/deactivate": {
      "post": {
        "operationId": "deactivate_calculation_api_v1_calculations__calc_id__deactivate_post",
        "parameters": [
          {
            "in": "path",
            "name": "calc_id",
            "required": true,
            "schema": {
              "title": "Calc Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Deactivate Calculation",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/calculations/{calc_id}/test": {
      "post": {
        "description": "Test a calculation with a specific card (dry run, no save).",
        "operationId": "test_calculation_api_v1_calculations__calc_id__test_post",
        "parameters": [
          {
            "in": "path",
            "name": "calc_id",
            "required": true,
            "schema": {
              "title": "Calc Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Test Calculation",
        "tags": [
          "calculations"
        ]
      }
    },
    "/api/v1/capability-catalogue": {
      "get": {
        "description": "Return the full active catalogue with `existing_card_id` annotations.\n\nThe optional `locale` query param overrides the user's saved locale \u2014\nused by the frontend to follow live UI language switches without waiting\nfor the `user.locale` PATCH to land. Falls back to `user.locale`, then\nEnglish. Translations themselves come from the bundled package; missing\nper-field translations degrade silently to English.",
        "operationId": "get_catalogue_api_v1_capability_catalogue_get",
        "parameters": [
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Locale"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Catalogue",
        "tags": [
          "capability-catalogue"
        ]
      }
    },
    "/api/v1/capability-catalogue/import": {
      "post": {
        "description": "Create BusinessCapability cards for the selected catalogue entries.\n\nIdempotent: catalogue entries whose name already exists as a non-archived\nBusinessCapability are skipped (and reported in the `skipped` list).\nHierarchy is preserved automatically when both parent and child are\nselected, or when the parent already exists.\n\nThe optional `locale` in the request body controls which language the\nnew cards are written in (`name`, `description`, `aliases`); falls back\nto the user's saved locale, then English. Existing-card matching is\nalways English-anchored so a localized import never duplicates a card.",
        "operationId": "import_capabilities_api_v1_capability_catalogue_import_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Import Capabilities",
        "tags": [
          "capability-catalogue"
        ]
      }
    },
    "/api/v1/capability-catalogue/update-fetch": {
      "post": {
        "description": "Download the latest catalogue from the public site and cache it.",
        "operationId": "update_fetch_api_v1_capability_catalogue_update_fetch_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Update Fetch",
        "tags": [
          "capability-catalogue"
        ]
      }
    },
    "/api/v1/capability-catalogue/update-status": {
      "get": {
        "description": "Compare the bundled/cached catalogue against the public site.",
        "operationId": "update_status_api_v1_capability_catalogue_update_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Update Status",
        "tags": [
          "capability-catalogue"
        ]
      }
    },
    "/api/v1/cards": {
      "get": {
        "operationId": "list_cards_api_v1_cards_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 200,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "parent_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Parent Id"
            }
          },
          {
            "in": "query",
            "name": "approval_status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Approval Status"
            }
          },
          {
            "description": "Scope the result to cards related to the current user. `stakeholder` keeps only cards on which the user holds at least one stakeholder role.",
            "in": "query",
            "name": "mine",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^(stakeholder)$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Scope the result to cards related to the current user. `stakeholder` keeps only cards on which the user holds at least one stakeholder role.",
              "title": "Mine"
            }
          },
          {
            "description": "Comma-separated UUIDs to fetch in one round trip. Used by the diagram editor's view perspectives to recolor cells.",
            "in": "query",
            "name": "ids",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated UUIDs to fetch in one round trip. Used by the diagram editor's view perspectives to recolor cells.",
              "title": "Ids"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 10000,
              "maximum": 10000,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "default": "name",
              "title": "Sort By",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_dir",
            "required": false,
            "schema": {
              "default": "asc",
              "title": "Sort Dir",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Cards",
        "tags": [
          "cards"
        ]
      },
      "post": {
        "operationId": "create_card_api_v1_cards_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Card",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/bulk": {
      "patch": {
        "operationId": "bulk_update_api_v1_cards_bulk_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardBulkUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Update",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/bulk-archive": {
      "post": {
        "description": "Archive many cards in a single transaction.\n\nSolves a class of problems that the per-card endpoint cannot:\n  - browser parallelism: 1 round-trip instead of N (no socket-pool exhaustion);\n  - cascade race: archiving a parent that cascades to a descendant which is\n    also in the input list is a single coherent operation, not a fight\n    between sibling workers seeing the descendant in different states;\n  - reporting: one aggregated response with `archived`, `cascaded`, `skipped`\n    instead of N independent failures the caller has to stitch together.\n\nCards already at status=ARCHIVED, or whose IDs don't resolve, are returned\nin `skipped` rather than failing the batch \u2014 the user's intent (everything\nin the input ends up archived) is satisfied either way.",
        "operationId": "bulk_archive_cards_api_v1_cards_bulk_archive_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardBulkArchiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkArchiveResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Archive Cards",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/bulk-create": {
      "post": {
        "description": "Batched card creation for the spreadsheet importer.\n\nEach row carries its own `row_index` so the caller can pair the\nresponse back to its spreadsheet row. Parents may be referenced by\nUUID (`parent_id`) or by `(parent_path, parent_name)` \u2014 the server\nresolves names server-side against the existing inventory and against\nother rows in the same request (which may not exist yet).\n\nRows are processed in topological order: parents come before children\nso FK constraints never fire. If a row's parent cannot be resolved\neven after every other row has been placed, it fails with a clear\n`parent_not_resolved` error instead of producing an orphan card.\n\nSingle transaction per request \u2014 partial failures still roll back\nsucceeded rows in the same batch. Permission: `inventory.create`.",
        "operationId": "bulk_create_cards_api_v1_cards_bulk_create_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardBulkCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkCreateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Create Cards",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/bulk-delete": {
      "post": {
        "description": "Permanently delete many cards in a single transaction.\n\nMirrors `bulk_archive_cards`. Unlike archive, delete works on cards in any\nstatus (ACTIVE or ARCHIVED), so the only `skipped` reason is `not_found`\n(the card was already deleted by a sibling primary's cascade in the same\nbatch, or never existed).\n\nDescendants are deleted leaves-first to satisfy the self-FK on `parent_id`.",
        "operationId": "bulk_delete_cards_api_v1_cards_bulk_delete_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardBulkDeleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkDeleteResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Delete Cards",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/bulk-restore": {
      "post": {
        "description": "Restore many archived cards back to ACTIVE status in a single transaction.\n\nMirrors `bulk_archive_cards` for the inverse operation. Cards already at\nACTIVE, or whose IDs don't resolve, come back in `skipped` rather than\nfailing the batch \u2014 restoring is idempotent in spirit (the desired end\nstate is \"this card is active\", and that's already true).\n\nNo cascade: restore is a flat per-card status flip. The single-card\nendpoint takes `also_restore_card_ids` to lift passengers from the\noriginal archive batch; for bulk we expect the caller (the inventory\nselection UI) to have already gathered the full list of cards to restore.",
        "operationId": "bulk_restore_cards_api_v1_cards_bulk_restore_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardBulkRestoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkRestoreResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Restore Cards",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/counts": {
      "get": {
        "description": "Per-card-type counts of ACTIVE cards. Powers the type chips with\ncounts in the diagram editor's Insert Cards dialog (LeanIX-style).\nHidden types are excluded so the dialog never offers them.\n\nDeclared above /{card_id} so the literal `counts` segment isn't shadowed\nby the UUID-typed catch-all and parsed as a (broken) UUID.",
        "operationId": "cards_counts_api_v1_cards_counts_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardCountsResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Cards Counts",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/export/csv": {
      "get": {
        "operationId": "export_csv_api_v1_cards_export_csv_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export Csv",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/export/json": {
      "get": {
        "description": "Bulk export cards as JSON for integration consumers (e.g. TurboLens MCP).\n\nReturns all active cards of the given types with optional pre-joined\nprovider relation names and stakeholder owner info.",
        "operationId": "export_json_api_v1_cards_export_json_get",
        "parameters": [
          {
            "description": "Comma-separated type keys",
            "in": "query",
            "name": "types",
            "required": true,
            "schema": {
              "description": "Comma-separated type keys",
              "title": "Types",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "include_relations",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Relations",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "include_stakeholders",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Stakeholders",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export Json",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/fix-hierarchy-names": {
      "post": {
        "operationId": "fix_hierarchy_names_api_v1_cards_fix_hierarchy_names_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Fix Hierarchy Names",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/my-created": {
      "get": {
        "description": "Cards the current user originally created (via ``Card.created_by``).\n\nSupports simple offset/limit pagination so the Dashboard \u2192 My\nWorkspace \u2192 Cards I Created section can offer a \"Show more\" button\non long lists.",
        "operationId": "list_my_created_cards_api_v1_cards_my_created_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List My Created Cards",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/my-stakeholder": {
      "get": {
        "description": "Cards on which the target user holds at least one stakeholder role.\n\nDefaults to the **current user** so the legacy\n``GET /cards/my-stakeholder`` (no query params) keeps powering the\nWorkspace \u2192 \"My roles\" dashboard section without changes.\n\nPass ``?user_id=<uuid>`` to look up another user's stakeholder\nportfolio \u2014 the Workspace section reuses this to offer a \"view as\nanother user\" picker. Cross-user lookups require ``stakeholders.view``.\n\nReturns cards plus a ``roles_by_card_id`` map keyed by card id, where\neach entry is a list of role descriptors ``{key, label, color,\ntranslations}`` resolved from the matching ``StakeholderRoleDefinition``\nfor the card's type. The frontend uses ``label`` + ``translations`` to\nrender a localised role chip per role.",
        "operationId": "list_my_stakeholder_cards_api_v1_cards_my_stakeholder_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "description": "Look up another user's stakeholder cards instead of your own. When omitted (or equal to the caller's id) returns the current user \u2014 same as the no-arg behaviour. When set to another user's id, requires the `stakeholders.view` permission.",
            "in": "query",
            "name": "user_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Look up another user's stakeholder cards instead of your own. When omitted (or equal to the caller's id) returns the current user \u2014 same as the no-arg behaviour. When set to another user's id, requires the `stakeholders.view` permission.",
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List My Stakeholder Cards",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/resolve-refs": {
      "post": {
        "description": "Resolve a batch of human-readable card references (`name` or\n`parent_path/name`) to UUIDs in one round-trip.\n\nUsed by the spreadsheet importer's validation pass to surface\nambiguous or missing references **before** anything is written. Each\nref carries the originating `row` + `column` so the importer can\npin the result to the cell that produced it.\n\nReturns one result per ref with status `resolved`, `ambiguous`, or\n`missing`. Ambiguous results include up to a handful of candidate\npaths so the UI can render a useful disambiguation hint.",
        "operationId": "resolve_card_refs_api_v1_cards_resolve_refs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardRefResolveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardRefResolveResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolve Card Refs",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}": {
      "delete": {
        "description": "Permanently delete a card plus optional descendants and related peer cards.\n\nMirrors `archive_card`'s body shape and rules. The primary is always deleted;\ndescendants are deleted leaves-first to satisfy the self-FK on `parent_id`.\nRelated cards are processed single-hop only.\n\nReturns 409 if the primary has direct children and `child_strategy` is None.",
        "operationId": "delete_card_api_v1_cards__card_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardDeleteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardDeleteResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Card",
        "tags": [
          "cards"
        ]
      },
      "get": {
        "operationId": "get_card_api_v1_cards__card_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Card",
        "tags": [
          "cards"
        ]
      },
      "patch": {
        "operationId": "update_card_api_v1_cards__card_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Card",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/approval-status": {
      "post": {
        "operationId": "update_approval_status_api_v1_cards__card_id__approval_status_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": true,
            "schema": {
              "pattern": "^(approve|reject|reset)$",
              "title": "Action",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Approval Status",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/archive": {
      "post": {
        "description": "Archive a card (soft delete) plus optional descendants and related peer cards.\n\nBody shape:\n  - `child_strategy`: `cascade` | `disconnect` | `reparent` (required if the\n    primary card has direct children \u2014 otherwise 409).\n  - `related_card_ids`: peer cards (capped at 200) to also archive in the\n    same operation. Single-hop only \u2014 the related cards' own peer relations\n    are NOT recursed.\n  - `cascade_all_related`: bulk-mode shortcut that resolves all direct\n    relations of the primary on the server side.\n\nPermission check runs against every affected card; first denial aborts.",
        "operationId": "archive_card_api_v1_cards__card_id__archive_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardArchiveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardArchiveResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Archive Card",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/archive-impact": {
      "get": {
        "description": "Pre-flight payload for the archive/delete dialog.\n\nReturns the direct children, the grandparent (if any), and every peer card\nlinked via a `relations` row. Hidden card-types are filtered out, mirroring\nthe relations list endpoint at `/api/v1/relations`.",
        "operationId": "get_archive_impact_api_v1_cards__card_id__archive_impact_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchiveImpactResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Archive Impact",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/comments": {
      "get": {
        "operationId": "list_comments_api_v1_cards__card_id__comments_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Comments",
        "tags": [
          "comments"
        ]
      },
      "post": {
        "operationId": "create_comment_api_v1_cards__card_id__comments_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Comment",
        "tags": [
          "comments"
        ]
      }
    },
    "/api/v1/cards/{card_id}/compliance-findings": {
      "get": {
        "description": "All compliance findings scoped to a single card.\n\nOrdered by severity then regulation/article. Used by the Compliance\ntab on the Card Detail page (mirrors ``GET /cards/{id}/risks``).",
        "operationId": "list_card_compliance_findings_api_v1_cards__card_id__compliance_findings_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "include_auto_resolved",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Auto Resolved",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ComplianceFindingOut"
                  },
                  "title": "Response List Card Compliance Findings Api V1 Cards  Card Id  Compliance Findings Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Card Compliance Findings",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/cards/{card_id}/documents": {
      "get": {
        "operationId": "list_documents_api_v1_cards__card_id__documents_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Documents",
        "tags": [
          "documents"
        ]
      },
      "post": {
        "operationId": "create_document_api_v1_cards__card_id__documents_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Document",
        "tags": [
          "documents"
        ]
      }
    },
    "/api/v1/cards/{card_id}/file-attachments": {
      "get": {
        "operationId": "list_file_attachments_api_v1_cards__card_id__file_attachments_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List File Attachments",
        "tags": [
          "file-attachments"
        ]
      },
      "post": {
        "operationId": "upload_file_attachment_api_v1_cards__card_id__file_attachments_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_upload_file_attachment_api_v1_cards__card_id__file_attachments_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Upload File Attachment",
        "tags": [
          "file-attachments"
        ]
      }
    },
    "/api/v1/cards/{card_id}/hierarchy": {
      "get": {
        "description": "Return ancestors (root\u2192parent), children, and computed level.",
        "operationId": "get_hierarchy_api_v1_cards__card_id__hierarchy_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Hierarchy",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/history": {
      "get": {
        "operationId": "get_history_api_v1_cards__card_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get History",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/me/observe": {
      "delete": {
        "description": "One-click removal of self-assigned Observer role.\n\nIdempotent: returns 204 even when no row existed. Does not require the\nObserver role to still be active on the card type \u2014 stale subscriptions\nmust always be removable.",
        "operationId": "remove_me_as_observer_api_v1_cards__card_id__me_observe_delete",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Remove Me As Observer",
        "tags": [
          "stakeholders"
        ]
      },
      "get": {
        "description": "Return whether the current user is observing this card and whether the\nObserver role is available for the card type. Used by the one-click\n\"Observe this card\" toggle on the card detail page.",
        "operationId": "get_my_observe_status_api_v1_cards__card_id__me_observe_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get My Observe Status",
        "tags": [
          "stakeholders"
        ]
      },
      "post": {
        "description": "One-click self-assignment as Observer.\n\nCarve-out from the regular create-stakeholder flow: any user with view\naccess on the card can add themselves as Observer, even without the\n`stakeholders.manage` permission. The route hardcodes `role=\"observer\"`\nand `user_id=self`, so it cannot be used to promote anyone else or to\nassign any other role.\n\nIdempotent: a second call returns the existing row.",
        "operationId": "add_me_as_observer_api_v1_cards__card_id__me_observe_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Add Me As Observer",
        "tags": [
          "stakeholders"
        ]
      }
    },
    "/api/v1/cards/{card_id}/my-permissions": {
      "get": {
        "description": "Return the current user's effective permissions on a specific card.",
        "operationId": "my_permissions_api_v1_cards__card_id__my_permissions_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "My Permissions",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/relation-summary": {
      "get": {
        "description": "Per-relation-type / per-direction neighbour counts for one card.\n\nThe diagram editor renders this as LeanIX-style Show Dependency /\nDrill-Down / Roll-Up submenus where each entry shows\n\"<label> (<count>)\" and is greyed out when count is 0.\n\n\"outgoing\" rows: card is the relation source \u2014 i.e. its `relations`.\n\"incoming\" rows: card is the relation target \u2014 i.e. its `reverse_label`\nrelations.",
        "operationId": "relation_summary_api_v1_cards__card_id__relation_summary_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardRelationSummaryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Relation Summary",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/restore": {
      "post": {
        "description": "Restore an archived card back to ACTIVE status.\n\n`also_restore_card_ids` lets the caller restore passengers from the\noriginal archive batch in the same operation. Each ID is checked\nindividually; the same `card.archive` permission applies. IDs that\nresolve to non-archived cards are skipped silently. Only one\n`card.restored` event is emitted per card actually flipped.",
        "operationId": "restore_card_api_v1_cards__card_id__restore_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardRestoreRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardRestoreResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Restore Card",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/restore-impact": {
      "get": {
        "description": "List the cards that were archived together with this one and are still archived.\n\nReads the latest `card.archived.batch` audit event keyed to this card.\nCards whose `affected_*_ids` come back from that event but were already\nindividually restored are filtered out.",
        "operationId": "get_restore_impact_api_v1_cards__card_id__restore_impact_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreImpactResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Restore Impact",
        "tags": [
          "cards"
        ]
      }
    },
    "/api/v1/cards/{card_id}/risks": {
      "get": {
        "description": "All risks linked to a given card (used by the CardDetail \u2192 Risks tab).",
        "operationId": "risks_for_card_api_v1_cards__card_id__risks_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RiskOut"
                  },
                  "title": "Response Risks For Card Api V1 Cards  Card Id  Risks Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Risks For Card",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/cards/{card_id}/stakeholders": {
      "get": {
        "operationId": "list_stakeholders_api_v1_cards__card_id__stakeholders_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Stakeholders",
        "tags": [
          "stakeholders"
        ]
      },
      "post": {
        "operationId": "create_stakeholder_api_v1_cards__card_id__stakeholders_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StakeholderCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Stakeholder",
        "tags": [
          "stakeholders"
        ]
      }
    },
    "/api/v1/cards/{card_id}/tags": {
      "post": {
        "operationId": "assign_tags_api_v1_cards__card_id__tags_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "type": "string"
                },
                "title": "Tag Ids",
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Assign Tags",
        "tags": [
          "tags"
        ]
      }
    },
    "/api/v1/cards/{card_id}/tags/{tag_id}": {
      "delete": {
        "operationId": "remove_tag_api_v1_cards__card_id__tags__tag_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tag_id",
            "required": true,
            "schema": {
              "title": "Tag Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Remove Tag",
        "tags": [
          "tags"
        ]
      }
    },
    "/api/v1/cards/{card_id}/todos": {
      "get": {
        "operationId": "list_card_todos_api_v1_cards__card_id__todos_get",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Card Todos",
        "tags": [
          "todos"
        ]
      },
      "post": {
        "operationId": "create_todo_api_v1_cards__card_id__todos_post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TodoCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Todo",
        "tags": [
          "todos"
        ]
      }
    },
    "/api/v1/comments/{comment_id}": {
      "delete": {
        "operationId": "delete_comment_api_v1_comments__comment_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "comment_id",
            "required": true,
            "schema": {
              "title": "Comment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Comment",
        "tags": [
          "comments"
        ]
      },
      "patch": {
        "operationId": "update_comment_api_v1_comments__comment_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "comment_id",
            "required": true,
            "schema": {
              "title": "Comment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Comment",
        "tags": [
          "comments"
        ]
      }
    },
    "/api/v1/compliance/active-runs": {
      "get": {
        "description": "Return the latest running compliance scan.\n\nUsed by the UI on mount to reattach polling and show progress even\nafter a page refresh. ``compliance`` is ``null`` when no scan is\ncurrently running.",
        "operationId": "security_active_runs_api_v1_compliance_active_runs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/TurboLensAnalysisRunOut"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "title": "Response Security Active Runs Api V1 Compliance Active Runs Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Security Active Runs",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/compliance/compliance": {
      "get": {
        "description": "Bundle compliance findings by regulation for the GRC grid.\n\nHides ``auto_resolved`` findings by default \u2014 these are stale rows\nthat a previous re-scan no longer reported. Pass\n``include_auto_resolved=true`` to opt into seeing them (e.g. for an\naudit-trail view). Mirrors the default on\n``GET /cards/{id}/compliance-findings``.",
        "operationId": "list_compliance_api_v1_compliance_compliance_get",
        "parameters": [
          {
            "in": "query",
            "name": "regulation",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Regulation"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "include_auto_resolved",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Auto Resolved",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ComplianceBundleOut"
                  },
                  "title": "Response List Compliance Api V1 Compliance Compliance Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Compliance",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/compliance/compliance-findings": {
      "post": {
        "description": "Manually create a compliance finding (auditor / analyst entry).\n\nCreates a synthetic \"manual\" :class:`TurboLensAnalysisRun` row to\nsatisfy the FK (``run_id`` is non-null), computes ``finding_key``\nvia the same recipe as the scanner so a later re-scan can upsert\ncleanly, and persists the finding with ``decision='new'`` and\n``ai_detected=False``. Requires ``compliance.manage``.",
        "operationId": "create_compliance_finding_manual_api_v1_compliance_compliance_findings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceFindingCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComplianceFindingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Compliance Finding Manual",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/compliance/compliance-findings/bulk": {
      "delete": {
        "description": "Bulk-delete compliance findings.\n\nSame permission gate as the single-row delete (``compliance.manage``,\ngranted to admin only by default). The linked Risk on any row is NOT\ncascaded \u2014 Risks are independent records once promoted. Missing ids\nare reported in ``skipped`` with ``reason=\"not_found\"`` rather than\nfailing the whole batch.",
        "operationId": "bulk_delete_compliance_findings_api_v1_compliance_compliance_findings_bulk_delete",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceFindingBulkDelete"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComplianceFindingBulkResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Delete Compliance Findings",
        "tags": [
          "Compliance"
        ]
      },
      "patch": {
        "description": "Bulk-transition multiple compliance findings to one decision.\n\nPer-row lifecycle validation still runs \u2014 a row whose current\ndecision can't legally transition to ``body.decision`` is reported\nin ``skipped`` (with ``reason=\"illegal_transition\"``) instead of\nfailing the whole batch. Risk-tracked findings with an open Risk\nare also skipped (``reason=\"risk_tracked\"``); the linked Risk has\nto be closed first via the Risk lifecycle. Missing ids are\nskipped with ``reason=\"not_found\"``.\n\nThe reviewer (``reviewed_by`` / ``reviewed_at``) is set to the\ncaller on every successful row, mirroring the per-row endpoint.\n\nNOTE: this route MUST be declared before the single-row\n``PATCH /compliance/compliance-findings/{finding_id}`` so FastAPI\nmatches the literal ``bulk`` segment first. Don't reorder.",
        "operationId": "bulk_update_compliance_findings_api_v1_compliance_compliance_findings_bulk_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceFindingBulkDecisionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComplianceFindingBulkResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Update Compliance Findings",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/compliance/compliance-findings/{finding_id}": {
      "delete": {
        "description": "Permanently delete a compliance finding.\n\nAdmin-grade action gated by ``compliance.manage`` (granted\nonly to the admin role by default). The linked Risk (if any) is\nNOT cascaded \u2014 risks are independent records once promoted; the\nfinding's row is simply removed. The next compliance scan will\nre-emit the finding if the LLM still reports it for the same\ncard+regulation+article+requirement.",
        "operationId": "delete_compliance_finding_api_v1_compliance_compliance_findings__finding_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Compliance Finding",
        "tags": [
          "Compliance"
        ]
      },
      "patch": {
        "description": "Transition a compliance finding's lifecycle state.\n\nAllowed transitions follow ``compliance_lifecycle_allowed`` in\n``services.compliance_scanner``. ``accepted`` requires a\n``review_note``. ``risk_tracked`` is set by\n``POST /risks/promote/compliance/{id}`` (not here) and once a\nfinding is risk-tracked, manual transitions are blocked until the\nlinked Risk closes \u2014 the Risk lifecycle drives the finding via\n``compliance_risk_sync.propagate_risk_to_findings``.",
        "operationId": "update_compliance_finding_decision_api_v1_compliance_compliance_findings__finding_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceFindingDecisionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComplianceFindingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Compliance Finding Decision",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/compliance/compliance-findings/{finding_id}/ai-verdict": {
      "post": {
        "description": "Record the user's verdict on the scanner's AI-detection claim.\n\nPersists ``hasAiFeatures`` (true / false) on the impacted card and\nadvances the finding's lifecycle to ``in_review`` with an audit\nreview note. The card must exist; landscape-scoped findings (no\n``card_id``) cannot receive a verdict.",
        "operationId": "submit_ai_verdict_api_v1_compliance_compliance_findings__finding_id__ai_verdict_post",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceFindingAiVerdict"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComplianceFindingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Submit Ai Verdict",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/compliance/compliance-scan": {
      "post": {
        "description": "Trigger the compliance (per-regulation AI gap analysis) pipeline only.",
        "operationId": "trigger_compliance_scan_api_v1_compliance_compliance_scan_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/SecurityScanRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Compliance Scan",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/compliance/overview": {
      "get": {
        "description": "KPIs for the compliance scanner dashboard.",
        "operationId": "security_overview_api_v1_compliance_overview_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityOverviewOut"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Security Overview",
        "tags": [
          "Compliance"
        ]
      }
    },
    "/api/v1/diagrams": {
      "get": {
        "operationId": "list_diagrams_api_v1_diagrams_get",
        "parameters": [
          {
            "in": "query",
            "name": "card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Diagrams",
        "tags": [
          "diagrams"
        ]
      },
      "post": {
        "operationId": "create_diagram_api_v1_diagrams_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DiagramCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Diagram",
        "tags": [
          "diagrams"
        ]
      }
    },
    "/api/v1/diagrams/{diagram_id}": {
      "delete": {
        "operationId": "delete_diagram_api_v1_diagrams__diagram_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "diagram_id",
            "required": true,
            "schema": {
              "title": "Diagram Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Diagram",
        "tags": [
          "diagrams"
        ]
      },
      "get": {
        "operationId": "get_diagram_api_v1_diagrams__diagram_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "diagram_id",
            "required": true,
            "schema": {
              "title": "Diagram Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Diagram",
        "tags": [
          "diagrams"
        ]
      },
      "patch": {
        "operationId": "update_diagram_api_v1_diagrams__diagram_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "diagram_id",
            "required": true,
            "schema": {
              "title": "Diagram Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DiagramUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Diagram",
        "tags": [
          "diagrams"
        ]
      }
    },
    "/api/v1/diagrams/{diagram_id}/cards": {
      "post": {
        "description": "Link a card to a diagram.",
        "operationId": "link_card_to_diagram_api_v1_diagrams__diagram_id__cards_post",
        "parameters": [
          {
            "in": "path",
            "name": "diagram_id",
            "required": true,
            "schema": {
              "title": "Diagram Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "title": "Body",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Link Card To Diagram",
        "tags": [
          "diagrams"
        ]
      }
    },
    "/api/v1/diagrams/{diagram_id}/cards/{card_id}": {
      "delete": {
        "description": "Unlink a card from a diagram.",
        "operationId": "unlink_card_from_diagram_api_v1_diagrams__diagram_id__cards__card_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "diagram_id",
            "required": true,
            "schema": {
              "title": "Diagram Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Unlink Card From Diagram",
        "tags": [
          "diagrams"
        ]
      }
    },
    "/api/v1/documents/import": {
      "post": {
        "operationId": "import_documents_api_v1_documents_import_post",
        "parameters": [
          {
            "description": "When the document is large enough to require multiple LLM calls, the first request returns requires_confirmation=true without calling the model. Re-issue with confirm_chunks=true to proceed.",
            "in": "query",
            "name": "confirm_chunks",
            "required": false,
            "schema": {
              "default": false,
              "description": "When the document is large enough to require multiple LLM calls, the first request returns requires_confirmation=true without calling the model. Re-issue with confirm_chunks=true to proceed.",
              "title": "Confirm Chunks",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_import_documents_api_v1_documents_import_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Import Documents",
        "tags": [
          "documents"
        ]
      }
    },
    "/api/v1/documents/{doc_id}": {
      "delete": {
        "operationId": "delete_document_api_v1_documents__doc_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "doc_id",
            "required": true,
            "schema": {
              "title": "Doc Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Document",
        "tags": [
          "documents"
        ]
      }
    },
    "/api/v1/eol/mass-link": {
      "post": {
        "description": "Bulk-link cards to EOL products/cycles.\n\nExpects a list of: [{card_id, eol_product, eol_cycle}].\nFor ITComponent type, lifecycle dates are synced from EOL data.",
        "operationId": "mass_eol_link_api_v1_eol_mass_link_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "title": "Links",
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mass Eol Link",
        "tags": [
          "End of Life"
        ]
      }
    },
    "/api/v1/eol/mass-search": {
      "post": {
        "description": "Mass-search EOL products for all cards of a given type.\n\nFinds fuzzy matches on endoflife.date for each card name.\nOnly returns cards that have potential matches.",
        "operationId": "mass_eol_search_api_v1_eol_mass_search_post",
        "parameters": [
          {
            "description": "Card type to search (Application or ITComponent)",
            "in": "query",
            "name": "type_key",
            "required": true,
            "schema": {
              "description": "Card type to search (Application or ITComponent)",
              "title": "Type Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MassEolResult"
                  },
                  "title": "Response Mass Eol Search Api V1 Eol Mass Search Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mass Eol Search",
        "tags": [
          "End of Life"
        ]
      }
    },
    "/api/v1/eol/products": {
      "get": {
        "description": "Return the list of all products tracked by endoflife.date.\n\nAn optional *search* query filters the list client-side (the upstream API\nis purely static JSON and does not support server-side filtering).",
        "operationId": "list_products_api_v1_eol_products_get",
        "parameters": [
          {
            "description": "Filter product names (case-insensitive substring match)",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "default": "",
              "description": "Filter product names (case-insensitive substring match)",
              "title": "Search",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EolProduct"
                  },
                  "title": "Response List Products Api V1 Eol Products Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Products",
        "tags": [
          "End of Life"
        ]
      }
    },
    "/api/v1/eol/products/fuzzy": {
      "get": {
        "description": "Fuzzy-search products on endoflife.date.\n\nReturns products ranked by fuzzy match score. Handles common\nmismatches like \"SAP HANA\" \u2192 \"sap-hana\", \"Node.js\" \u2192 \"nodejs\", etc.",
        "operationId": "fuzzy_search_products_api_v1_eol_products_fuzzy_get",
        "parameters": [
          {
            "description": "Fuzzy search query",
            "in": "query",
            "name": "search",
            "required": true,
            "schema": {
              "description": "Fuzzy search query",
              "minLength": 2,
              "title": "Search",
              "type": "string"
            }
          },
          {
            "description": "Max results",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 10,
              "description": "Max results",
              "maximum": 50,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EolProductMatch"
                  },
                  "title": "Response Fuzzy Search Products Api V1 Eol Products Fuzzy Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Fuzzy Search Products",
        "tags": [
          "End of Life"
        ]
      }
    },
    "/api/v1/eol/products/{product}": {
      "get": {
        "description": "Return all release cycles for a given product.",
        "operationId": "get_product_cycles_api_v1_eol_products__product__get",
        "parameters": [
          {
            "in": "path",
            "name": "product",
            "required": true,
            "schema": {
              "title": "Product",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EolCycle"
                  },
                  "title": "Response Get Product Cycles Api V1 Eol Products  Product  Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Product Cycles",
        "tags": [
          "End of Life"
        ]
      }
    },
    "/api/v1/events": {
      "get": {
        "operationId": "list_events_api_v1_events_get",
        "parameters": [
          {
            "in": "query",
            "name": "card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Id"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Events",
        "tags": [
          "events"
        ]
      }
    },
    "/api/v1/events/my-cards": {
      "get": {
        "description": "Recent events on cards the current user is a stakeholder on or has favorited.\n\nUsed by the Dashboard \u2192 My Workspace tab. The shape mirrors\n``/reports/dashboard``'s ``recent_events`` so the frontend can reuse\nthe existing ``RecentActivity`` component verbatim.",
        "operationId": "list_my_card_events_api_v1_events_my_cards_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 50,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List My Card Events",
        "tags": [
          "events"
        ]
      }
    },
    "/api/v1/events/stream": {
      "get": {
        "description": "SSE endpoint. Accepts token via query parameter or httpOnly cookie.",
        "operationId": "event_stream_api_v1_events_stream_get",
        "parameters": [
          {
            "in": "query",
            "name": "token",
            "required": false,
            "schema": {
              "default": "",
              "title": "Token",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Event Stream",
        "tags": [
          "events"
        ]
      }
    },
    "/api/v1/favorites": {
      "get": {
        "description": "List current user's favorite cards.",
        "operationId": "list_favorites_api_v1_favorites_get",
        "parameters": [
          {
            "description": "Filter by card type key",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by card type key",
              "title": "Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Favorites",
        "tags": [
          "favorites"
        ]
      }
    },
    "/api/v1/favorites/{card_id}": {
      "delete": {
        "description": "Remove a card from favorites.",
        "operationId": "remove_favorite_api_v1_favorites__card_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Remove Favorite",
        "tags": [
          "favorites"
        ]
      },
      "post": {
        "description": "Add a card to favorites. Idempotent \u2014 returns 200 if already favorited.",
        "operationId": "add_favorite_api_v1_favorites__card_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Add Favorite",
        "tags": [
          "favorites"
        ]
      }
    },
    "/api/v1/file-attachments/{attachment_id}": {
      "delete": {
        "operationId": "delete_file_attachment_api_v1_file_attachments__attachment_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "attachment_id",
            "required": true,
            "schema": {
              "title": "Attachment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete File Attachment",
        "tags": [
          "file-attachments"
        ]
      }
    },
    "/api/v1/file-attachments/{attachment_id}/download": {
      "get": {
        "operationId": "download_file_attachment_api_v1_file_attachments__attachment_id__download_get",
        "parameters": [
          {
            "in": "path",
            "name": "attachment_id",
            "required": true,
            "schema": {
              "title": "Attachment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Download File Attachment",
        "tags": [
          "file-attachments"
        ]
      }
    },
    "/api/v1/metamodel/compliance-regulations": {
      "get": {
        "description": "List compliance regulations, ordered by sort_order.\n\nAuthenticated read so the TurboLens Security tab can fetch the list\neven for users without admin rights. Write operations remain gated\nbehind ``admin.metamodel``.",
        "operationId": "list_compliance_regulations_api_v1_metamodel_compliance_regulations_get",
        "parameters": [
          {
            "in": "query",
            "name": "enabled_only",
            "required": false,
            "schema": {
              "default": false,
              "title": "Enabled Only",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Compliance Regulations",
        "tags": [
          "metamodel"
        ]
      },
      "post": {
        "description": "Create a new compliance regulation (admin only).",
        "operationId": "create_compliance_regulation_api_v1_metamodel_compliance_regulations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceRegulationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Compliance Regulation",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/compliance-regulations/{regulation_id}": {
      "delete": {
        "description": "Delete a compliance regulation (admin only).\n\nBuilt-in regulations are protected \u2014 they can be disabled but not\nhard-deleted, mirroring the built-in CardType pattern.",
        "operationId": "delete_compliance_regulation_api_v1_metamodel_compliance_regulations__regulation_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "regulation_id",
            "required": true,
            "schema": {
              "title": "Regulation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Compliance Regulation",
        "tags": [
          "metamodel"
        ]
      },
      "patch": {
        "description": "Update a compliance regulation (admin only).\n\nThe ``key`` is immutable. ``built_in`` regulations can be edited and\ndisabled but never deleted.",
        "operationId": "update_compliance_regulation_api_v1_metamodel_compliance_regulations__regulation_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "regulation_id",
            "required": true,
            "schema": {
              "title": "Regulation Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceRegulationUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Compliance Regulation",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/principles": {
      "get": {
        "description": "List all EA principles ordered by sort_order.",
        "operationId": "list_principles_api_v1_metamodel_principles_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Principles",
        "tags": [
          "metamodel"
        ]
      },
      "post": {
        "description": "Create a new EA principle (admin only).",
        "operationId": "create_principle_api_v1_metamodel_principles_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrincipleCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Principle",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/principles/{principle_id}": {
      "delete": {
        "description": "Delete an EA principle (admin only).",
        "operationId": "delete_principle_api_v1_metamodel_principles__principle_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "principle_id",
            "required": true,
            "schema": {
              "title": "Principle Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Principle",
        "tags": [
          "metamodel"
        ]
      },
      "patch": {
        "description": "Update an EA principle (admin only).",
        "operationId": "update_principle_api_v1_metamodel_principles__principle_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "principle_id",
            "required": true,
            "schema": {
              "title": "Principle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrincipleUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Principle",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/relation-types": {
      "get": {
        "operationId": "list_relation_types_api_v1_metamodel_relation_types_get",
        "parameters": [
          {
            "description": "Filter relations connected to this type",
            "in": "query",
            "name": "type_key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter relations connected to this type",
              "title": "Type Key"
            }
          },
          {
            "in": "query",
            "name": "include_hidden",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Hidden",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Relation Types",
        "tags": [
          "metamodel"
        ]
      },
      "post": {
        "operationId": "create_relation_type_api_v1_metamodel_relation_types_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "title": "Body",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Relation Type",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/relation-types/{key}": {
      "delete": {
        "operationId": "delete_relation_type_api_v1_metamodel_relation_types__key__delete",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          },
          {
            "description": "Force-delete even with existing instances",
            "in": "query",
            "name": "force",
            "required": false,
            "schema": {
              "default": false,
              "description": "Force-delete even with existing instances",
              "title": "Force",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Relation Type",
        "tags": [
          "metamodel"
        ]
      },
      "get": {
        "operationId": "get_relation_type_api_v1_metamodel_relation_types__key__get",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Relation Type",
        "tags": [
          "metamodel"
        ]
      },
      "patch": {
        "operationId": "update_relation_type_api_v1_metamodel_relation_types__key__patch",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "title": "Body",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Relation Type",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/relation-types/{key}/instance-count": {
      "get": {
        "description": "Return the number of relation instances using this relation type.",
        "operationId": "get_relation_type_instance_count_api_v1_metamodel_relation_types__key__instance_count_get",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Relation Type Instance Count",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/relation-types/{key}/restore": {
      "post": {
        "description": "Restore a soft-deleted (hidden) built-in relation type.",
        "operationId": "restore_relation_type_api_v1_metamodel_relation_types__key__restore_post",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Restore Relation Type",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/types": {
      "get": {
        "operationId": "list_types_api_v1_metamodel_types_get",
        "parameters": [
          {
            "in": "query",
            "name": "include_hidden",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Hidden",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Types",
        "tags": [
          "metamodel"
        ]
      },
      "post": {
        "operationId": "create_type_api_v1_metamodel_types_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "title": "Body",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Type",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/types/{key}": {
      "delete": {
        "operationId": "delete_type_api_v1_metamodel_types__key__delete",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Type",
        "tags": [
          "metamodel"
        ]
      },
      "get": {
        "operationId": "get_type_api_v1_metamodel_types__key__get",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Type",
        "tags": [
          "metamodel"
        ]
      },
      "patch": {
        "operationId": "update_type_api_v1_metamodel_types__key__patch",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "title": "Body",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Type",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/types/{key}/field-usage": {
      "get": {
        "description": "Return how many active cards have a non-null value for a given field.",
        "operationId": "get_field_usage_api_v1_metamodel_types__key__field_usage_get",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          },
          {
            "description": "The field key to check",
            "in": "query",
            "name": "field_key",
            "required": true,
            "schema": {
              "description": "The field key to check",
              "title": "Field Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Field Usage",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/types/{key}/option-usage": {
      "get": {
        "description": "Return how many active cards use a specific option value.",
        "operationId": "get_option_usage_api_v1_metamodel_types__key__option_usage_get",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          },
          {
            "description": "The field key",
            "in": "query",
            "name": "field_key",
            "required": true,
            "schema": {
              "description": "The field key",
              "title": "Field Key",
              "type": "string"
            }
          },
          {
            "description": "The option key to check",
            "in": "query",
            "name": "option_key",
            "required": true,
            "schema": {
              "description": "The option key to check",
              "title": "Option Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Option Usage",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/types/{key}/section-usage": {
      "get": {
        "description": "Return how many active cards have data for any field in a section.",
        "operationId": "get_section_usage_api_v1_metamodel_types__key__section_usage_get",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          },
          {
            "description": "Comma-separated field keys in the section",
            "in": "query",
            "name": "field_keys",
            "required": true,
            "schema": {
              "description": "Comma-separated field keys in the section",
              "title": "Field Keys",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Section Usage",
        "tags": [
          "metamodel"
        ]
      }
    },
    "/api/v1/metamodel/types/{type_key}/stakeholder-roles": {
      "get": {
        "description": "List stakeholder roles for a card type.",
        "operationId": "list_stakeholder_roles_api_v1_metamodel_types__type_key__stakeholder_roles_get",
        "parameters": [
          {
            "in": "path",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "include_archived",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Archived",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Stakeholder Roles",
        "tags": [
          "stakeholder-roles"
        ]
      },
      "post": {
        "operationId": "create_stakeholder_role_api_v1_metamodel_types__type_key__stakeholder_roles_post",
        "parameters": [
          {
            "in": "path",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StakeholderRoleCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Stakeholder Role",
        "tags": [
          "stakeholder-roles"
        ]
      }
    },
    "/api/v1/metamodel/types/{type_key}/stakeholder-roles/{role_key}": {
      "get": {
        "description": "Get a single stakeholder role with permissions.",
        "operationId": "get_stakeholder_role_api_v1_metamodel_types__type_key__stakeholder_roles__role_key__get",
        "parameters": [
          {
            "in": "path",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_key",
            "required": true,
            "schema": {
              "title": "Role Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Stakeholder Role",
        "tags": [
          "stakeholder-roles"
        ]
      },
      "patch": {
        "operationId": "update_stakeholder_role_api_v1_metamodel_types__type_key__stakeholder_roles__role_key__patch",
        "parameters": [
          {
            "in": "path",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_key",
            "required": true,
            "schema": {
              "title": "Role Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StakeholderRoleUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Stakeholder Role",
        "tags": [
          "stakeholder-roles"
        ]
      }
    },
    "/api/v1/metamodel/types/{type_key}/stakeholder-roles/{role_key}/archive": {
      "post": {
        "operationId": "archive_stakeholder_role_api_v1_metamodel_types__type_key__stakeholder_roles__role_key__archive_post",
        "parameters": [
          {
            "in": "path",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_key",
            "required": true,
            "schema": {
              "title": "Role Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Archive Stakeholder Role",
        "tags": [
          "stakeholder-roles"
        ]
      }
    },
    "/api/v1/metamodel/types/{type_key}/stakeholder-roles/{role_key}/restore": {
      "post": {
        "operationId": "restore_stakeholder_role_api_v1_metamodel_types__type_key__stakeholder_roles__role_key__restore_post",
        "parameters": [
          {
            "in": "path",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_key",
            "required": true,
            "schema": {
              "title": "Role Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Restore Stakeholder Role",
        "tags": [
          "stakeholder-roles"
        ]
      }
    },
    "/api/v1/migration": {
      "get": {
        "operationId": "list_migrations_api_v1_migration_get",
        "parameters": [
          {
            "in": "query",
            "name": "source_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Source Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MigrationOut"
                  },
                  "title": "Response List Migrations Api V1 Migration Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Migrations",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/migration/sources": {
      "get": {
        "description": "Return every registered source adapter so the picker can render them.",
        "operationId": "list_sources_api_v1_migration_sources_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SourceOut"
                  },
                  "title": "Response List Sources Api V1 Migration Sources Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Sources",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/migration/upload": {
      "post": {
        "operationId": "upload_snapshot_api_v1_migration_upload_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_upload_snapshot_api_v1_migration_upload_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrationOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Upload Snapshot",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/migration/{migration_id}": {
      "delete": {
        "operationId": "delete_migration_api_v1_migration__migration_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "migration_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Migration Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Migration",
        "tags": [
          "Migration"
        ]
      },
      "get": {
        "operationId": "get_migration_api_v1_migration__migration_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "migration_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Migration Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrationOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Migration",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/migration/{migration_id}/apply": {
      "post": {
        "operationId": "apply_migration_endpoint_api_v1_migration__migration_id__apply_post",
        "parameters": [
          {
            "in": "path",
            "name": "migration_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Migration Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrationOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Apply Migration Endpoint",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/migration/{migration_id}/errors.csv": {
      "get": {
        "description": "CSV report of every staged row in `error` status for this migration.",
        "operationId": "download_error_report_api_v1_migration__migration_id__errors_csv_get",
        "parameters": [
          {
            "in": "path",
            "name": "migration_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Migration Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Download Error Report",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/migration/{migration_id}/field-mappings": {
      "get": {
        "description": "Return source fields per type alongside the candidate TEA targets.\n\nDrives the **Map fields** section of the migration detail dialog.\nAvailable once the migration is in ``parsed`` / ``previewed`` /\n``applied`` / ``failed`` state \u2014 earlier states have no parsed\nfields yet.",
        "operationId": "get_field_mappings_api_v1_migration__migration_id__field_mappings_get",
        "parameters": [
          {
            "in": "path",
            "name": "migration_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Migration Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldMappingOptions"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Field Mappings",
        "tags": [
          "Migration"
        ]
      },
      "put": {
        "description": "Persist the admin's mapping choices.\n\nThe payload is a nested dict\n``{<source_native_type>: {<source_field_key>: <tea_field_key>}}``.\nEmpty string values clear a mapping; the literal ``\"__skip__\"``\nmeans \"do not import this field at all\".",
        "operationId": "update_field_mappings_api_v1_migration__migration_id__field_mappings_put",
        "parameters": [
          {
            "in": "path",
            "name": "migration_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Migration Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FieldMappingUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrationOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Field Mappings",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/migration/{migration_id}/preview": {
      "get": {
        "operationId": "preview_migration_api_v1_migration__migration_id__preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "migration_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Migration Id",
              "type": "string"
            }
          },
          {
            "description": "card / relation / tag / ...",
            "in": "query",
            "name": "entity_kind",
            "required": false,
            "schema": {
              "default": "card",
              "description": "card / relation / tag / ...",
              "title": "Entity Kind",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "card_type_key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Type Key"
            }
          },
          {
            "description": "filter by action: create/update/skip/conflict",
            "in": "query",
            "name": "action",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "filter by action: create/update/skip/conflict",
              "title": "Action"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 10000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreviewPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Preview Migration",
        "tags": [
          "Migration"
        ]
      }
    },
    "/api/v1/mitigation-tasks/{task_id}": {
      "delete": {
        "operationId": "delete_mitigation_task_api_v1_mitigation_tasks__task_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "boolean"
                  },
                  "title": "Response Delete Mitigation Task Api V1 Mitigation Tasks  Task Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Mitigation Task",
        "tags": [
          "Risks"
        ]
      },
      "patch": {
        "operationId": "update_mitigation_task_api_v1_mitigation_tasks__task_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MitigationTaskUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MitigationTaskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Mitigation Task",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/mitigation-tasks/{task_id}/occurrences": {
      "get": {
        "operationId": "list_task_occurrences_api_v1_mitigation_tasks__task_id__occurrences_get",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MitigationTaskOccurrenceOut"
                  },
                  "title": "Response List Task Occurrences Api V1 Mitigation Tasks  Task Id  Occurrences Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Task Occurrences",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/mitigation-tasks/{task_id}/occurrences/{occurrence_id}/complete": {
      "post": {
        "operationId": "complete_task_occurrence_api_v1_mitigation_tasks__task_id__occurrences__occurrence_id__complete_post",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "occurrence_id",
            "required": true,
            "schema": {
              "title": "Occurrence Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/OccurrenceCompleteRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MitigationTaskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Complete Task Occurrence",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/mitigation-tasks/{task_id}/occurrences/{occurrence_id}/promote": {
      "post": {
        "description": "Manually promote a ``scheduled`` occurrence to ``open`` immediately.\n\nMirrors what the daily background loop will do automatically when\nthe lead window opens \u2014 but lets a ``risks.manage`` holder pull a\ncycle forward (e.g. to run an access review early).\n\nIdempotent: promoting an already-open occurrence is a 200 no-op.\nPromoting a terminal occurrence (done / skipped) returns 409 since\nthose are immutable per the audit contract.",
        "operationId": "promote_task_occurrence_api_v1_mitigation_tasks__task_id__occurrences__occurrence_id__promote_post",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "occurrence_id",
            "required": true,
            "schema": {
              "title": "Occurrence Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MitigationTaskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Promote Task Occurrence",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/mitigation-tasks/{task_id}/occurrences/{occurrence_id}/skip": {
      "post": {
        "operationId": "skip_task_occurrence_api_v1_mitigation_tasks__task_id__occurrences__occurrence_id__skip_post",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "occurrence_id",
            "required": true,
            "schema": {
              "title": "Occurrence Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/OccurrenceCompleteRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MitigationTaskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Skip Task Occurrence",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/mutation-batches": {
      "get": {
        "description": "List mutation batches with filtering + pagination.\n\nReturns a ``{items, total, page, page_size}`` envelope (mirrors the\nrest of the read endpoints, e.g. ``GET /cards``). The audit-log UI\nuses the ``total`` to drive AG Grid's pagination footer; the\nbackground purge keeps ``mutation_batches`` bounded by\n``MUTATION_BATCH_RETENTION_DAYS`` so this never has to scan an\nunbounded table.",
        "operationId": "list_batches_api_v1_mutation_batches_get",
        "parameters": [
          {
            "in": "query",
            "name": "actor_user_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Actor User Id"
            }
          },
          {
            "in": "query",
            "name": "tool_name",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tool Name"
            }
          },
          {
            "in": "query",
            "name": "origin",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Origin"
            }
          },
          {
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since"
            }
          },
          {
            "in": "query",
            "name": "until",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Until"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationBatchListPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Batches",
        "tags": [
          "mutation-batches"
        ]
      },
      "post": {
        "description": "Open a mutation batch. Returns the batch id and, when the row\ncount exceeds the confirmation threshold on a dry-run, a one-shot\n``confirm_token`` the commit call must echo back.",
        "operationId": "open_batch_api_v1_mutation_batches_post",
        "parameters": [
          {
            "description": "Number of rows the wrapper intends to write",
            "in": "query",
            "name": "row_count",
            "required": false,
            "schema": {
              "default": 0,
              "description": "Number of rows the wrapper intends to write",
              "minimum": 0,
              "title": "Row Count",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MutationBatchOpen"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationBatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Open Batch",
        "tags": [
          "mutation-batches"
        ]
      }
    },
    "/api/v1/mutation-batches/{batch_id}": {
      "get": {
        "operationId": "get_batch_meta_api_v1_mutation_batches__batch_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Batch Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationBatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Batch Meta",
        "tags": [
          "mutation-batches"
        ]
      }
    },
    "/api/v1/mutation-batches/{batch_id}/commit": {
      "post": {
        "operationId": "close_batch_api_v1_mutation_batches__batch_id__commit_post",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Batch Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MutationBatchCommit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationBatchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Close Batch",
        "tags": [
          "mutation-batches"
        ]
      }
    },
    "/api/v1/mutation-batches/{batch_id}/events": {
      "get": {
        "operationId": "get_batch_history_api_v1_mutation_batches__batch_id__events_get",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Batch Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationBatchHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Batch History",
        "tags": [
          "mutation-batches"
        ]
      }
    },
    "/api/v1/mutation-batches/{batch_id}/rollback": {
      "post": {
        "description": "Reverse the writes performed under a mutation batch.\n\nPermission rules: the batch owner can roll back their own batch\nwithout ``admin.events``; reverting another user's batch needs\n``admin.events``. ``force=True`` requires ``admin.events``\nregardless, since it accepts overwriting later writes by other\nusers.",
        "operationId": "rollback_api_v1_mutation_batches__batch_id__rollback_post",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Batch Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RollbackBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rollback",
        "tags": [
          "mutation-batches"
        ]
      }
    },
    "/api/v1/notifications": {
      "get": {
        "description": "List notifications for the current user.",
        "operationId": "list_notifications_api_v1_notifications_get",
        "parameters": [
          {
            "in": "query",
            "name": "is_read",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Is Read"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Notifications",
        "tags": [
          "notifications"
        ]
      }
    },
    "/api/v1/notifications/badge-counts": {
      "get": {
        "description": "Return counts for nav-bar badge dots: open todos and pending surveys.",
        "operationId": "badge_counts_api_v1_notifications_badge_counts_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Badge Counts",
        "tags": [
          "notifications"
        ]
      }
    },
    "/api/v1/notifications/mark-all-read": {
      "post": {
        "operationId": "mark_all_read_api_v1_notifications_mark_all_read_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Mark All Read",
        "tags": [
          "notifications"
        ]
      }
    },
    "/api/v1/notifications/unread-count": {
      "get": {
        "operationId": "unread_count_api_v1_notifications_unread_count_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Unread Count",
        "tags": [
          "notifications"
        ]
      }
    },
    "/api/v1/notifications/{notification_id}/read": {
      "patch": {
        "operationId": "mark_read_api_v1_notifications__notification_id__read_patch",
        "parameters": [
          {
            "in": "path",
            "name": "notification_id",
            "required": true,
            "schema": {
              "title": "Notification Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Mark Read",
        "tags": [
          "notifications"
        ]
      }
    },
    "/api/v1/ppm/budgets/{budget_id}": {
      "delete": {
        "operationId": "delete_budget_line_api_v1_ppm_budgets__budget_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "budget_id",
            "required": true,
            "schema": {
              "title": "Budget Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Budget Line",
        "tags": [
          "ppm"
        ]
      },
      "patch": {
        "operationId": "update_budget_line_api_v1_ppm_budgets__budget_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "budget_id",
            "required": true,
            "schema": {
              "title": "Budget Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmBudgetLineUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmBudgetLineOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Budget Line",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/costs/{cost_id}": {
      "delete": {
        "operationId": "delete_cost_line_api_v1_ppm_costs__cost_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "cost_id",
            "required": true,
            "schema": {
              "title": "Cost Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Cost Line",
        "tags": [
          "ppm"
        ]
      },
      "patch": {
        "operationId": "update_cost_line_api_v1_ppm_costs__cost_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "cost_id",
            "required": true,
            "schema": {
              "title": "Cost Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmCostLineUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmCostLineOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Cost Line",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/dependencies/{dep_id}": {
      "delete": {
        "operationId": "delete_dependency_api_v1_ppm_dependencies__dep_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "dep_id",
            "required": true,
            "schema": {
              "title": "Dep Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Dependency",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/budgets": {
      "get": {
        "operationId": "list_budget_lines_api_v1_ppm_initiatives__initiative_id__budgets_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmBudgetLineOut"
                  },
                  "title": "Response List Budget Lines Api V1 Ppm Initiatives  Initiative Id  Budgets Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Budget Lines",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_budget_line_api_v1_ppm_initiatives__initiative_id__budgets_post",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmBudgetLineCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmBudgetLineOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Budget Line",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/completion": {
      "get": {
        "description": "Return overall completion % for an initiative (average of root WBS items).",
        "operationId": "get_initiative_completion_api_v1_ppm_initiatives__initiative_id__completion_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Initiative Completion",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/costs": {
      "get": {
        "operationId": "list_cost_lines_api_v1_ppm_initiatives__initiative_id__costs_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmCostLineOut"
                  },
                  "title": "Response List Cost Lines Api V1 Ppm Initiatives  Initiative Id  Costs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Cost Lines",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_cost_line_api_v1_ppm_initiatives__initiative_id__costs_post",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmCostLineCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmCostLineOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Cost Line",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/dependencies": {
      "get": {
        "operationId": "list_dependencies_api_v1_ppm_initiatives__initiative_id__dependencies_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmDependencyOut"
                  },
                  "title": "Response List Dependencies Api V1 Ppm Initiatives  Initiative Id  Dependencies Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Dependencies",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_dependency_api_v1_ppm_initiatives__initiative_id__dependencies_post",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmDependencyCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmDependencyOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Dependency",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/has-costs": {
      "get": {
        "operationId": "has_costs_api_v1_ppm_initiatives__initiative_id__has_costs_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Has Costs",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/reports": {
      "get": {
        "operationId": "list_reports_api_v1_ppm_initiatives__initiative_id__reports_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmStatusReportOut"
                  },
                  "title": "Response List Reports Api V1 Ppm Initiatives  Initiative Id  Reports Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Reports",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_report_api_v1_ppm_initiatives__initiative_id__reports_post",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmStatusReportCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmStatusReportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Report",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/risks": {
      "get": {
        "operationId": "list_risks_api_v1_ppm_initiatives__initiative_id__risks_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmRiskOut"
                  },
                  "title": "Response List Risks Api V1 Ppm Initiatives  Initiative Id  Risks Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Risks",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_risk_api_v1_ppm_initiatives__initiative_id__risks_post",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmRiskCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmRiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Risk",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/tasks": {
      "get": {
        "operationId": "list_tasks_api_v1_ppm_initiatives__initiative_id__tasks_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmTaskOut"
                  },
                  "title": "Response List Tasks Api V1 Ppm Initiatives  Initiative Id  Tasks Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Tasks",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_task_api_v1_ppm_initiatives__initiative_id__tasks_post",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmTaskCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmTaskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Task",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/initiatives/{initiative_id}/wbs": {
      "get": {
        "operationId": "list_wbs_api_v1_ppm_initiatives__initiative_id__wbs_get",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmWbsOut"
                  },
                  "title": "Response List Wbs Api V1 Ppm Initiatives  Initiative Id  Wbs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Wbs",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_wbs_api_v1_ppm_initiatives__initiative_id__wbs_post",
        "parameters": [
          {
            "in": "path",
            "name": "initiative_id",
            "required": true,
            "schema": {
              "title": "Initiative Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmWbsCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmWbsOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Wbs",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/reports/{report_id}": {
      "delete": {
        "operationId": "delete_report_api_v1_ppm_reports__report_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Report",
        "tags": [
          "ppm"
        ]
      },
      "patch": {
        "operationId": "update_report_api_v1_ppm_reports__report_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmStatusReportUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmStatusReportOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Report",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/risks/{risk_id}": {
      "delete": {
        "operationId": "delete_risk_api_v1_ppm_risks__risk_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Risk",
        "tags": [
          "ppm"
        ]
      },
      "patch": {
        "operationId": "update_risk_api_v1_ppm_risks__risk_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmRiskUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmRiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Risk",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/task-comments/{comment_id}": {
      "delete": {
        "operationId": "delete_task_comment_api_v1_ppm_task_comments__comment_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "comment_id",
            "required": true,
            "schema": {
              "title": "Comment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Task Comment",
        "tags": [
          "ppm"
        ]
      },
      "patch": {
        "operationId": "update_task_comment_api_v1_ppm_task_comments__comment_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "comment_id",
            "required": true,
            "schema": {
              "title": "Comment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmTaskCommentUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmTaskCommentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Task Comment",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/tasks/{task_id}": {
      "delete": {
        "operationId": "delete_task_api_v1_ppm_tasks__task_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Task",
        "tags": [
          "ppm"
        ]
      },
      "patch": {
        "operationId": "update_task_api_v1_ppm_tasks__task_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmTaskUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmTaskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Task",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/tasks/{task_id}/comments": {
      "get": {
        "operationId": "list_task_comments_api_v1_ppm_tasks__task_id__comments_get",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmTaskCommentOut"
                  },
                  "title": "Response List Task Comments Api V1 Ppm Tasks  Task Id  Comments Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Task Comments",
        "tags": [
          "ppm"
        ]
      },
      "post": {
        "operationId": "create_task_comment_api_v1_ppm_tasks__task_id__comments_post",
        "parameters": [
          {
            "in": "path",
            "name": "task_id",
            "required": true,
            "schema": {
              "title": "Task Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmTaskCommentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmTaskCommentOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Task Comment",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/ppm/wbs/{wbs_id}": {
      "delete": {
        "operationId": "delete_wbs_api_v1_ppm_wbs__wbs_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "wbs_id",
            "required": true,
            "schema": {
              "title": "Wbs Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Wbs",
        "tags": [
          "ppm"
        ]
      },
      "patch": {
        "operationId": "update_wbs_api_v1_ppm_wbs__wbs_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "wbs_id",
            "required": true,
            "schema": {
              "title": "Wbs Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmWbsUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PpmWbsOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Wbs",
        "tags": [
          "ppm"
        ]
      }
    },
    "/api/v1/principles-catalogue": {
      "get": {
        "description": "Return the bundled principles catalogue with `existing_principle_id`\nannotations so the frontend can render a green tick on already-imported\nentries.",
        "operationId": "get_catalogue_api_v1_principles_catalogue_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Catalogue",
        "tags": [
          "principles-catalogue"
        ]
      }
    },
    "/api/v1/principles-catalogue/import": {
      "post": {
        "description": "Create EAPrinciple rows for the selected catalogue entries.\n\nIdempotent: catalogue ids that already exist as a principle (matched by\n`catalogue_id`) are skipped and reported in the `skipped` list.",
        "operationId": "import_principles_api_v1_principles_catalogue_import_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportPrinciplesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Import Principles",
        "tags": [
          "principles-catalogue"
        ]
      }
    },
    "/api/v1/process-catalogue": {
      "get": {
        "description": "Return the full active process catalogue with `existing_card_id`\nannotations.",
        "operationId": "get_catalogue_api_v1_process_catalogue_get",
        "parameters": [
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Locale"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Catalogue",
        "tags": [
          "process-catalogue"
        ]
      }
    },
    "/api/v1/process-catalogue/import": {
      "post": {
        "description": "Create BusinessProcess cards for the selected catalogue entries.\n\nIdempotent and hierarchy-preserving. Auto-creates `relProcessToBC`\nrelations to any matching BusinessCapability cards (skipped silently\nif the target capability hasn't been imported yet).",
        "operationId": "import_processes_api_v1_process_catalogue_import_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Import Processes",
        "tags": [
          "process-catalogue"
        ]
      }
    },
    "/api/v1/process-catalogue/update-fetch": {
      "post": {
        "description": "Download the latest wheel from PyPI. Hydrates all three caches.",
        "operationId": "update_fetch_api_v1_process_catalogue_update_fetch_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Update Fetch",
        "tags": [
          "process-catalogue"
        ]
      }
    },
    "/api/v1/process-catalogue/update-status": {
      "get": {
        "description": "Compare the bundled/cached process catalogue against PyPI.",
        "operationId": "update_status_api_v1_process_catalogue_update_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Update Status",
        "tags": [
          "process-catalogue"
        ]
      }
    },
    "/api/v1/relations": {
      "get": {
        "operationId": "list_relations_api_v1_relations_get",
        "parameters": [
          {
            "in": "query",
            "name": "card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Id"
            }
          },
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RelationResponse"
                  },
                  "title": "Response List Relations Api V1 Relations Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Relations",
        "tags": [
          "relations"
        ]
      },
      "post": {
        "operationId": "create_relation_api_v1_relations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Relation",
        "tags": [
          "relations"
        ]
      }
    },
    "/api/v1/relations/bulk": {
      "post": {
        "description": "Batched upsert/delete for relations. Used by the spreadsheet importer\nto apply both inline `rel:<key>` columns and the explicit `Relations`\nsheet in one round-trip.\n\nEach operation independently succeeds or fails; failed rows do not\nroll back successful ones unless every row fails. Source and target\nmay be referenced by UUID (when the importer has just created the card)\nor by `(type, parent_path, name)` for human-readable round-trips.\n\nPermission: `relations.manage`.",
        "operationId": "bulk_relations_api_v1_relations_bulk_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationBulkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelationBulkResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Relations",
        "tags": [
          "relations"
        ]
      }
    },
    "/api/v1/relations/{rel_id}": {
      "delete": {
        "operationId": "delete_relation_api_v1_relations__rel_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "rel_id",
            "required": true,
            "schema": {
              "title": "Rel Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Relation",
        "tags": [
          "relations"
        ]
      },
      "patch": {
        "operationId": "update_relation_api_v1_relations__rel_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "rel_id",
            "required": true,
            "schema": {
              "title": "Rel Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelationUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Relation",
        "tags": [
          "relations"
        ]
      }
    },
    "/api/v1/reports/admin-dashboard": {
      "get": {
        "description": "System-wide governance and adoption metrics for the Dashboard \u2192 Admin tab.\n\nGated on `admin.users` so it lines up with the existing admin nav. Avoids\nduplicating the Data Quality report \u2014 focuses on stakeholder coverage,\nuser adoption, todo backlog, and approval pipeline health.",
        "operationId": "admin_dashboard_summary_api_v1_reports_admin_dashboard_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Admin Dashboard Summary",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/app-portfolio": {
      "get": {
        "description": "Portfolio report: all cards of the requested type with their relations\nfor flexible client-side grouping by any attribute or related card type.\n\nDefaults to ``type=Application`` so the original Application Portfolio\nreport keeps working without changes. The Flexible Portfolio report passes\nother card type keys (BusinessCapability, Initiative, ITComponent, ...).",
        "operationId": "app_portfolio_api_v1_reports_app_portfolio_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "default": "Application",
              "title": "Type",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "App Portfolio",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/capability-heatmap": {
      "get": {
        "description": "Capability tree colored by a chosen metric.",
        "operationId": "capability_heatmap_api_v1_reports_bpm_capability_heatmap_get",
        "parameters": [
          {
            "description": "Metric: process_count, maturity, strategicImportance",
            "in": "query",
            "name": "metric",
            "required": false,
            "schema": {
              "default": "process_count",
              "description": "Metric: process_count, maturity, strategicImportance",
              "title": "Metric",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Capability Heatmap",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/capability-process-matrix": {
      "get": {
        "description": "Capability \u00d7 Process cross-reference grid.",
        "operationId": "capability_process_matrix_api_v1_reports_bpm_capability_process_matrix_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Capability Process Matrix",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/dashboard": {
      "get": {
        "description": "BPM KPIs: counts, maturity distribution, automation levels, risk.",
        "operationId": "bpm_dashboard_api_v1_reports_bpm_dashboard_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Bpm Dashboard",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/element-application-map": {
      "get": {
        "description": "Which BPMN elements use which applications \u2014 grouped by application.",
        "operationId": "element_application_map_api_v1_reports_bpm_element_application_map_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Element Application Map",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/process-application-matrix": {
      "get": {
        "description": "Process \u00d7 Application cross-reference grid (process-level + element-level links).",
        "operationId": "process_application_matrix_api_v1_reports_bpm_process_application_matrix_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Process Application Matrix",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/process-dependencies": {
      "get": {
        "description": "Dependency graph data: nodes + edges for force-directed visualization.",
        "operationId": "process_dependencies_api_v1_reports_bpm_process_dependencies_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Process Dependencies",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/process-map": {
      "get": {
        "description": "Process landscape map: hierarchy + related apps, data objects, orgs, contexts.",
        "operationId": "process_map_api_v1_reports_bpm_process_map_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Process Map",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/bpm/value-stream-matrix": {
      "get": {
        "description": "Value-stream \u00d7 Organization matrix with processes at intersections.\n\nOnly shows BusinessContext items with subtype 'valueStream' as columns.\nIncludes related apps and parent_id for nested process display.",
        "operationId": "value_stream_matrix_api_v1_reports_bpm_value_stream_matrix_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Value Stream Matrix",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/capability-heatmap": {
      "get": {
        "description": "Business capability heatmap data with hierarchy.",
        "operationId": "capability_heatmap_api_v1_reports_capability_heatmap_get",
        "parameters": [
          {
            "in": "query",
            "name": "metric",
            "required": false,
            "schema": {
              "default": "app_count",
              "title": "Metric",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Capability Heatmap",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/cost": {
      "get": {
        "description": "Cost aggregation report.",
        "operationId": "cost_report_api_v1_reports_cost_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "default": "Application",
              "title": "Type",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cost Report",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/cost-treemap": {
      "get": {
        "description": "Cost treemap: items with cost, optionally grouped by a related type.\n\nWhen ``aggregate`` is non-empty, each entry is a ``\"<typeKey>:<costFieldKey>\"``\npair identifying a cost field on a related card type. The endpoint sums that\nfield across each primary card's related cards (relations resolved\nbidirectionally, parallel relations de-duped) and adds the per-pair totals.\nBecause every pair targets a different card type **or** a different cost field\non the same type, no related card contributes more than once to a given\nprimary card's roll-up. This lets a type that has no cost field of its own\n(e.g. Provider) display costs sourced from related Applications, IT\nComponents, etc., even all of them at once.\n\nWhen ``parent_card_id`` is set, the primary card set is restricted to cards\nthat have at least one relation (in either direction) to that parent. This\npowers the treemap drill-down \u2014 clicking a parent rectangle re-queries with\nthe related type as ``type`` and the parent's id as ``parent_card_id``.",
        "operationId": "cost_treemap_api_v1_reports_cost_treemap_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "default": "Application",
              "title": "Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cost_field",
            "required": false,
            "schema": {
              "default": "costTotalAnnual",
              "title": "Cost Field",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Group By"
            }
          },
          {
            "in": "query",
            "name": "aggregate",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Aggregate"
            }
          },
          {
            "in": "query",
            "name": "parent_card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Parent Card Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cost Treemap",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/dashboard": {
      "get": {
        "operationId": "dashboard_api_v1_reports_dashboard_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Dashboard",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/data-quality": {
      "get": {
        "description": "Data quality & completeness dashboard.",
        "operationId": "data_quality_api_v1_reports_data_quality_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Data Quality",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/dependencies": {
      "get": {
        "description": "Dependency / interface map: nodes + edges for graph rendering.",
        "operationId": "dependencies_api_v1_reports_dependencies_get",
        "parameters": [
          {
            "in": "query",
            "name": "center_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Center Id"
            }
          },
          {
            "in": "query",
            "name": "depth",
            "required": false,
            "schema": {
              "default": 2,
              "maximum": 3,
              "minimum": 1,
              "title": "Depth",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Dependencies",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/eol": {
      "get": {
        "description": "End-of-Life risk & impact report.\n\nReturns all Applications and IT Components with linked EOL data\n(from endoflife.date API) *or* manually maintained lifecycle dates,\nenriched with live cycle information and impact mapping\n(IT Component \u2192 related Applications).\n\nEach item includes a ``source`` field: ``\"api\"`` for items linked\nto endoflife.date, ``\"manual\"`` for items with only a hand-entered\n``endOfLife`` lifecycle date.",
        "operationId": "eol_report_api_v1_reports_eol_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Eol Report",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/landscape": {
      "get": {
        "description": "Landscape report: cards grouped by a related type.",
        "operationId": "landscape_api_v1_reports_landscape_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "default": "Application",
              "title": "Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "default": "BusinessCapability",
              "title": "Group By",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Landscape",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/matrix": {
      "get": {
        "description": "Matrix report: cross-reference grid.",
        "operationId": "matrix_api_v1_reports_matrix_get",
        "parameters": [
          {
            "in": "query",
            "name": "row_type",
            "required": false,
            "schema": {
              "default": "Application",
              "title": "Row Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "col_type",
            "required": false,
            "schema": {
              "default": "BusinessCapability",
              "title": "Col Type",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Matrix",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/my-workspace": {
      "get": {
        "description": "Per-user counters for the Dashboard \u2192 My Workspace tab.\n\nAll counters are inherently scoped to the calling user \u2014 no permission\nkey beyond authentication is required.",
        "operationId": "my_workspace_summary_api_v1_reports_my_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "My Workspace Summary",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/portfolio": {
      "get": {
        "description": "Portfolio scatter/bubble chart data.",
        "operationId": "portfolio_api_v1_reports_portfolio_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "default": "Application",
              "title": "Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "x_axis",
            "required": false,
            "schema": {
              "default": "functionalFit",
              "title": "X Axis",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "y_axis",
            "required": false,
            "schema": {
              "default": "technicalFit",
              "title": "Y Axis",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "size_field",
            "required": false,
            "schema": {
              "default": "costTotalAnnual",
              "title": "Size Field",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "color_field",
            "required": false,
            "schema": {
              "default": "businessCriticality",
              "title": "Color Field",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Portfolio",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/ppm/dashboard": {
      "get": {
        "operationId": "ppm_dashboard_api_v1_reports_ppm_dashboard_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Ppm Dashboard",
        "tags": [
          "ppm-reports"
        ]
      }
    },
    "/api/v1/reports/ppm/gantt": {
      "get": {
        "operationId": "ppm_gantt_api_v1_reports_ppm_gantt_get",
        "parameters": [
          {
            "description": "Card type key to group by",
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Card type key to group by",
              "title": "Group By"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmGanttItem"
                  },
                  "title": "Response Ppm Gantt Api V1 Reports Ppm Gantt Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ppm Gantt",
        "tags": [
          "ppm-reports"
        ]
      }
    },
    "/api/v1/reports/ppm/group-options": {
      "get": {
        "description": "Return card types that Initiative has relation types to (for grouping dropdown).",
        "operationId": "ppm_group_options_api_v1_reports_ppm_group_options_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PpmGroupOption"
                  },
                  "title": "Response Ppm Group Options Api V1 Reports Ppm Group Options Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Ppm Group Options",
        "tags": [
          "ppm-reports"
        ]
      }
    },
    "/api/v1/reports/roadmap": {
      "get": {
        "description": "Roadmap: lifecycle timeline data.",
        "operationId": "roadmap_api_v1_reports_roadmap_get",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Roadmap",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/reports/stakeholder-directory": {
      "get": {
        "description": "Org-wide stakeholder directory keyed by card type \u2192 role \u2192 users.\n\nPowers the **Stakeholder directory** widget on the Admin tab. Returns\nthe whole (card type \u2192 role \u2192 user \u2192 cards) tree in one round-trip,\nincluding each user's cards so the widget can expand a chip and show\nthe cards inline without an extra fetch.",
        "operationId": "stakeholder_directory_api_v1_reports_stakeholder_directory_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Stakeholder Directory",
        "tags": [
          "reports"
        ]
      }
    },
    "/api/v1/risks": {
      "get": {
        "description": "Paginated, filterable risk list. ``status`` / ``category`` /\n``level`` / ``source_type`` are repeatable query params (e.g.\n``?status=identified&status=analysed``).",
        "operationId": "list_risks_api_v1_risks_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          },
          {
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Level"
            }
          },
          {
            "in": "query",
            "name": "owner_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Owner Id"
            }
          },
          {
            "in": "query",
            "name": "card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Id"
            }
          },
          {
            "in": "query",
            "name": "source_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Source Type"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "overdue",
            "required": false,
            "schema": {
              "default": false,
              "title": "Overdue",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 1000,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "default": "updated_at",
              "title": "Sort By",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_dir",
            "required": false,
            "schema": {
              "default": "desc",
              "title": "Sort Dir",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskListPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Risks",
        "tags": [
          "Risks"
        ]
      },
      "post": {
        "operationId": "create_risk_api_v1_risks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RiskCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Risk",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/risks/metrics": {
      "get": {
        "description": "KPI payload. Accepts the same filters as ``GET /risks`` so the\nmatrix + tiles follow the user's selected view.",
        "operationId": "risk_metrics_api_v1_risks_metrics_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          },
          {
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Level"
            }
          },
          {
            "in": "query",
            "name": "owner_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Owner Id"
            }
          },
          {
            "in": "query",
            "name": "card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Id"
            }
          },
          {
            "in": "query",
            "name": "source_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Source Type"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "overdue",
            "required": false,
            "schema": {
              "default": false,
              "title": "Overdue",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskMetricsOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Risk Metrics",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/risks/mitigation-tasks/export": {
      "get": {
        "description": "Flat list of every mitigation task on every risk matching the filters.\n\nMirrors the filter shape of ``GET /risks`` so the workbook export on\nthe Risk Register page can call once and produce a second sheet that\nalways matches what the user has on screen. Each task includes its\nfull occurrence history so the frontend can flatten cycles into\nspreadsheet rows.",
        "operationId": "export_mitigation_tasks_api_v1_risks_mitigation_tasks_export_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          },
          {
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Level"
            }
          },
          {
            "in": "query",
            "name": "owner_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Owner Id"
            }
          },
          {
            "in": "query",
            "name": "card_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Card Id"
            }
          },
          {
            "in": "query",
            "name": "source_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Source Type"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "overdue",
            "required": false,
            "schema": {
              "default": false,
              "title": "Overdue",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MitigationTaskOut"
                  },
                  "title": "Response Export Mitigation Tasks Api V1 Risks Mitigation Tasks Export Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Export Mitigation Tasks",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/risks/promote/compliance/{finding_id}": {
      "post": {
        "operationId": "promote_compliance_api_v1_risks_promote_compliance__finding_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RiskPromoteRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Promote Compliance",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/risks/{risk_id}": {
      "delete": {
        "operationId": "delete_risk_api_v1_risks__risk_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "boolean"
                  },
                  "title": "Response Delete Risk Api V1 Risks  Risk Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Risk",
        "tags": [
          "Risks"
        ]
      },
      "get": {
        "operationId": "get_risk_api_v1_risks__risk_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Risk",
        "tags": [
          "Risks"
        ]
      },
      "patch": {
        "operationId": "update_risk_api_v1_risks__risk_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RiskUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Risk",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/risks/{risk_id}/cards": {
      "post": {
        "operationId": "link_risk_cards_api_v1_risks__risk_id__cards_post",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RiskCardLinkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Link Risk Cards",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/risks/{risk_id}/cards/{card_id}": {
      "delete": {
        "operationId": "unlink_risk_card_api_v1_risks__risk_id__cards__card_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RiskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Unlink Risk Card",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/risks/{risk_id}/mitigation-tasks": {
      "get": {
        "operationId": "list_mitigation_tasks_api_v1_risks__risk_id__mitigation_tasks_get",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MitigationTaskOut"
                  },
                  "title": "Response List Mitigation Tasks Api V1 Risks  Risk Id  Mitigation Tasks Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Mitigation Tasks",
        "tags": [
          "Risks"
        ]
      },
      "post": {
        "operationId": "create_mitigation_task_api_v1_risks__risk_id__mitigation_tasks_post",
        "parameters": [
          {
            "in": "path",
            "name": "risk_id",
            "required": true,
            "schema": {
              "title": "Risk Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MitigationTaskCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MitigationTaskOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Mitigation Task",
        "tags": [
          "Risks"
        ]
      }
    },
    "/api/v1/roles": {
      "get": {
        "description": "List all roles. Any authenticated user can view roles.",
        "operationId": "list_roles_api_v1_roles_get",
        "parameters": [
          {
            "in": "query",
            "name": "include_archived",
            "required": false,
            "schema": {
              "default": false,
              "title": "Include Archived",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Roles",
        "tags": [
          "roles"
        ]
      },
      "post": {
        "operationId": "create_role_api_v1_roles_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Role",
        "tags": [
          "roles"
        ]
      }
    },
    "/api/v1/roles/permissions-schema": {
      "get": {
        "description": "Return the full permission key catalog with labels/descriptions.",
        "operationId": "permissions_schema_api_v1_roles_permissions_schema_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Permissions Schema",
        "tags": [
          "roles"
        ]
      }
    },
    "/api/v1/roles/{key}": {
      "get": {
        "operationId": "get_role_api_v1_roles__key__get",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Role",
        "tags": [
          "roles"
        ]
      },
      "patch": {
        "operationId": "update_role_api_v1_roles__key__patch",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Role",
        "tags": [
          "roles"
        ]
      }
    },
    "/api/v1/roles/{key}/archive": {
      "post": {
        "operationId": "archive_role_api_v1_roles__key__archive_post",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Archive Role",
        "tags": [
          "roles"
        ]
      }
    },
    "/api/v1/roles/{key}/restore": {
      "post": {
        "operationId": "restore_role_api_v1_roles__key__restore_post",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "title": "Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Restore Role",
        "tags": [
          "roles"
        ]
      }
    },
    "/api/v1/saved-reports": {
      "get": {
        "description": "List saved reports visible to the current user.",
        "operationId": "list_saved_reports_api_v1_saved_reports_get",
        "parameters": [
          {
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "default": "all",
              "pattern": "^(all|my|shared|public)$",
              "title": "Filter",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Saved Reports",
        "tags": [
          "saved-reports"
        ]
      },
      "post": {
        "operationId": "create_saved_report_api_v1_saved_reports_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavedReportCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Saved Report",
        "tags": [
          "saved-reports"
        ]
      }
    },
    "/api/v1/saved-reports/{report_id}": {
      "delete": {
        "operationId": "delete_saved_report_api_v1_saved_reports__report_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Saved Report",
        "tags": [
          "saved-reports"
        ]
      },
      "get": {
        "operationId": "get_saved_report_api_v1_saved_reports__report_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Saved Report",
        "tags": [
          "saved-reports"
        ]
      },
      "patch": {
        "operationId": "update_saved_report_api_v1_saved_reports__report_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavedReportUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Saved Report",
        "tags": [
          "saved-reports"
        ]
      }
    },
    "/api/v1/servicenow/connections": {
      "get": {
        "operationId": "list_connections_api_v1_servicenow_connections_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ConnectionOut"
                  },
                  "title": "Response List Connections Api V1 Servicenow Connections Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Connections",
        "tags": [
          "ServiceNow"
        ]
      },
      "post": {
        "operationId": "create_connection_api_v1_servicenow_connections_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Connection",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/connections/{conn_id}": {
      "delete": {
        "operationId": "delete_connection_api_v1_servicenow_connections__conn_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Conn Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Connection",
        "tags": [
          "ServiceNow"
        ]
      },
      "get": {
        "operationId": "get_connection_api_v1_servicenow_connections__conn_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Conn Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Connection",
        "tags": [
          "ServiceNow"
        ]
      },
      "patch": {
        "operationId": "update_connection_api_v1_servicenow_connections__conn_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Conn Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Connection",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/connections/{conn_id}/tables": {
      "get": {
        "operationId": "list_tables_api_v1_servicenow_connections__conn_id__tables_get",
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Conn Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "default": "",
              "maxLength": 100,
              "title": "Search",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Tables",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/connections/{conn_id}/tables/{table}/fields": {
      "get": {
        "operationId": "list_table_fields_api_v1_servicenow_connections__conn_id__tables__table__fields_get",
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Conn Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "table",
            "required": true,
            "schema": {
              "title": "Table",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Table Fields",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/connections/{conn_id}/test": {
      "post": {
        "operationId": "test_connection_api_v1_servicenow_connections__conn_id__test_post",
        "parameters": [
          {
            "in": "path",
            "name": "conn_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Conn Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Test Connection",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/mappings": {
      "get": {
        "operationId": "list_mappings_api_v1_servicenow_mappings_get",
        "parameters": [
          {
            "in": "query",
            "name": "connection_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Connection Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MappingOut"
                  },
                  "title": "Response List Mappings Api V1 Servicenow Mappings Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Mappings",
        "tags": [
          "ServiceNow"
        ]
      },
      "post": {
        "operationId": "create_mapping_api_v1_servicenow_mappings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MappingCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Mapping",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/mappings/{mapping_id}": {
      "delete": {
        "operationId": "delete_mapping_api_v1_servicenow_mappings__mapping_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "mapping_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Mapping Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Mapping",
        "tags": [
          "ServiceNow"
        ]
      },
      "get": {
        "operationId": "get_mapping_api_v1_servicenow_mappings__mapping_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "mapping_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Mapping Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Mapping",
        "tags": [
          "ServiceNow"
        ]
      },
      "patch": {
        "operationId": "update_mapping_api_v1_servicenow_mappings__mapping_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "mapping_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Mapping Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MappingUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Mapping",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/mappings/{mapping_id}/preview": {
      "post": {
        "description": "Dry-run: fetch a sample of records and show how they would be mapped.",
        "operationId": "preview_mapping_api_v1_servicenow_mappings__mapping_id__preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "mapping_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Mapping Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Preview Mapping",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/sync/pull/{mapping_id}": {
      "post": {
        "operationId": "trigger_pull_sync_api_v1_servicenow_sync_pull__mapping_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "mapping_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Mapping Id",
              "type": "string"
            }
          },
          {
            "description": "Auto-apply staged changes",
            "in": "query",
            "name": "auto_apply",
            "required": false,
            "schema": {
              "default": true,
              "description": "Auto-apply staged changes",
              "title": "Auto Apply",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SyncRunOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Pull Sync",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/sync/push/{mapping_id}": {
      "post": {
        "operationId": "trigger_push_sync_api_v1_servicenow_sync_push__mapping_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "mapping_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Mapping Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SyncRunOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Push Sync",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/sync/runs": {
      "get": {
        "operationId": "list_sync_runs_api_v1_servicenow_sync_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "connection_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Connection Id"
            }
          },
          {
            "in": "query",
            "name": "mapping_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Mapping Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SyncRunOut"
                  },
                  "title": "Response List Sync Runs Api V1 Servicenow Sync Runs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Sync Runs",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/sync/runs/{run_id}": {
      "get": {
        "operationId": "get_sync_run_api_v1_servicenow_sync_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SyncRunOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Sync Run",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/sync/runs/{run_id}/apply": {
      "post": {
        "description": "Apply all pending staged records for a sync run.",
        "operationId": "apply_staged_records_api_v1_servicenow_sync_runs__run_id__apply_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Apply Staged Records",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/servicenow/sync/runs/{run_id}/staged": {
      "get": {
        "operationId": "list_staged_records_api_v1_servicenow_sync_runs__run_id__staged_get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Action"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/app__api__v1__servicenow__StagedRecordOut"
                  },
                  "title": "Response List Staged Records Api V1 Servicenow Sync Runs  Run Id  Staged Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Staged Records",
        "tags": [
          "ServiceNow"
        ]
      }
    },
    "/api/v1/settings/ai": {
      "get": {
        "description": "Admin endpoint \u2014 get AI configuration.",
        "operationId": "get_ai_settings_api_v1_settings_ai_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Ai Settings",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 update AI configuration.",
        "operationId": "update_ai_settings_api_v1_settings_ai_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AiSettingsPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Ai Settings",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/ai/test": {
      "post": {
        "description": "Admin endpoint \u2014 test connectivity to the AI provider.",
        "operationId": "test_ai_connection_api_v1_settings_ai_test_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Test Ai Connection",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/app-title": {
      "get": {
        "description": "Public endpoint \u2014 returns the configured app title.\n\nPublic because the login page and browser tab title need it before the\nuser authenticates. Falls back to the default brand name when unset.",
        "operationId": "get_app_title_api_v1_settings_app_title_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get App Title",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 set the app title shown in navbar, tab, and emails.",
        "operationId": "update_app_title_api_v1_settings_app_title_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppTitlePayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update App Title",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/bootstrap": {
      "get": {
        "description": "Public endpoint \u2014 returns all small boot-time settings in one round-trip.\n\nThe frontend calls this once on app boot to prime its module-level caches\nso each individual settings hook (currency, date format, BPM/PPM/TurboLens\ntoggles, locales, etc.) doesn't have to fire its own GET. Replaces what\nused to be ~8 sequential round-trips with one query against the singleton\nAppSettings row. Per-endpoint reads remain available for selective\nrefresh after admin edits.",
        "operationId": "get_bootstrap_api_v1_settings_bootstrap_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Bootstrap",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/bpm-enabled": {
      "get": {
        "description": "Public endpoint \u2014 returns whether the BPM module is enabled.",
        "operationId": "get_bpm_enabled_api_v1_settings_bpm_enabled_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Bpm Enabled",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 enable or disable the BPM module.\n\nAlso toggles is_hidden on the BusinessProcess card type and all\nrelation types that touch BusinessProcess, so that cards, relations,\nand reports are properly hidden/shown across the entire platform.",
        "operationId": "update_bpm_enabled_api_v1_settings_bpm_enabled_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BpmEnabledPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Bpm Enabled",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/bpm-row-order": {
      "get": {
        "description": "Public endpoint \u2014 returns the configured BPM process type row order.",
        "operationId": "get_bpm_row_order_api_v1_settings_bpm_row_order_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Bpm Row Order",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 set BPM process type row display order.",
        "operationId": "update_bpm_row_order_api_v1_settings_bpm_row_order_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BpmRowOrderPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Bpm Row Order",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/currency": {
      "get": {
        "description": "Public endpoint \u2014 returns the configured display currency.",
        "operationId": "get_currency_api_v1_settings_currency_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Currency",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 set the display currency for all cost fields.",
        "operationId": "update_currency_api_v1_settings_currency_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurrencyPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Currency",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/date-format": {
      "get": {
        "description": "Public endpoint \u2014 returns the configured date display format.",
        "operationId": "get_date_format_api_v1_settings_date_format_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Date Format",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 set the display format for all dates in the UI.",
        "operationId": "update_date_format_api_v1_settings_date_format_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DateFormatPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Date Format",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/email": {
      "get": {
        "operationId": "get_email_settings_api_v1_settings_email_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Email Settings",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "operationId": "update_email_settings_api_v1_settings_email_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailSettingsPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Email Settings",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/email/test": {
      "post": {
        "description": "Send a test email to the admin's own address using current SMTP settings.",
        "operationId": "test_email_settings_api_v1_settings_email_test_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Test Email Settings",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/enabled-locales": {
      "get": {
        "description": "Public endpoint \u2014 returns which locales are enabled (defaults to all).",
        "operationId": "get_enabled_locales_api_v1_settings_enabled_locales_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Enabled Locales",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 set which locales are available to users.",
        "operationId": "update_enabled_locales_api_v1_settings_enabled_locales_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnabledLocalesPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Enabled Locales",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/favicon": {
      "delete": {
        "description": "Admin endpoint \u2014 reset to the default favicon.",
        "operationId": "reset_favicon_api_v1_settings_favicon_delete",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Reset Favicon",
        "tags": [
          "settings"
        ]
      },
      "get": {
        "description": "Public endpoint \u2014 returns the current favicon.\n\nPriority: custom favicon \u2192 default favicon.",
        "operationId": "get_favicon_api_v1_settings_favicon_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Favicon",
        "tags": [
          "settings"
        ]
      },
      "post": {
        "description": "Admin endpoint \u2014 upload a custom favicon.",
        "operationId": "upload_favicon_api_v1_settings_favicon_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_upload_favicon_api_v1_settings_favicon_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Upload Favicon",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/favicon/info": {
      "get": {
        "description": "Admin endpoint \u2014 returns metadata about the current favicon.",
        "operationId": "get_favicon_info_api_v1_settings_favicon_info_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Favicon Info",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/fiscal-year-start": {
      "get": {
        "description": "Public endpoint \u2014 returns the fiscal year start month (1-12).",
        "operationId": "get_fiscal_year_start_api_v1_settings_fiscal_year_start_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Fiscal Year Start",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 set the fiscal year start month (1-12).",
        "operationId": "update_fiscal_year_start_api_v1_settings_fiscal_year_start_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FiscalYearStartPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Fiscal Year Start",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/grc-enabled": {
      "get": {
        "description": "Public endpoint \u2014 returns whether the GRC module is enabled.",
        "operationId": "get_grc_enabled_api_v1_settings_grc_enabled_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Grc Enabled",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 enable or disable the GRC module (Governance, Risk, Compliance).",
        "operationId": "update_grc_enabled_api_v1_settings_grc_enabled_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GrcEnabledPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Grc Enabled",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/login-branding": {
      "get": {
        "description": "Admin endpoint \u2014 read the customizable login-page strings.\n\nPublic consumers (the login page itself) read these via\n``GET /settings/bootstrap`` instead, where they're returned alongside\nother public boot-time settings.",
        "operationId": "get_login_branding_api_v1_settings_login_branding_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Login Branding",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 update login-page tagline / help text / contact link.",
        "operationId": "update_login_branding_api_v1_settings_login_branding_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginBrandingPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Login Branding",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/logo": {
      "delete": {
        "description": "Admin endpoint \u2014 reset to the default logo.",
        "operationId": "reset_logo_api_v1_settings_logo_delete",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Reset Logo",
        "tags": [
          "settings"
        ]
      },
      "get": {
        "description": "Public endpoint \u2014 returns the current logo (custom or default).",
        "operationId": "get_logo_api_v1_settings_logo_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Logo",
        "tags": [
          "settings"
        ]
      },
      "post": {
        "description": "Admin endpoint \u2014 upload a custom logo.",
        "operationId": "upload_logo_api_v1_settings_logo_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_upload_logo_api_v1_settings_logo_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Upload Logo",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/logo/info": {
      "get": {
        "description": "Admin endpoint \u2014 returns metadata about the current logo.",
        "operationId": "get_logo_info_api_v1_settings_logo_info_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Logo Info",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/mcp": {
      "get": {
        "description": "Admin endpoint \u2014 get MCP integration configuration.",
        "operationId": "get_mcp_settings_api_v1_settings_mcp_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Mcp Settings",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 enable or disable MCP integration.",
        "operationId": "update_mcp_settings_api_v1_settings_mcp_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/McpSettingsPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Mcp Settings",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/mcp/status": {
      "get": {
        "description": "Public endpoint \u2014 returns MCP + SSO availability (no secrets exposed).\nUsed by the MCP server to check if it should operate.",
        "operationId": "get_mcp_status_api_v1_settings_mcp_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Mcp Status",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/ppm-enabled": {
      "get": {
        "description": "Public endpoint \u2014 returns whether the PPM module is enabled.",
        "operationId": "get_ppm_enabled_api_v1_settings_ppm_enabled_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Ppm Enabled",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 enable or disable the PPM module.",
        "operationId": "update_ppm_enabled_api_v1_settings_ppm_enabled_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PpmEnabledPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Ppm Enabled",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/principles-display": {
      "get": {
        "description": "Public endpoint \u2014 whether the EA Principles tab is shown on EA Delivery.",
        "operationId": "get_principles_display_api_v1_settings_principles_display_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Principles Display",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 toggle EA Principles tab visibility on EA Delivery.",
        "operationId": "update_principles_display_api_v1_settings_principles_display_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "title": "Body",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Principles Display",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/registration": {
      "get": {
        "description": "Public endpoint \u2014 returns whether self-registration is enabled.",
        "operationId": "get_registration_settings_api_v1_settings_registration_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Registration Settings",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 enable or disable self-registration.",
        "operationId": "update_registration_settings_api_v1_settings_registration_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrationPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Registration Settings",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/sso": {
      "get": {
        "description": "Admin endpoint \u2014 get SSO configuration.",
        "operationId": "get_sso_settings_api_v1_settings_sso_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Sso Settings",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 update SSO configuration.",
        "operationId": "update_sso_settings_api_v1_settings_sso_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SsoSettingsPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Sso Settings",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/sso/status": {
      "get": {
        "description": "Public endpoint \u2014 returns whether SSO is enabled (no secrets exposed).",
        "operationId": "get_sso_status_api_v1_settings_sso_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Sso Status",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/settings/turbolens-enabled": {
      "get": {
        "description": "Public endpoint \u2014 returns whether the TurboLens module is enabled.\n\nDefaults to True so existing installations keep their previous behaviour;\nadministrators can opt out via the admin UI.",
        "operationId": "get_turbolens_enabled_api_v1_settings_turbolens_enabled_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Turbolens Enabled",
        "tags": [
          "settings"
        ]
      },
      "patch": {
        "description": "Admin endpoint \u2014 enable or disable the TurboLens module.",
        "operationId": "update_turbolens_enabled_api_v1_settings_turbolens_enabled_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensEnabledPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Turbolens Enabled",
        "tags": [
          "settings"
        ]
      }
    },
    "/api/v1/soaw": {
      "get": {
        "operationId": "list_soaws_api_v1_soaw_get",
        "parameters": [
          {
            "in": "query",
            "name": "initiative_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Initiative Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Soaws",
        "tags": [
          "soaw"
        ]
      },
      "post": {
        "operationId": "create_soaw_api_v1_soaw_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SoAWCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Soaw",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/soaw/{soaw_id}": {
      "delete": {
        "operationId": "delete_soaw_api_v1_soaw__soaw_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Soaw",
        "tags": [
          "soaw"
        ]
      },
      "get": {
        "operationId": "get_soaw_api_v1_soaw__soaw_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Soaw",
        "tags": [
          "soaw"
        ]
      },
      "patch": {
        "operationId": "update_soaw_api_v1_soaw__soaw_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SoAWUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Soaw",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/soaw/{soaw_id}/recall-signatures": {
      "post": {
        "description": "Recall all pending signature requests. Only the creator or an admin\ncan recall. Resets status to draft and clears signatories.",
        "operationId": "recall_signatures_api_v1_soaw__soaw_id__recall_signatures_post",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Recall Signatures",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/soaw/{soaw_id}/reject": {
      "post": {
        "description": "Reject the SoAW as a signatory. Resets to draft, increments revision\nnumber, clears all signatories, and notifies the creator.",
        "operationId": "reject_soaw_api_v1_soaw__soaw_id__reject_post",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reject Soaw",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/soaw/{soaw_id}/request-signatures": {
      "post": {
        "description": "Request signatures from specified users. Creates todos and notifications.",
        "operationId": "request_signatures_api_v1_soaw__soaw_id__request_signatures_post",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignatureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Request Signatures",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/soaw/{soaw_id}/revise": {
      "post": {
        "description": "Create a new revision of a signed SoAW. Copies the document content\ninto a new draft linked to the same initiative, with an incremented\nrevision number and parent_id pointing to the original.",
        "operationId": "revise_soaw_api_v1_soaw__soaw_id__revise_post",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Revise Soaw",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/soaw/{soaw_id}/revisions": {
      "get": {
        "description": "List all revisions in the chain for this SoAW (traverses parent_id).",
        "operationId": "list_revisions_api_v1_soaw__soaw_id__revisions_get",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Revisions",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/soaw/{soaw_id}/sign": {
      "post": {
        "description": "Sign the SoAW as the current user. When all signatories have signed,\nthe document status changes to 'signed' and becomes readonly.",
        "operationId": "sign_soaw_api_v1_soaw__soaw_id__sign_post",
        "parameters": [
          {
            "in": "path",
            "name": "soaw_id",
            "required": true,
            "schema": {
              "title": "Soaw Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sign Soaw",
        "tags": [
          "soaw"
        ]
      }
    },
    "/api/v1/stakeholder-roles": {
      "get": {
        "description": "Return role definitions from stakeholder_role_definitions table.",
        "operationId": "list_roles_api_v1_stakeholder_roles_get",
        "parameters": [
          {
            "description": "Filter roles by card type",
            "in": "query",
            "name": "type_key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter roles by card type",
              "title": "Type Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Roles",
        "tags": [
          "stakeholders"
        ]
      }
    },
    "/api/v1/stakeholder-roles/permissions-schema": {
      "get": {
        "description": "Return the full card-level permission key catalog.",
        "operationId": "card_permissions_schema_api_v1_stakeholder_roles_permissions_schema_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Card Permissions Schema",
        "tags": [
          "stakeholder-roles"
        ]
      }
    },
    "/api/v1/stakeholders/{stakeholder_id}": {
      "delete": {
        "operationId": "delete_stakeholder_api_v1_stakeholders__stakeholder_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "stakeholder_id",
            "required": true,
            "schema": {
              "title": "Stakeholder Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Stakeholder",
        "tags": [
          "stakeholders"
        ]
      },
      "patch": {
        "operationId": "update_stakeholder_api_v1_stakeholders__stakeholder_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "stakeholder_id",
            "required": true,
            "schema": {
              "title": "Stakeholder Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StakeholderCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Stakeholder",
        "tags": [
          "stakeholders"
        ]
      }
    },
    "/api/v1/surveys": {
      "get": {
        "description": "List all surveys (admin only).",
        "operationId": "list_surveys_api_v1_surveys_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Surveys",
        "tags": [
          "surveys"
        ]
      },
      "post": {
        "description": "Create a new draft survey (admin only).",
        "operationId": "create_survey_api_v1_surveys_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SurveyCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Survey",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/my": {
      "get": {
        "description": "List active surveys that the current user needs to respond to.",
        "operationId": "my_surveys_api_v1_surveys_my_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "My Surveys",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/{survey_id}": {
      "delete": {
        "description": "Delete a draft survey (admin only).",
        "operationId": "delete_survey_api_v1_surveys__survey_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Survey",
        "tags": [
          "surveys"
        ]
      },
      "get": {
        "description": "Get a single survey with stats (admin only).",
        "operationId": "get_survey_api_v1_surveys__survey_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Survey",
        "tags": [
          "surveys"
        ]
      },
      "patch": {
        "description": "Update a draft survey (admin only).",
        "operationId": "update_survey_api_v1_surveys__survey_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SurveyUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Survey",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/{survey_id}/apply": {
      "post": {
        "description": "Apply selected survey responses to cards (admin only).",
        "operationId": "apply_responses_api_v1_surveys__survey_id__apply_post",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Apply Responses",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/{survey_id}/close": {
      "post": {
        "description": "Close an active survey (admin only).",
        "operationId": "close_survey_api_v1_surveys__survey_id__close_post",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Close Survey",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/{survey_id}/preview": {
      "post": {
        "description": "Preview resolved targets before sending (admin only).",
        "operationId": "preview_survey_api_v1_surveys__survey_id__preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Preview Survey",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/{survey_id}/respond/{card_id}": {
      "get": {
        "description": "Get the response form data for a card in a survey.",
        "operationId": "get_response_form_api_v1_surveys__survey_id__respond__card_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Response Form",
        "tags": [
          "surveys"
        ]
      },
      "post": {
        "description": "Submit a survey response for a card.",
        "operationId": "submit_response_api_v1_surveys__survey_id__respond__card_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "title": "Card Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitResponse"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Submit Response",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/{survey_id}/responses": {
      "get": {
        "description": "Get all responses for a survey (admin only).",
        "operationId": "list_responses_api_v1_surveys__survey_id__responses_get",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Responses",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/surveys/{survey_id}/send": {
      "post": {
        "description": "Activate survey: resolve targets, create responses, notify.",
        "operationId": "send_survey_api_v1_surveys__survey_id__send_post",
        "parameters": [
          {
            "in": "path",
            "name": "survey_id",
            "required": true,
            "schema": {
              "title": "Survey Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Send Survey",
        "tags": [
          "surveys"
        ]
      }
    },
    "/api/v1/tag-groups": {
      "get": {
        "operationId": "list_tag_groups_api_v1_tag_groups_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Tag Groups",
        "tags": [
          "tags"
        ]
      },
      "post": {
        "operationId": "create_tag_group_api_v1_tag_groups_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagGroupCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Tag Group",
        "tags": [
          "tags"
        ]
      }
    },
    "/api/v1/tag-groups/{group_id}": {
      "delete": {
        "operationId": "delete_tag_group_api_v1_tag_groups__group_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Tag Group",
        "tags": [
          "tags"
        ]
      },
      "patch": {
        "operationId": "update_tag_group_api_v1_tag_groups__group_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagGroupUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Tag Group",
        "tags": [
          "tags"
        ]
      }
    },
    "/api/v1/tag-groups/{group_id}/tags": {
      "post": {
        "operationId": "create_tag_api_v1_tag_groups__group_id__tags_post",
        "parameters": [
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Tag",
        "tags": [
          "tags"
        ]
      }
    },
    "/api/v1/tag-groups/{group_id}/tags/{tag_id}": {
      "delete": {
        "operationId": "delete_tag_api_v1_tag_groups__group_id__tags__tag_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tag_id",
            "required": true,
            "schema": {
              "title": "Tag Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Tag",
        "tags": [
          "tags"
        ]
      },
      "patch": {
        "operationId": "update_tag_api_v1_tag_groups__group_id__tags__tag_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tag_id",
            "required": true,
            "schema": {
              "title": "Tag Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Tag",
        "tags": [
          "tags"
        ]
      }
    },
    "/api/v1/todos": {
      "get": {
        "operationId": "list_all_todos_api_v1_todos_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "assigned_to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Assigned To"
            }
          },
          {
            "in": "query",
            "name": "mine",
            "required": false,
            "schema": {
              "default": true,
              "title": "Mine",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "assigned_only",
            "required": false,
            "schema": {
              "default": false,
              "title": "Assigned Only",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "created_only",
            "required": false,
            "schema": {
              "default": false,
              "title": "Created Only",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List All Todos",
        "tags": [
          "todos"
        ]
      }
    },
    "/api/v1/todos/{todo_id}": {
      "delete": {
        "operationId": "delete_todo_api_v1_todos__todo_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "todo_id",
            "required": true,
            "schema": {
              "title": "Todo Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Todo",
        "tags": [
          "todos"
        ]
      },
      "patch": {
        "operationId": "update_todo_api_v1_todos__todo_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "todo_id",
            "required": true,
            "schema": {
              "title": "Todo Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TodoUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Todo",
        "tags": [
          "todos"
        ]
      }
    },
    "/api/v1/turbolens/analysis-runs": {
      "get": {
        "description": "List analysis runs.",
        "operationId": "get_analysis_runs_api_v1_turbolens_analysis_runs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TurboLensAnalysisRunOut"
                  },
                  "title": "Response Get Analysis Runs Api V1 Turbolens Analysis Runs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Analysis Runs",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/analysis-runs/{run_id}": {
      "get": {
        "description": "Get a specific analysis run with results.",
        "operationId": "get_analysis_run_api_v1_turbolens_analysis_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Analysis Run",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/capabilities": {
      "get": {
        "description": "Search BusinessCapability cards for architect capability selection.",
        "operationId": "architect_capabilities_api_v1_turbolens_architect_capabilities_get",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Capabilities",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/commit": {
      "post": {
        "description": "Commit an assessment: create Initiative, cards, relations, and ADR.",
        "operationId": "architect_commit_api_v1_turbolens_architect_commit_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensCommitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Commit",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/objective-dependencies": {
      "get": {
        "description": "Fetch dependency subgraph for selected Objectives (BFS depth 3).",
        "operationId": "architect_objective_dependencies_api_v1_turbolens_architect_objective_dependencies_get",
        "parameters": [
          {
            "in": "query",
            "name": "objective_ids",
            "required": false,
            "schema": {
              "default": "",
              "title": "Objective Ids",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Objective Dependencies",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/objectives": {
      "get": {
        "description": "Search Objective cards for architect objective selection.",
        "operationId": "architect_objectives_api_v1_turbolens_architect_objectives_get",
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Objectives",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/phase1": {
      "post": {
        "description": "Phase 1: business & functional clarification questions.",
        "operationId": "architect_phase1_api_v1_turbolens_architect_phase1_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensArchitectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Phase1",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/phase2": {
      "post": {
        "description": "Phase 2: technical & NFR deep-dive questions.",
        "operationId": "architect_phase2_api_v1_turbolens_architect_phase2_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensArchitectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Phase2",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/phase3": {
      "post": {
        "description": "Phase 4: capability mapping with selected option context.",
        "operationId": "architect_phase3_api_v1_turbolens_architect_phase3_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensArchitectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Phase3",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/phase3/deps": {
      "post": {
        "description": "Phase 3c: dependency analysis for selected products.",
        "operationId": "architect_phase3_deps_api_v1_turbolens_architect_phase3_deps_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensArchitectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Phase3 Deps",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/phase3/gaps": {
      "post": {
        "description": "Phase 3b: identify products needed for the business requirements.",
        "operationId": "architect_phase3_gaps_api_v1_turbolens_architect_phase3_gaps_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensArchitectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Phase3 Gaps",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/architect/phase3/options": {
      "post": {
        "description": "Phase 3a: generate solution options.",
        "operationId": "architect_phase3_options_api_v1_turbolens_architect_phase3_options_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensArchitectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Architect Phase3 Options",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/assessments": {
      "get": {
        "description": "List all architecture assessments.",
        "operationId": "list_assessments_api_v1_turbolens_assessments_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Assessments",
        "tags": [
          "TurboLens"
        ]
      },
      "post": {
        "description": "Save an architecture assessment session.",
        "operationId": "save_assessment_api_v1_turbolens_assessments_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensAssessmentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Save Assessment",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/assessments/{assessment_id}": {
      "get": {
        "description": "Get a full assessment with session data.",
        "operationId": "get_assessment_api_v1_turbolens_assessments__assessment_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Assessment",
        "tags": [
          "TurboLens"
        ]
      },
      "patch": {
        "description": "Update a saved (non-committed) assessment.",
        "operationId": "update_assessment_api_v1_turbolens_assessments__assessment_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensAssessmentUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Assessment",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/duplicates": {
      "get": {
        "description": "Get duplicate clusters.",
        "operationId": "get_duplicates_api_v1_turbolens_duplicates_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DuplicateClusterOut"
                  },
                  "title": "Response Get Duplicates Api V1 Turbolens Duplicates Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Duplicates",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/duplicates/analyse": {
      "post": {
        "description": "Trigger duplicate detection (background task).",
        "operationId": "trigger_duplicate_detection_api_v1_turbolens_duplicates_analyse_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Trigger Duplicate Detection",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/duplicates/modernizations": {
      "get": {
        "description": "Get modernization assessments.",
        "operationId": "get_modernizations_api_v1_turbolens_duplicates_modernizations_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ModernizationOut"
                  },
                  "title": "Response Get Modernizations Api V1 Turbolens Duplicates Modernizations Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Modernizations",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/duplicates/modernize": {
      "post": {
        "description": "Trigger modernization assessment for a card type.",
        "operationId": "trigger_modernization_api_v1_turbolens_duplicates_modernize_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensModernizeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Modernization",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/duplicates/{cluster_id}/status": {
      "patch": {
        "description": "Update cluster status (confirm/dismiss/investigate).",
        "operationId": "update_duplicate_status_api_v1_turbolens_duplicates__cluster_id__status_patch",
        "parameters": [
          {
            "in": "path",
            "name": "cluster_id",
            "required": true,
            "schema": {
              "title": "Cluster Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurboLensDuplicateStatusUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Duplicate Status",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/overview": {
      "get": {
        "description": "Dashboard KPIs: card counts, quality, vendor/duplicate summaries.",
        "operationId": "turbolens_overview_api_v1_turbolens_overview_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TurboLensOverviewOut"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Turbolens Overview",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/status": {
      "get": {
        "description": "Check if TurboLens AI is configured, enabled, and ready.",
        "operationId": "turbolens_status_api_v1_turbolens_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TurboLensStatusOut"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Turbolens Status",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/vendors": {
      "get": {
        "description": "Get categorised vendors.",
        "operationId": "get_vendors_api_v1_turbolens_vendors_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/VendorAnalysisOut"
                  },
                  "title": "Response Get Vendors Api V1 Turbolens Vendors Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Vendors",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/vendors/analyse": {
      "post": {
        "description": "Trigger vendor categorisation (background task).",
        "operationId": "trigger_vendor_analysis_api_v1_turbolens_vendors_analyse_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Trigger Vendor Analysis",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/vendors/hierarchy": {
      "get": {
        "description": "Get canonical vendor hierarchy tree.",
        "operationId": "get_vendor_hierarchy_api_v1_turbolens_vendors_hierarchy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/VendorHierarchyOut"
                  },
                  "title": "Response Get Vendor Hierarchy Api V1 Turbolens Vendors Hierarchy Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Vendor Hierarchy",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/turbolens/vendors/resolve": {
      "post": {
        "description": "Trigger vendor hierarchy resolution (background task).",
        "operationId": "trigger_vendor_resolution_api_v1_turbolens_vendors_resolve_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Trigger Vendor Resolution",
        "tags": [
          "TurboLens"
        ]
      }
    },
    "/api/v1/users": {
      "get": {
        "operationId": "list_users_api_v1_users_get",
        "parameters": [
          {
            "description": "Include disabled (is_active=False) users in the result. Default False so owner / assignee / stakeholder pickers don't list disabled accounts. The Users admin page passes True.",
            "in": "query",
            "name": "include_inactive",
            "required": false,
            "schema": {
              "default": false,
              "description": "Include disabled (is_active=False) users in the result. Default False so owner / assignee / stakeholder pickers don't list disabled accounts. The Users admin page passes True.",
              "title": "Include Inactive",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Users",
        "tags": [
          "users"
        ]
      },
      "post": {
        "operationId": "create_user_api_v1_users_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create User",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/bulk": {
      "patch": {
        "description": "Admin only \u2014 bulk update role and/or is_active for many users at once.\n\nOnly `role` and `is_active` are bulk-editable. Email, password, locale and\nauth_provider are per-user identity / sensitive fields and stay one-by-one.",
        "operationId": "bulk_update_users_api_v1_users_bulk_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBulkUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Update Users",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/bulk-delete": {
      "post": {
        "description": "Admin only \u2014 hard-delete many users at once.\n\nMatches the single-row constraint in the admin UI: only deactivated users\ncan be deleted. Active users in the selection are skipped and surfaced in\nthe response so the admin can deactivate them first.",
        "operationId": "bulk_delete_users_api_v1_users_bulk_delete_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBulkDelete"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Delete Users",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/invitations": {
      "get": {
        "description": "Admin only \u2014 list pending invitations.\n\n\u00abPending\u00bb means the invited user has not yet actually used the system. The\ncriterion is `users.last_login IS NULL` \u2014 an admin who has set a password\non behalf of the user (PATCH /users/{id}) hasn't *accepted* anything, so\nthe invitation stays on the list until the user signs in for the first\ntime. This is what powers the \u00abresend invite\u00bb UX (#539).",
        "operationId": "list_invitations_api_v1_users_invitations_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Invitations",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/invitations/{invitation_id}": {
      "delete": {
        "description": "Admin only \u2014 delete/revoke a pending SSO invitation.",
        "operationId": "delete_invitation_api_v1_users_invitations__invitation_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "invitation_id",
            "required": true,
            "schema": {
              "title": "Invitation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Invitation",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/invitations/{invitation_id}/resend": {
      "post": {
        "description": "Re-send the invitation email for a row in the Pending Invitations list.\n\nLooks up the matching user by email and reuses the same email shape\nas ``POST /users/{id}/resend-invitation``. Falls back to a generic\ninvite when no user row exists yet (shouldn't normally happen, but\nkeeps the action safe for SSO-only deployments).",
        "operationId": "resend_invitation_by_invitation_api_v1_users_invitations__invitation_id__resend_post",
        "parameters": [
          {
            "in": "path",
            "name": "invitation_id",
            "required": true,
            "schema": {
              "title": "Invitation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resend Invitation By Invitation",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/me/notification-preferences": {
      "get": {
        "operationId": "get_notification_preferences_api_v1_users_me_notification_preferences_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Notification Preferences",
        "tags": [
          "users"
        ]
      },
      "patch": {
        "operationId": "update_notification_preferences_api_v1_users_me_notification_preferences_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Notification Preferences",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/me/ui-preferences": {
      "get": {
        "operationId": "get_ui_preferences_api_v1_users_me_ui_preferences_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Ui Preferences",
        "tags": [
          "users"
        ]
      },
      "patch": {
        "operationId": "update_ui_preferences_api_v1_users_me_ui_preferences_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UiPreferencesUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Ui Preferences",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/users/{user_id}": {
      "delete": {
        "operationId": "delete_user_api_v1_users__user_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete User",
        "tags": [
          "users"
        ]
      },
      "get": {
        "operationId": "get_user_api_v1_users__user_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get User",
        "tags": [
          "users"
        ]
      },
      "patch": {
        "operationId": "update_user_api_v1_users__user_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update User",
        "tags": [
          "users"
        ]
      }
    },
    "/api/v1/value-stream-catalogue": {
      "get": {
        "description": "Return the full active value-stream catalogue, flattened to a\nparent-stream + child-stage tree so the existing browser UI can render\nit. Each node is annotated with `existing_card_id`.",
        "operationId": "get_catalogue_api_v1_value_stream_catalogue_get",
        "parameters": [
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Locale"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Catalogue",
        "tags": [
          "value-stream-catalogue"
        ]
      }
    },
    "/api/v1/value-stream-catalogue/import": {
      "post": {
        "description": "Create BusinessContext / valueStream cards for selected streams or\nstages. Selecting a stage automatically pulls in its parent stream so\n`parent_id` is wired correctly. Auto-creates relBizCtxToBC and\nrelProcessToBizCtx relations to any matching capability/process cards.",
        "operationId": "import_value_streams_api_v1_value_stream_catalogue_import_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Import Value Streams",
        "tags": [
          "value-stream-catalogue"
        ]
      }
    },
    "/api/v1/value-stream-catalogue/update-fetch": {
      "post": {
        "operationId": "update_fetch_api_v1_value_stream_catalogue_update_fetch_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Update Fetch",
        "tags": [
          "value-stream-catalogue"
        ]
      }
    },
    "/api/v1/value-stream-catalogue/update-status": {
      "get": {
        "operationId": "update_status_api_v1_value_stream_catalogue_update_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Update Status",
        "tags": [
          "value-stream-catalogue"
        ]
      }
    },
    "/api/v1/web-portals": {
      "get": {
        "operationId": "list_portals_api_v1_web_portals_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "List Portals",
        "tags": [
          "web-portals"
        ]
      },
      "post": {
        "operationId": "create_portal_api_v1_web_portals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebPortalCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Portal",
        "tags": [
          "web-portals"
        ]
      }
    },
    "/api/v1/web-portals/public/{slug}": {
      "get": {
        "operationId": "get_public_portal_api_v1_web_portals_public__slug__get",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "title": "Slug",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Public Portal",
        "tags": [
          "web-portals"
        ]
      }
    },
    "/api/v1/web-portals/public/{slug}/cards": {
      "get": {
        "description": "Public endpoint: returns cards for a published portal with optional filtering.",
        "operationId": "get_public_portal_cards_api_v1_web_portals_public__slug__cards_get",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "title": "Slug",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "subtype",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Subtype"
            }
          },
          {
            "in": "query",
            "name": "tag_ids",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tag Ids"
            }
          },
          {
            "in": "query",
            "name": "related_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Related Type"
            }
          },
          {
            "in": "query",
            "name": "related_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Related Id"
            }
          },
          {
            "in": "query",
            "name": "relation_filters",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Relation Filters"
            }
          },
          {
            "in": "query",
            "name": "attr_filters",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Attr Filters"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 24,
              "maximum": 100,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "default": "name",
              "title": "Sort By",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_dir",
            "required": false,
            "schema": {
              "default": "asc",
              "title": "Sort Dir",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Public Portal Cards",
        "tags": [
          "web-portals"
        ]
      }
    },
    "/api/v1/web-portals/public/{slug}/relation-options": {
      "get": {
        "description": "Return card name/id pairs for a given type, for filter dropdowns.\n\nM-7: Only returns cards that are actually related to at least one card\nvisible through the portal (matching the portal's card_type and filters).",
        "operationId": "get_public_portal_relation_options_api_v1_web_portals_public__slug__relation_options_get",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "title": "Slug",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "type_key",
            "required": true,
            "schema": {
              "title": "Type Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Public Portal Relation Options",
        "tags": [
          "web-portals"
        ]
      }
    },
    "/api/v1/web-portals/{portal_id}": {
      "delete": {
        "operationId": "delete_portal_api_v1_web_portals__portal_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "portal_id",
            "required": true,
            "schema": {
              "title": "Portal Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Portal",
        "tags": [
          "web-portals"
        ]
      },
      "get": {
        "operationId": "get_portal_api_v1_web_portals__portal_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "portal_id",
            "required": true,
            "schema": {
              "title": "Portal Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Portal",
        "tags": [
          "web-portals"
        ]
      },
      "patch": {
        "operationId": "update_portal_api_v1_web_portals__portal_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "portal_id",
            "required": true,
            "schema": {
              "title": "Portal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebPortalUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Portal",
        "tags": [
          "web-portals"
        ]
      }
    }
  }
}
