{
  "openapi": "3.0.1",
  "info": {
    "title": "EAMS / InnovAsk API Gateway",
    "version": "1.0.0",
    "description": "Unified API Gateway for external partners. Exposes a curated subset of EAMS platform endpoints under API-key authentication.\n\n**Base URL:** `https://api.innovask.com`\n\n**Authentication:** Include your API key in the `x-api-key` header on every request.\n\nContact: api-support@innovask.com"
  },
  "servers": [
    {
      "url": "https://api.innovask.com",
      "description": "Production Gateway"
    },
    {
      "url": "https://staging.api.innovask.com",
      "description": "Staging Gateway"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "API key issued through the Developer Portal. Include on every request."
      }
    },
    "schemas": {
      "Auth_AssignUserRolesDto": {
        "required": [
          "roleIds"
        ],
        "type": "object",
        "properties": {
          "roleIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "additionalProperties": false
      },
      "Auth_BulkJobDetailDto": {
        "type": "object",
        "properties": {
          "job": {
            "$ref": "#/components/schemas/Auth_BulkJobDto"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Auth_BulkRowError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "BulkJobDetailDto record."
      },
      "Auth_BulkJobDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/Auth_BulkJobType"
          },
          "status": {
            "$ref": "#/components/schemas/Auth_BulkJobStatus"
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "processed": {
            "type": "integer",
            "format": "int32"
          },
          "failed": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "downloadUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "BulkJobDto record."
      },
      "Auth_BulkJobStatus": {
        "enum": [
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "Auth_BulkJobType": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "Auth_BulkRowError": {
        "type": "object",
        "properties": {
          "row": {
            "type": "integer",
            "format": "int32"
          },
          "field": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "BulkRowError record."
      },
      "Auth_CityDropdownDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "CityDropdownDto class."
      },
      "Auth_CountryDropdownDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "flagUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "CountryDropdownDto class."
      },
      "Auth_CreateApiKeyDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rateLimit": {
            "type": "integer",
            "format": "int32"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ipWhitelist": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "CreateApiKeyDto record."
      },
      "Auth_CreateErpRoleDto": {
        "required": [
          "name",
          "nameAr"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "nameAr": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "maxLength": 1000,
            "type": "string",
            "nullable": true
          },
          "permissionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Auth_CreateOAuthClientDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "accessTokenLifetimeMin": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "CreateOAuthClientDto record."
      },
      "Auth_CreateWebhookSubscriptionDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "retryCount": {
            "type": "integer",
            "format": "int32"
          },
          "retryIntervalSec": {
            "type": "integer",
            "format": "int32"
          },
          "timeoutSec": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "CreateWebhookSubscriptionDto record."
      },
      "Auth_DsarDeleteRequestDto": {
        "type": "object",
        "properties": {
          "subjectId": {
            "type": "string",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "DsarDeleteRequestDto record."
      },
      "Auth_DsarExportRequestDto": {
        "type": "object",
        "properties": {
          "subjectId": {
            "type": "string",
            "description": "Target data subject. `null` = the caller (self-service).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "DsarExportRequestDto record."
      },
      "Auth_ErpPermissionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "module": {
            "type": "string",
            "nullable": true
          },
          "entity": {
            "type": "string",
            "nullable": true
          },
          "action": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "displayNameAr": {
            "type": "string",
            "nullable": true
          },
          "riskLevel": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Auth_ErpPermissionDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Auth_ErpPermissionDto"
            },
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "PagedResult class."
      },
      "Auth_ErpRoleDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "nameAr": {
            "type": "string",
            "nullable": true
          },
          "isSystem": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "permissionCount": {
            "type": "integer",
            "format": "int32"
          },
          "userCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Auth_ErpRoleDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Auth_ErpRoleDto"
            },
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "PagedResult class."
      },
      "Auth_LanguageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "direction": {
            "type": "string",
            "nullable": true
          },
          "flagUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "LanguageDto class."
      },
      "Auth_NationalityDropdownDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "NationalityDropdownDto class."
      },
      "Auth_OAuthTokenRequestDto": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "clientSecret": {
            "type": "string",
            "nullable": true
          },
          "grantType": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "OAuthTokenRequestDto record."
      },
      "Auth_ReplaceRolePermissionsDto": {
        "type": "object",
        "properties": {
          "permissionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Auth_StateDropdownDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "StateDropdownDto class."
      },
      "Auth_UpdateErpRoleDto": {
        "required": [
          "name",
          "nameAr"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "nameAr": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "maxLength": 1000,
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Auth_UpdateWebhookSubscriptionDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "retryCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "retryIntervalSec": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "timeoutSec": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "UpdateWebhookSubscriptionDto record."
      },
      "Auth_UsageHistoryDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "metric": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "UsageHistoryDto class."
      },
      "Auth_UsageHistoryDtoListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Auth_UsageHistoryDto"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "ApiResponse class."
      },
      "Auth_UsageMetricDto": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "nullable": true
          },
          "labelAr": {
            "type": "string",
            "nullable": true
          },
          "current": {
            "type": "integer",
            "format": "int64"
          },
          "limit": {
            "type": "integer",
            "format": "int64"
          },
          "percentage": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "UsageMetricDto class."
      },
      "Auth_UsageSummaryDto": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "planCode": {
            "type": "string",
            "nullable": true
          },
          "planNameAr": {
            "type": "string",
            "nullable": true
          },
          "metrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Auth_UsageMetricDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "UsageSummaryDto class."
      },
      "Auth_UsageSummaryDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/Auth_UsageSummaryDto"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "ApiResponse class."
      },
      "Auth_UserCreateDto": {
        "required": [
          "email",
          "fullName",
          "roles"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email"
          },
          "fullName": {
            "minLength": 2,
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false,
        "description": "UserCreateDto record."
      },
      "Auth_UserDetailDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "isLocked": {
            "type": "boolean"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastLoginAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lockedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lockReason": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rowVersion": {
            "type": "string",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "UserDetailDto record."
      },
      "Auth_UserListItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "isLocked": {
            "type": "boolean"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastLoginAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "UserListItemDto record."
      },
      "Auth_UserListItemDtoPagedResult": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Auth_UserListItemDto"
            },
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "PagedResult record."
      },
      "Auth_UserLockDto": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "minLength": 3,
            "type": "string"
          }
        },
        "additionalProperties": false,
        "description": "UserLockDto record."
      },
      "Auth_UserRoleDto": {
        "type": "object",
        "properties": {
          "erpRoleId": {
            "type": "integer",
            "format": "int32"
          },
          "roleName": {
            "type": "string",
            "nullable": true
          },
          "roleNameAr": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Auth_UserRoleDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Auth_UserRoleDto"
            },
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasPreviousPage": {
            "type": "boolean",
            "readOnly": true
          },
          "hasNextPage": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "PagedResult class."
      },
      "Auth_UserUpdateDto": {
        "required": [
          "fullName",
          "rowVersion"
        ],
        "type": "object",
        "properties": {
          "fullName": {
            "minLength": 2,
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "rowVersion": {
            "type": "string",
            "format": "byte"
          }
        },
        "additionalProperties": {}
      },
      "Cms_ContentType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "Cms_CreateContentItemDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/Cms_ContentType"
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "titleAr": {
            "type": "string",
            "nullable": true
          },
          "bodyAr": {
            "type": "string",
            "nullable": true
          },
          "slugAr": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Cms_ScheduleContentRequest": {
        "type": "object",
        "properties": {
          "scheduledPublishAtUtc": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Cms_UpdateContentItemDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "slug": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "titleAr": {
            "type": "string",
            "nullable": true
          },
          "bodyAr": {
            "type": "string",
            "nullable": true
          },
          "slugAr": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_AttemptStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32"
      },
      "Innovask_BookDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "format": "double"
          },
          "numberOfReviews": {
            "type": "integer",
            "format": "int32"
          },
          "numberOfStudents": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "level": {
            "type": "string",
            "nullable": true
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_VideoDto"
            },
            "nullable": true
          },
          "instructors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_InstructorDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_BookDetailsDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/Innovask_BookDetailsDto"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_ByteApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "integer",
            "format": "int32"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_CandidateSearchFilterDto": {
        "type": "object",
        "properties": {
          "skillCode": {
            "type": "string",
            "nullable": true
          },
          "minReadinessScore": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Innovask_CertificationExam": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "competencyIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "questionBankIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "durationMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "passingScorePct": {
            "type": "number",
            "format": "double"
          },
          "proctoringLevel": {
            "$ref": "#/components/schemas/Innovask_ProctoringLevel"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_ChapterDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "chapterName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "orderIndex": {
            "type": "integer",
            "format": "int32"
          },
          "durationInSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_VideoDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CheckinRequest": {
        "type": "object",
        "properties": {
          "selfieUrl": {
            "type": "string",
            "nullable": true
          },
          "idDocUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CourseDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "format": "double"
          },
          "numberOfReviews": {
            "type": "integer",
            "format": "int32"
          },
          "numberOfStudents": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "level": {
            "type": "string",
            "nullable": true
          },
          "hasChapters": {
            "type": "boolean"
          },
          "totalDuration": {
            "type": "integer",
            "format": "int32"
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_VideoDto"
            },
            "nullable": true
          },
          "chapters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_ChapterDto"
            },
            "nullable": true
          },
          "instructors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_InstructorDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CourseDetailsDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/Innovask_CourseDetailsDto"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateBookDto": {
        "type": "object",
        "properties": {
          "productTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "levelId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "langId": {
            "type": "integer",
            "format": "int32"
          },
          "videoIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "instructorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateChapterDto": {
        "type": "object",
        "properties": {
          "chapterName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "orderIndex": {
            "type": "integer",
            "format": "int32"
          },
          "langId": {
            "type": "integer",
            "format": "int32"
          },
          "videoIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateCourseDto": {
        "type": "object",
        "properties": {
          "productTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "levelId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "hasChapters": {
            "type": "boolean"
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "langId": {
            "type": "integer",
            "format": "int32"
          },
          "videoIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "chapters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_CreateChapterDto"
            },
            "nullable": true
          },
          "instructorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateLanguageDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "flagUrl": {
            "type": "string",
            "nullable": true
          },
          "direction": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateParagraphDto": {
        "type": "object",
        "properties": {
          "indexView": {
            "type": "integer",
            "format": "int32"
          },
          "contentType": {
            "type": "string",
            "nullable": true
          },
          "contentDetails": {
            "type": "string",
            "nullable": true
          },
          "estimatedTime": {
            "type": "integer",
            "format": "int32"
          },
          "wordCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateReadingDto": {
        "type": "object",
        "properties": {
          "productTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "levelId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "langId": {
            "type": "integer",
            "format": "int32"
          },
          "paragraphs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_CreateParagraphDto"
            },
            "nullable": true
          },
          "instructorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateStageDto": {
        "type": "object",
        "properties": {
          "stageName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "orderIndex": {
            "type": "integer",
            "format": "int32"
          },
          "langId": {
            "type": "integer",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_TrackItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_CreateTrackDto": {
        "type": "object",
        "properties": {
          "productTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "levelId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "hasStages": {
            "type": "boolean"
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "langId": {
            "type": "integer",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_TrackItemDto"
            },
            "nullable": true
          },
          "stages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_CreateStageDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_EmployerRoleCreateDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "requiredSkills": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "jobDnaProfileJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_EmployerTenantRegistrationDto": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "nullable": true
          },
          "verifiedDomain": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_InstructorDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "profilePhoto": {
            "type": "string",
            "nullable": true
          },
          "rate": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Innovask_Int32ApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "integer",
            "format": "int32"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_InviteRequest": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_MarketplaceCatalogDto": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int32"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "skillTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_MarketplaceCatalogDtoListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_MarketplaceCatalogDto"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_MoveApplicantRequestDto": {
        "type": "object",
        "properties": {
          "newStage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_ObjectApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_ParagraphDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "indexView": {
            "type": "integer",
            "format": "int32"
          },
          "contentType": {
            "type": "string",
            "nullable": true
          },
          "contentDetails": {
            "type": "string",
            "nullable": true
          },
          "estimatedTime": {
            "type": "integer",
            "format": "int32"
          },
          "wordCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Innovask_PathItemDetailsDto": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "integer",
            "format": "int32"
          },
          "itemName": {
            "type": "string",
            "nullable": true
          },
          "itemType": {
            "type": "string",
            "nullable": true
          },
          "isRequired": {
            "type": "boolean"
          },
          "orderIndex": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Innovask_ProctoringEventDto": {
        "type": "object",
        "properties": {
          "eventType": {
            "$ref": "#/components/schemas/Innovask_ProctoringEventType"
          },
          "severity": {
            "$ref": "#/components/schemas/Innovask_ProctoringSeverity"
          },
          "framePreviewBlobRef": {
            "type": "string",
            "nullable": true
          },
          "metadataJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_ProctoringEventType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "format": "int32"
      },
      "Innovask_ProctoringLevel": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "Innovask_ProctoringSeverity": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "Innovask_ProductListDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "level": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "format": "double"
          },
          "reviewsCount": {
            "type": "integer",
            "format": "int32"
          },
          "studentsCount": {
            "type": "integer",
            "format": "int32"
          },
          "coverImage": {
            "type": "string",
            "nullable": true
          },
          "instructorName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_ProductListDtoListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_ProductListDto"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_ReadingDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "format": "double"
          },
          "numberOfReviews": {
            "type": "integer",
            "format": "int32"
          },
          "numberOfStudents": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "level": {
            "type": "string",
            "nullable": true
          },
          "totalEstimatedTime": {
            "type": "integer",
            "format": "int32"
          },
          "paragraphs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_ParagraphDto"
            },
            "nullable": true
          },
          "instructors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_InstructorDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_ReadingDetailsDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/Innovask_ReadingDetailsDto"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_ReviewRequest": {
        "type": "object",
        "properties": {
          "overrideStatus": {
            "$ref": "#/components/schemas/Innovask_AttemptStatus"
          },
          "auditNote": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_StageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "stageName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "orderIndex": {
            "type": "integer",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_PathItemDetailsDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_StringApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "string",
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_TrackDetailsDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "coverPath": {
            "type": "string",
            "nullable": true
          },
          "rating": {
            "type": "number",
            "format": "double"
          },
          "numberOfReviews": {
            "type": "integer",
            "format": "int32"
          },
          "numberOfStudents": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "level": {
            "type": "string",
            "nullable": true
          },
          "hasStages": {
            "type": "boolean"
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_PathItemDetailsDto"
            },
            "nullable": true
          },
          "stages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Innovask_StageDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_TrackDetailsDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/Innovask_TrackDetailsDto"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Innovask_TrackItemDto": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "integer",
            "format": "int32"
          },
          "orderIndex": {
            "type": "integer",
            "format": "int32"
          },
          "isRequired": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Innovask_UpdateLanguageDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "flagUrl": {
            "type": "string",
            "nullable": true
          },
          "direction": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Innovask_VideoDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "durationInSecond": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "storagePath": {
            "type": "string",
            "nullable": true
          },
          "coverPhoto": {
            "type": "string",
            "nullable": true
          },
          "orderIndex": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "paths": {
    "/ba-auth/api/integrations/oauth/token": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Issue OAuth2 access token (client_credentials)",
        "operationId": "Auth_Auth.post.api_integrations_oauth_token",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_OAuthTokenRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/languages": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get Languages Dropdown",
        "description": "Returns a list of available languages for UI localization and dropdown components",
        "operationId": "Auth_Dropdowns.get.languages",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Auth_LanguageDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/nationalities": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get Nationalities Dropdown",
        "description": "Returns a list of nationalities for dropdown components",
        "operationId": "Auth_Dropdowns.get.nationalities",
        "parameters": [
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Auth_NationalityDropdownDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/countries": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get Countries Dropdown",
        "description": "Returns a list of countries for dropdown/select components",
        "operationId": "Auth_Dropdowns.get.countries",
        "parameters": [
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Auth_CountryDropdownDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/states": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get States Dropdown",
        "description": "Returns a list of states/provinces for dropdown components, filtered by country",
        "operationId": "Auth_Dropdowns.get.states",
        "parameters": [
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "countryId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Auth_StateDropdownDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/cities": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get Cities Dropdown",
        "description": "Returns a list of cities for dropdown components, filtered by state",
        "operationId": "Auth_Dropdowns.get.cities",
        "parameters": [
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "stateId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Auth_CityDropdownDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/api/integrations/api-keys": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "List API keys (no plain key returned)",
        "description": "API-key creation, revocation, and usage-log endpoints.",
        "operationId": "Auth_Integrations - API Keys.get.api_integrations_api-keys",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Create API key — plain key shown ONCE",
        "description": "API-key creation, revocation, and usage-log endpoints.",
        "operationId": "Auth_Integrations - API Keys.post.api_integrations_api-keys",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_CreateApiKeyDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/api-keys/{id}": {
      "delete": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Revoke an API key",
        "description": "API-key creation, revocation, and usage-log endpoints.",
        "operationId": "Auth_Integrations - API Keys.delete.api_integrations_api-keys_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/api-keys/{id}/usage": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get usage logs for an API key",
        "description": "API-key creation, revocation, and usage-log endpoints.",
        "operationId": "Auth_Integrations - API Keys.get.api_integrations_api-keys_ById:int_usage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/events": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "List available event types for webhook subscriptions",
        "description": "Read-only catalog of available webhook event types.",
        "operationId": "Auth_Integrations - Event Types.get.api_integrations_events",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/oauth-clients": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "List OAuth clients",
        "description": "OAuth2 client management and client-credentials token issuance.",
        "operationId": "Auth_Integrations - OAuth Clients.get.api_integrations_oauth-clients",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Create OAuth client — secret shown ONCE",
        "description": "OAuth2 client management and client-credentials token issuance.",
        "operationId": "Auth_Integrations - OAuth Clients.post.api_integrations_oauth-clients",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_CreateOAuthClientDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/oauth-clients/{id}": {
      "delete": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Revoke OAuth client",
        "description": "OAuth2 client management and client-credentials token issuance.",
        "operationId": "Auth_Integrations - OAuth Clients.delete.api_integrations_oauth-clients_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/webhooks": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "List all webhook subscriptions",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.get.api_integrations_webhooks",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Create webhook subscription",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.post.api_integrations_webhooks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_CreateWebhookSubscriptionDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/webhooks/{id}": {
      "put": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Update webhook subscription",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.put.api_integrations_webhooks_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_UpdateWebhookSubscriptionDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Soft-delete webhook subscription",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.delete.api_integrations_webhooks_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/webhooks/{id}/test": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Send test ping to webhook",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.post.api_integrations_webhooks_ById:int_test",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/webhooks/logs": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get webhook delivery logs",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.get.api_integrations_webhooks_logs",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/webhooks/logs/{id}/retry": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Manually retry a failed webhook delivery",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.post.api_integrations_webhooks_logs_ById:long_retry",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/integrations/webhooks/deliveries/{deliveryId}/replay": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "AUTH-B-017: Replay a webhook delivery (tenant-scoped, audited)",
        "description": "Webhook subscriptions, delivery logs, and manual retry.",
        "operationId": "Auth_Integrations - Webhooks.post.api_integrations_webhooks_deliveries_ByDeliveryId:long_replay",
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/v1/privacy/dsar/export": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Data Subject Access Requests (DSAR) — Egyptian PDPL + GDPR compliance.",
        "operationId": "Auth_Privacy / DSAR.post.api_v1_privacy_dsar_export",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_DsarExportRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/v1/privacy/dsar/delete": {
      "delete": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Data Subject Access Requests (DSAR) — Egyptian PDPL + GDPR compliance.",
        "operationId": "Auth_Privacy / DSAR.delete.api_v1_privacy_dsar_delete",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_DsarDeleteRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/v1/privacy/dsar/status/{requestId}": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Data Subject Access Requests (DSAR) — Egyptian PDPL + GDPR compliance.",
        "operationId": "Auth_Privacy / DSAR.get.api_v1_privacy_dsar_status_ByRequestId:guid",
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/v1/permissions": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "List ERP permissions. Paginated: default page=1, pageSize=50, max=200.",
        "description": "ERP permission catalog. Read-only for tenants.",
        "operationId": "Auth_RBAC.get.api_v1_permissions",
        "parameters": [
          {
            "name": "module",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_ErpPermissionDtoPagedResult"
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/api/v1/permissions/{id}": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "ERP permission catalog. Read-only for tenants.",
        "operationId": "Auth_RBAC.get.api_v1_permissions_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_ErpPermissionDto"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/roles": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "List ERP roles. Paginated: default page=1, pageSize=50, max=200.",
        "description": "Tenant-scoped ERP role management.",
        "operationId": "Auth_RBAC.get.api_v1_roles",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_ErpRoleDtoPagedResult"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Tenant-scoped ERP role management.",
        "operationId": "Auth_RBAC.post.api_v1_roles",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_CreateErpRoleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_ErpRoleDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "409": {
            "description": "Conflict"
          }
        }
      }
    },
    "/ba-auth/api/v1/roles/{id}": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Tenant-scoped ERP role management.",
        "operationId": "Auth_RBAC.get.api_v1_roles_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_ErpRoleDto"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "put": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Tenant-scoped ERP role management.",
        "operationId": "Auth_RBAC.put.api_v1_roles_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_UpdateErpRoleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_ErpRoleDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "delete": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Tenant-scoped ERP role management.",
        "operationId": "Auth_RBAC.delete.api_v1_roles_ById:int",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/roles/{id}/permissions": {
      "put": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Tenant-scoped ERP role management.",
        "operationId": "Auth_RBAC.put.api_v1_roles_ById:int_permissions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_ReplaceRolePermissionsDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_ErpRoleDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/{userId}/roles": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "List roles assigned to a user. Paginated: default page=1, pageSize=50, max=200.",
        "description": "Assign ERP roles to users within the tenant.",
        "operationId": "Auth_RBAC.get.api_v1_users_ByUserId:int_roles",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_UserRoleDtoPagedResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "put": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "Assign ERP roles to users within the tenant.",
        "operationId": "Auth_RBAC.put.api_v1_users_ByUserId:int_roles",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_AssignUserRolesDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/auth/token/introspect": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Introspect a token (RFC 7662)",
        "description": "RFC 7662 token introspection and RFC 7009 token revocation.",
        "operationId": "Auth_Token Management.post.api_v1_auth_token_introspect",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "required": [
                  "token"
                ],
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "token_type_hint": {
                    "type": "string"
                  }
                }
              },
              "encoding": {
                "token": {
                  "style": "form"
                },
                "token_type_hint": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/v1/auth/token/revoke": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Revoke a token (RFC 7009)",
        "description": "RFC 7662 token introspection and RFC 7009 token revocation.",
        "operationId": "Auth_Token Management.post.api_v1_auth_token_revoke",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "required": [
                  "token"
                ],
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "token_type_hint": {
                    "type": "string"
                  }
                }
              },
              "encoding": {
                "token": {
                  "style": "form"
                },
                "token_type_hint": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-auth/api/usage/current": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get current usage summary for the authenticated tenant",
        "description": "Per-tenant feature-usage tracking (seats, storage, API calls) for plan enforcement.",
        "operationId": "Auth_Usage Tracking.get.api_usage_current",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_UsageSummaryDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/api/usage/history": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "summary": "Get usage history for a specific metric (last N days)",
        "description": "Per-tenant feature-usage tracking (seats, storage, API calls) for plan enforcement.",
        "operationId": "Auth_Usage Tracking.get.api_usage_history",
        "parameters": [
          {
            "name": "metric",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "users"
            }
          },
          {
            "name": "days",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_UsageHistoryDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-auth/api/v1/users": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.get.api_v1_users",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emailVerified",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_UserListItemDtoPagedResult"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.post.api_v1_users",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_UserCreateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_UserDetailDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "409": {
            "description": "Conflict"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/{id}": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.get.api_v1_users_ById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_UserDetailDto"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "put": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.put.api_v1_users_ById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_UserUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_UserDetailDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          }
        }
      },
      "delete": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.delete.api_v1_users_ById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/{id}/lock": {
      "patch": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.patch.api_v1_users_ById_lock",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth_UserLockDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/{id}/unlock": {
      "patch": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.patch.api_v1_users_ById_unlock",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/{id}/restore": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.post.api_v1_users_ById_restore",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/bulk-import": {
      "post": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.post.api_v1_users_bulk-import",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/bulk-import/{jobId}": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.get.api_v1_users_bulk-import_ByJobId:guid",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth_BulkJobDetailDto"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/export": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.get.api_v1_users_export",
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request"
          }
        }
      }
    },
    "/ba-auth/api/v1/users/export/{jobId}/download": {
      "get": {
        "tags": [
          "Identity & Access (Auth)"
        ],
        "description": "User management: list, create, update, lock/unlock, delete, and bulk import.",
        "operationId": "Auth_Users.get.api_v1_users_export_ByJobId:guid_download",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/ba-cms/api/cms/content": {
      "post": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Cms_CreateContentItemDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}": {
      "put": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Cms_UpdateContentItemDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/by-slug/{slug}": {
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/by-slug-ar/{slugAr}": {
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "slugAr",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/deleted": {
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/publish": {
      "post": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/restore": {
      "post": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/submit": {
      "post": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/approve": {
      "post": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/schedule": {
      "put": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Cms_ScheduleContentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/rollback": {
      "put": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/versions": {
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/cms/content/{id}/audit": {
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/incidents/public/components": {
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "siteKey",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-cms/api/incidents/public/summary": {
      "get": {
        "tags": [
          "Content & Status (CMS)"
        ],
        "parameters": [
          {
            "name": "siteKey",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/public/portfolio/{slug}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/employer/candidates": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "skill",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetRole",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/employer/candidates/{anonId}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "anonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/employer/candidates/{anonId}/invite": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "anonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_InviteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/tenants": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_EmployerTenantRegistrationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/tenants/{id}/verify-domain": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/roles": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_EmployerRoleCreateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/roles/{id}": {
      "patch": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_EmployerRoleCreateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/candidates/search": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CandidateSearchFilterDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/candidates/{userId}/view-detail": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/roles/{id}/invite/{userId}": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/roles/{id}/applicants": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/employer/applications/{id}/stage": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_MoveApplicantRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/certifications": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CertificationExam"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/{examId}/attempts": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "examId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/attempts/{attemptId}/checkin": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CheckinRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/attempts/{attemptId}/start": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/attempts/{attemptId}/events": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_ProctoringEventDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/attempts/{attemptId}/submit": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/attempts/{attemptId}/report": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/exams/attempts/{attemptId}/review": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_ReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/languages": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get all active languages",
        "operationId": "Innovask_GetAllLanguages",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ObjectApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Create a new language",
        "operationId": "Innovask_CreateLanguage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CreateLanguageDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ByteApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/languages/{id}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get language by ID",
        "operationId": "Innovask_GetLanguageById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ObjectApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Update an existing language",
        "operationId": "Innovask_UpdateLanguage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_UpdateLanguageDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Deactivate a language (soft delete)",
        "operationId": "Innovask_DeleteLanguage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/languages/code/{code}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get language by code (e.g., 'en', 'ar')",
        "operationId": "Innovask_GetLanguageByCode",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ObjectApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/languages/region/{region}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get languages commonly used in a specific region (ME, EU, AS, AF, AM)",
        "operationId": "Innovask_GetLanguagesByRegion",
        "parameters": [
          {
            "name": "region",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ObjectApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/books": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Create a new book (Rate Limited: 10/hour per IP)",
        "operationId": "Innovask_CreateBook",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CreateBookDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_Int32ApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/books/{id}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get book details by ID",
        "operationId": "Innovask_GetBookById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_BookDetailsDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/courses": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Create a new course (Rate Limited: 10/hour per IP)",
        "operationId": "Innovask_CreateCourse",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CreateCourseDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_Int32ApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/courses/{id}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get course details by ID",
        "operationId": "Innovask_GetCourseById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_CourseDetailsDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/reading": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Create a new reading product",
        "operationId": "Innovask_CreateReading",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CreateReadingDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_Int32ApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/reading/{id}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get reading product details by ID",
        "operationId": "Innovask_GetReadingById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ReadingDetailsDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/tracks": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Create a new learning track (with or without stages)",
        "operationId": "Innovask_CreateTrack",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Innovask_CreateTrackDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_Int32ApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/tracks/{id}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get track details by ID",
        "operationId": "Innovask_GetTrackById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_TrackDetailsDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_StringApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get all products with pagination",
        "operationId": "Innovask_GetAllProducts",
        "parameters": [
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ProductListDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/type/{productTypeId}": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get products by type with pagination",
        "operationId": "Innovask_GetProductsByType",
        "parameters": [
          {
            "name": "productTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "langId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_ProductListDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/ba-innovask/api/products/enroll/{productId}": {
      "post": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "operationId": "Innovask_EnrollInProduct",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ba-innovask/api/products/marketplace-catalog": {
      "get": {
        "tags": [
          "Learning & Careers (InnovAsk)"
        ],
        "summary": "Get LMS catalog for external marketplace integration (API Key required)",
        "operationId": "Innovask_GetMarketplaceCatalog",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Innovask_MarketplaceCatalogDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}
